1

Konu: buffer lı dosyadan tableupdate() edilmemiş kayıtlardan arama yaptırmak

Herkese selam,
Arkadaşlar vfp8 de bufferlı dosyaya tableupdate yapılmamış kayıtlardan arama yaptırmak istiyorum.
amaç örneğin stok kart dosyasında bir kullanıcı A001 kodlu bir stok tanımlayıp kaydetmeden,
başka bir kullanıcının A001 kodlu stok kartını tanımlamaya çalışmasını engellemek.
3 yöntem denedim başarılı olamadım

1-)indexseek()  && set Exact Off  setine dikkat ederek denedim
2-)Getfldstate() && 4 değerine göre append edilmiş ve bilgi girilmiş kontrol edip again alias dosyayı    farklı isimden açıp kontrol etmek
bu defada again alias la açılan dosyada tableupdate edilmemiş kayıtlar bulunmadığı için yine başarılı olamadım
3-) Select cümlesindeki WITH (Buffering=.T.) seçeneği, bunuda vfp8 desteklemiyor

2

Re: buffer lı dosyadan tableupdate() edilmemiş kayıtlardan arama yaptırmak

Tam ne yapmak istediğini anlayamadım ama değişen kayıtlar arasında şu şekilde hareket edebilirsin.

Visual Fox Pro
Local lnDegisenKayitNo As Integer

m.lnDegisenKayitNo = GetNextModified(0, "TabloAdi")
Do While m.lnDegisenKayitNo <> 0
    Go To m.lnDegisenKayitNo In TabloAdi
    && Ne yapmak istiyorsan o işlem
    m.lnDegisenKayitNo = GetNextModified(0, "TabloAdi")
EndDo
/o---------------------o\
     www.haser.com
\o---------------------o/

3

Re: buffer lı dosyadan tableupdate() edilmemiş kayıtlardan arama yaptırmak

erdalyalcin yazdı:

stok kart dosyasında bir kullanıcı A001 kodlu bir stok tanımlayıp kaydetmeden,
başka bir kullanıcının A001 kodlu stok kartını tanımlamaya çalışmasını engellemek.


öğrendiğimiz kadarı ile en iyisi bu aslinda

Visual Fox Pro
Function guid()

Local pGUID,rGUID
Declare Integer UuidCreate In 'RPCRT4.dll' String @pguid
Declare Integer StringFromGUID2 In 'Ole32.dll' ;
  STRING rguid, String @lpsz, Integer cchMax
 
pGUID=Replicate(Chr(0),16)
rGUID=Replicate(Chr(0),80)
 
Return Iif(Inlist(UuidCreate(@pGUID),0,1824),;
  IIF(StringFromGUID2(pGUID,@rGUID,40) # 0, ;
  STRCONV(Left(rGUID,76),6), ""),"")
Endfunc

aşağıdaki kod a biraz değişiklik yaparak işni çözebilirsin

Visual Fox Pro
&&1) Integer kullaniyor.

&&2) Numarayi koyacagin field ayni zamanda primary key olacak.
&&3) Donen sayi sirali olmak zorunda degil ama unique (yani 5489'dan sonra illaki 5490 almayacaksin. O kullanimda ise bosta olan mesela 5 gelebilir).
 
&&Kullanmak icin ids diye bir tablo yaratiyorsun :
&&create table ids (Table c(40), nextid i)
&&index on upper(table) tag 'table'
 
Function NewID
Lparameters tcAlias
Local lcAlias, lnOldArea, lcOldReprocess, lcTable, lnTagNo, lnNewValue, lcOldSetDeleted
lnOldArea = Select()
lnOldReprocess = Set('REPROCESS')
&& Uppercase Alias name
lcAlias = Upper(Iif(Parameters() = 0, Alias(), tcAlias))
&& Lock reprocess - try once
Set Reprocess To 1
If !Used("rnler")
    Use rnler In 0
Endif
&& If no entry yet create
If !Seek(lcAlias, "rnler", "table")
    Insert Into rnler (Table, NextId) Values (lcAlias,0)
Endif
&& Lock, increment id, unlock, return nextid value
Do While !Rlock('rnler')
&& Delay before next lock trial
    lnStart = Seconds()
    Do While Seconds()-lnStart < 0.01
    Enddo
Enddo
lnNewValue = rnler.NextId + 1
&&Try to query primary key tag for lcAlias
lcTable = Iif( Used(lcAlias),Dbf(lcAlias), Iif(File(lcAlias+'.dbf'),lcAlias,''))
If !Empty(lcTable)
    Use (lcTable) In 0 Again Alias '_GetPKKey_'
    For m.lnTagNo=1 To Tagcount('','_GetPKKey_')
        If Primary(m.lnTagNo,'_GetPKKey_')
            m.lcOldSetDeleted = Set("Deleted")
            Set Deleted Off
            If Seek(lnNewValue,'_GetPKKey_',Tag(m.lnTagNo,'_GetPKKey_'))
                Select '_GetPKKey_'
                Set Order To Tag (Tag(m.lnTagNo,'_GetPKKey_')) ;
                    In '_GetPKKey_' Descending
                Locate
                lnNewValue = Evaluate(Key(m.lnTagNo,'_GetPKKey_'))+1
            Endif
            Set Deleted &lcOldSetDeleted
            Exit
        Endif
    Endfor
    Use In '_GetPKKey_'
    Select rnler
Endif
 
&& Increment
Replace rnler.NextId With lnNewValue In 'rnler'
Unlock In 'rnler'
Select (lnOldArea)
Set Reprocess To lnOldReprocess
Return rnler.NextId
Endfunc
 
 
&&Tablolarda butun yaptigim ise bir field'i primary key olarak belirledigimde
&&(integer) onun default value'suna :
&&NewID('TabloAdi')
&&yazmak.
 
&& Ancak zaten var olan integer primary key'li bir database'i desteklemem gerektigi
&&icin bunu kullaniyorum. Eger sifirdan baslasaydim sececegim GUID olacakti
&&(36 veya 38 bytes char field) :

&&NewID('TabloAdi') yerine "A"+ALLTRIM(STR(newid('TabloAdi'))) kullanabilirsin

Bilmediğin Neyse Yanıldığındır.

4

Re: buffer lı dosyadan tableupdate() edilmemiş kayıtlardan arama yaptırmak

Tarkan araya karışayım,
bu problemi Erdal anlattı bana kısaca şu,
cok kullanıcılı bir ortamda 2 kişi aynı anda stok kartı aciyor olabilir ve 2 kişide örneğin
A001 verdi stok koduna ve henuz tableupdate() yapmadi ,

amac su ya stok kodu textbox un validinde yada lostfocusunda ;
yada
kaydetme anında bufferda bu veri varmi yokmu bu tespit etmek , kullanıcıyı uyarmak ve mukerrer kayda izin vermemek .

benim onerim valid yada lostfocus ta daha olayı yakalamak seklinde ki kullanıcı diger alanlari doldurana kadar geregini yapsin.

5

Re: buffer lı dosyadan tableupdate() edilmemiş kayıtlardan arama yaptırmak

Ramazan,
stok kodunu aynı anda 2 kiside olusturup A001 vermek isterse nasil olacak ve stok kodu illa A0001 A0002 sekinde gidecek diye birsey yok elma,armut vs gibide kodlar acilabilir ozaman IDS ile bunu yapamazsin  , yapsan otomatik o ver dese elma nın sonuna 001 vs eklersin ama kullanici illa rakamsiz kodlar tutmak isteyebilir .

Ben IDS yi sadece artan sirada siranosu elde etmek icin kullanyorum GUID() i de
eger local network ten baska sube yada laptop var ise bunlardan gelecek veri birlestirmelerinde kayitlarin uniq olabilmesi amaciyla kullaniyorum ayrica buradan gelecek verilerinde kontrolunde her ne kadar var olan veri tekrar import edilmesede aynı kodu acilmis olarak gelebiliyor bunu da yine import esnasinda kontrol etmek gerekiyor. Ama Erdal ında dedigi gibi aynı network te bile aynı anda aynı acilmaya calisilmis olabilir.

6

Re: buffer lı dosyadan tableupdate() edilmemiş kayıtlardan arama yaptırmak

Soykan'ın açıklaması doğrultusunda;

Stok kartlarının oluşturulduğu bir form olarak düşünüyorum. Bu durumda yeni bir stok kartı tanımlanıp kaydedilmek istendiğinde yazılan kodun önceden tanımlanıp tanımlanmadığının kontrol edilmesi gerekir.
Böyle bir çalışmada tablonun Buffer modda kullanılması gereksiz bence. Ekrandaki TextBox'lara stok kodu, adı ve gerekli bilgilerin doldurulup kaydet düğmesine basıldığını düşünürsek, kaydet düğmesinde yazılan stok kodunun kontrolü yapılır eğer varsa kullanıcı uyarılır yoksa tabloya kaydedilir. Tablo buffer modda olmadığından her hangi bir sorun çıkmaz.

Böyle kart tanımlarında buffer mod kullanıp tüm kartları ekledikten sonra tableupdate yapmak bana göre kullanışlı değil.

/o---------------------o\
     www.haser.com
\o---------------------o/

7

Re: buffer lı dosyadan tableupdate() edilmemiş kayıtlardan arama yaptırmak

oldval() table ı açıp buffer ladıktan sonra field ın değiştirilmeden önceki değerini veriyor.

curval() bir table a ait field ın diskte yazılı bulunan değerini veriyor.

Field ın diske yazılmış değerini curval() ile bulabilirsiniz.

8 Son düzenleyen, foxman (11.09.2007 15:29:49)

Re: buffer lı dosyadan tableupdate() edilmemiş kayıtlardan arama yaptırmak

"eger bir fatura çok nadirde olsa aynı anda 2 terminalde açıksa."

Fatura, muhasebe fişi, tahsil/tediye fişleri,.. vesarie gibi data giriş tiplerinde herhangi bir şekilde aynı evrak (değişiklik amacıyla) iki farklı terminalden aynı anda açılıyorsa o programı çöpe atın veya açılmaması için ne gerekiyorsa yapın, yapamıyorsanız programcılığı bırakın.

Çok mu sert oldu, alınganlık yapan olursa şimdiden özür dilerim.

9

Re: buffer lı dosyadan tableupdate() edilmemiş kayıtlardan arama yaptırmak

cihan1963 yazdı:

Tarkana katılmıyorum eger bir fatura çok nadirde olsa aynı anda 2 terminalde açıksa biri üzerinde degişiklik yaptıgında öbür kişi farklı bir şey yapmış ise ben kayıt tuşuna basmadan başka bir terminal bufferinde faturanın x tarafının degiştirildigini (tableupdate yapmadı) daha bula bilirmiyim.
buna son cevabı cetin hoca ile soykan verecek galiba.


Ben bu işi Stok Kartı formu (ve benzeri formlar) için söyledim. Fatura için değil.
Fatura tabiki birden fazla terminalde açık olup kullanılabilir.

/o---------------------o\
     www.haser.com
\o---------------------o/

10

Re: buffer lı dosyadan tableupdate() edilmemiş kayıtlardan arama yaptırmak

foxman yazdı:

"eger bir fatura çok nadirde olsa aynı anda 2 terminalde açıksa."

Fatura, muhasebe fişi, tahsil/tediye fişleri,.. vesarie gibi data giriş tiplerinde herhangi bir şekilde aynı evrak (değişiklik amacıyla) iki farklı terminalden aynı anda açılıyorsa o programı çöpe atın veya açılmaması için ne gerekiyorsa yapın, yapamıyorsanız programcılığı bırakın.

Çok mu sert oldu, alınganlık yapan olursa şimdiden özür dilerim.


Bence bu iş kullanıcıları kısıtlayarak olmaz.
Muhasebe fişini veya benzeri fişleri birden fazla kişi düzenlemek amacıyla açabilir. Bizim işimiz burada bir kural koymak olmalı. Örneğin "son kaydedenin bilgileri geçerli olur" kuralı bence iyi bir durumdur. Bizim yaptığımız programlar bu kurala göre çalışır.
Bu durumda programcılığı bırakmam gerekir mi? smile

/o---------------------o\
     www.haser.com
\o---------------------o/

11

Re: buffer lı dosyadan tableupdate() edilmemiş kayıtlardan arama yaptırmak

cihan1963 yazdı:

Tarkana katılmıyorum eger bir fatura çok nadirde olsa aynı anda 2 terminalde açıksa biri üzerinde degişiklik yaptıgında öbür kişi farklı bir şey yapmış ise ben kayıt tuşuna basmadan başka bir terminal bufferinde faturanın x tarafının degiştirildigini (tableupdate yapmadı) daha bula bilirmiyim.
buna son cevabı cetin hoca ile soykan verecek galiba.


Eğer terminallerde buffer kullanılarak edit işlemi yapılıyorsa, başka bir terminalde yapılan değişiklikleri o terminal update etmeden direk olarak bulamazsın. Belki bazı ortak erişilen dosyalar yoluyla olur ama bu kadar uğraştıktan ve programı çorbaya çevirdikten sonra o program çok kötü bir program olur.

12 Son düzenleyen, metin (11.09.2007 15:48:03)

Re: buffer lı dosyadan tableupdate() edilmemiş kayıtlardan arama yaptırmak

erdalyalcin yazdı:

Herkese selam,
Arkadaşlar vfp8 de bufferlı dosyaya tableupdate yapılmamış kayıtlardan arama yaptırmak istiyorum.
...


olmaz... tam kayıt anında dosyayı tamamen kitle ve o kod var mı diye kontrol ettir. ancak öyle çözersin problemini...

Haksızlıklar karşısında susanlar, dilsiz şeytanlardır!
www.metinemre.com

13

Re: buffer lı dosyadan tableupdate() edilmemiş kayıtlardan arama yaptırmak

Onlarca kişinin sürekli evrak kaydettiği veya evraklarda değişklik yaptığı bir ortamda kullanıcıların aynı evrakı aynı anda açmalarına izin verip "son kaydedenin bilgileri geçerli olur" kuralı ile program çalıştırmak kaos a neden olur.

Tarkan,
"Muhasebe fişini veya benzeri fişleri birden fazla kişi düzenlemek amacıyla açabilir.".
(aynı anda aynı muhasebe fişini açmak şeklinde anlıyorum yanlış anladıysam düzeltirsin)
ve ""son kaydedenin bilgileri geçerli olur" kuralı bence iyi bir durumdur."  demişsin.

Birden fazla fatura, tek bir mahsup fişi ile muhasebeleştirilebilir. Böyle bir mahsup fişi olsun.
Ben o mahsup fişini açtım içindeki bir faturaya ait değerlerde değişiklik yaptım. Henüz kaydetmedim.
Ali aynı mahsup fişini açtı başka bir fatura ile ilgili değişiklik yaptı ve kaydetti.
Daha sonra bende yaptığım değişikliği kaydettim.

Sonuçta ne olur. !!!

14

Re: buffer lı dosyadan tableupdate() edilmemiş kayıtlardan arama yaptırmak

arkadaşlar;
sorunun şekli değişti mecra karıştı biraz sanırım.
sorumda dikkat ederseniz, kullanıcılar aslında aynı kayıt üstünde filan değiller.
ben değişiklik yapılmışmı yapılmamışmı derdinde değilim.
2 ayrı kullanıcı var. ikiside ayrı ayrı stok açıyorlar. yeni butonuna kullanıcı bastığında onun için ID si farklı boş bir kayıt oluşuyor. Diğer kullanıcı içinde geçerli.
şimdi burda sorun şu Ayşe kullanıcısı yeni butonuna bastı uniq bir ID li boş kayıt oluştu. Fatma kullanıcısı da yeni butonuna bastı onada farklı ID li boş bir kayıt oluştu. Şimdi Bu durumda kayıdı kitlememe gerek yok. çünkü ikiside farklı kayıtlarda bufferlı olarak çalışıyorlar. kaydemediler.
sorunum şu, ister stok kodunu program otomotik versin, ister kullanıcı kendisi kafasına göre yazsın.
ayşe kullanıcısı C001 kodlu armut adında bir stok girdi boş kayda ve tableupdate yapmadı. fatmada ID si farklı olan farklı bir boş stok kart dosyasına C001 kodlu elma adında bir stok açacağı zaman,
program sayın fatma kullanıcı başka bir kullanıcı C001 kodunda bir stok kodu tanımlıyor sen bunu C002 yap desin yada C002 yapsın. bu sorunum

15

Re: buffer lı dosyadan tableupdate() edilmemiş kayıtlardan arama yaptırmak

kendi uygulamalarınızda da deneyebilirsiniz aslında

iki farklı kullanıcı iki farklı faturayı aldı mahsup girecekler. 1. kullanıcı ayın 08 deki faturanın mahsubunu manuel girsin. 2. kullanıcıda ayın 9 ait faturanın mahsubunu manuel girsin.

1. kullanıcı fiş numarasına 101 dedi içerde kayıtlı değil program bağırmadı. girmeye devam ediyor satırları.
2. kullanıcı fiş numarasına 101 dedi 1.kullanıcı kaydetmediği için içerde 101 nolu mahsup fiş nosu olmadığı için oda girriyor.
2 side o anda aslında farklı ID li kayıtlara bilgi giriyorlar. ister GUID kullan ister Autoinc kullan ikisininde ID si farklı

sorun 2. kullanıcıya 1.kullanıcı kaydetmemiş olmasına rağmen sayın kullanıcı senin fiş numaran 102 olsun başkası kaydetmedi ama 101 nosuyla başka bir fiş giriyor desin

16

Re: buffer lı dosyadan tableupdate() edilmemiş kayıtlardan arama yaptırmak

ayrıca Cihan abicim ben değişiklikden bahsetmiyorum problemi karıştırıyorsun.

foxman arkadaşım üstadım harbiden çok sert oldu ya.
bir programın çöpe atılmasına programcılar karar veremezler. Müşteri buna karar verir.
eğer kendimize şahsımıza program yazıyorsak çöpede atabiliriz, taçda takabiliriz.
Ama bunu müşteriye yazıyorsak mantıklı olup olmaması müşterinin problemi.
programcılara düşen müşterinin talebini karşılamaktır.
Çünkü parayı kazandıran kendi tatminlerimiz değildir. Müşterinin talebinin karşılanmasıdır. Para eden budur.
bir programı kendimize yazdığımızda istediğin mantığı kur sorun yok. Sonuçta tatmin olan şahsi egomuzdur.
bir proje istendiğinde mantıklı olup olmamasından bana ne üstadım. Müşteri ayakları yukarıya bakan masamı istiyor , onu üretir teslim eder, hizmetin karşılığını tahsil ederiz.

17

Re: buffer lı dosyadan tableupdate() edilmemiş kayıtlardan arama yaptırmak

şöyle birşey düşündüm ama bakalım işe yarar mı?
kodun texbox ının lostfocus metodunda kodu seek ile arat eğer kayıt yoksa hemen tableupdate ile anında kaydet.Bu diğer kullanıcıların aynı kodu kullanmasını engeller. Diğer alanları doldurduktan sonra
kaydet tuşu ile  tamamen kaydeder kaydı bitirirsin.

18

Re: buffer lı dosyadan tableupdate() edilmemiş kayıtlardan arama yaptırmak

Erdal,
Iyi bir sistemin, baglantisiz bile bu isi yapabilmesi lazim (baglanti bazi noktalarda sart ama bazi noktalarda ise baglanti kesilebilir, kisi yemege cikabilir vs).
Bufferlar kisilerin dusunceleri gibi, yan yana dursan bile o aciklamazsa degil sen vucudunun diger bir kisminin bile ogrenemyecegi kadar ayri alanlar. Demek istedigim:

use customer in 0 alias c1
use customer in 0 again alias c2

cursorsetprop('Buffering',5,'c1')

dedikten sonra c1'deki her degisiklige (tableupdate() edilmedigi surece) sadece c1 uzerinden ulasilir. c2 ayni tablo, ayni ortamda ama onun degisiklikten haberdar olma sansi yok.

C001 eger bufferda ise onun kaydedilme sansinin oldugunu hic kimse bilemez (kendisi disinda).

Isin kotu tarafi, bu sorunun bilinen bir cozumu de yok (VFP ya da baska bir dil). IDs benzeri bir ara tablo ile 'rezervasyon' yaptirabilirsin. Rezervasyonlar gerceklesmek zorunda degil. Gerceklestiginde cakismaz, gerceklesmezse C001'i kaybetmis olursun (bir sonraki kullanabilir, sira bozularak).
Ramazan'in verdigi kod benim kullandigimin neredeyse birebir aynisi. Orada primary key kontrolu yapiyor, o yaniltici olabilir. Bu sadece primary key icin degil. Benzeri amacli her deger icin kodu biraz degistirerek kullanabilirsin. Orada C001 ilk kullanici tarafindan bloke gorunur, ikinci uyariyi alir. Eger deger dogrudan kullanici tarafindan elle 'C001' diye yaziliyorsa, bir rezervasyon tablosu yaratip oraya yazarsin (candidate ya da primary indexli), o tabloda buffer hic kullanilmadan (istersen ek bir alana kullanici adi). Diger kullanicilar C001 kaydetmeye kalktiginda ayni islemi yapmalari gerekir, kaydedemez ve uyariyi alir. O tablo uzerinde indexseek(), seek() vs gayet guzel calissa da asil guvenilecek, C001'in kaydedilip edilememesi (indexseek ile insert arasindaki nanosaniyelerde baskasi insert edebilir eger tablo kilitlenmiyorsa).
Bir autoincli tabloda benzer amacli kullanilabilir (ama ben autoinc'e asla guvenmedigimden kullanmiyorum).

19

Re: buffer lı dosyadan tableupdate() edilmemiş kayıtlardan arama yaptırmak

Çetin Hocam,

söylenmemiş kafalardaki düşünce benzetmesi, çok ikna edici. Bu benim en başından kontrol etme, yani kaydedilmemiş kayıtlarda kontrol fikrinden vazgeçirdi.
benim aslında ilk algoritmam kayıt esnasında kontroldü. Bu alan heralde daha elverişli. Bu konuda da
2 kullanıcıya kadar kontrolü sağlar gibi olmuştum. ama 3 ve 4. aynı andaki girişlerde tamamen kontrolsüzlük yaşadım. Yani C001 C002 C001 3 kayıttan 2 tanesinin kod field ı mükerrer oluşuyor.
burdaki algoritmam kayıt sırasında kontrol ediyordum, içerde C001 kodlu kayıt varsa C002 yapıyordu program. onu 3 4 kullanıcıyla ilgili uğraşıcam.
aslında o kadar çok uğraştımki nerden neyi nezaman denediğimi bile karıştırır oldum.

logo lks dos versiyonunda C001 ikincisini de C001#1 şeklinde kaydediyordu. ama 3 4 kullanıcı aynı anda deneme fırsatım olmadı.

stok ve cari kartlarda bir kullanıcının girşi olsun belki sağlanabilir ama siparişte,mahsup fişlerinde  1den fazla kullanıcının aynı anda girşi sağlanmak zorunda. Bunu sağlayamazsan artık kullanıcının müdahale edemediği, programın tayin ettiği bir fielde dönüştürmek gerekiyor.

aslında hareketlerde kartların kodları yerine ID leri tutulsa bu sorunda kalkar ama, o zamanda gridlerde kullanıcının kodu yazıp kod ve adın görüntülendiği grid yapmak içerdede tamamen ID lerin bağlantı olarak kullanıldığı bir yapı, sorunu çıkıyor.

bu arada ramaza nın verdiği kod yanlış anlamadıysam ID vermek için hocam. Kullanıcı girişli(kontrollü) bir field için değil, bir stok kodu, sipariş numarası, cari kod , string lerinde yazılabildiği fieldlar için değil

20

Re: buffer lı dosyadan tableupdate() edilmemiş kayıtlardan arama yaptırmak

foxman yazdı:

Onlarca kişinin sürekli evrak kaydettiği veya evraklarda değişklik yaptığı bir ortamda kullanıcıların aynı evrakı aynı anda açmalarına izin verip "son kaydedenin bilgileri geçerli olur" kuralı ile program çalıştırmak kaos a neden olur.

Tarkan,
"Muhasebe fişini veya benzeri fişleri birden fazla kişi düzenlemek amacıyla açabilir.".
(aynı anda aynı muhasebe fişini açmak şeklinde anlıyorum yanlış anladıysam düzeltirsin)
ve ""son kaydedenin bilgileri geçerli olur" kuralı bence iyi bir durumdur."  demişsin.

Birden fazla fatura, tek bir mahsup fişi ile muhasebeleştirilebilir. Böyle bir mahsup fişi olsun.
Ben o mahsup fişini açtım içindeki bir faturaya ait değerlerde değişiklik yaptım. Henüz kaydetmedim.
Ali aynı mahsup fişini açtı başka bir fatura ile ilgili değişiklik yaptı ve kaydetti.
Daha sonra bende yaptığım değişikliği kaydettim.

Sonuçta ne olur. !!!


Foxman,
Bu durumlar için senin haksız olduğunu savunmuyorum. Bu bir bakış açısı bence. Bu durumda şu da olabilir, kullanıcı kaydı düzenlemek için açtı ve bir sebepten dolayı ekranını o şekilde bırakıp gitti. Hele bu işi tek kişi çalışan bir uzak şubeden (terminal server kullanarak) yapıyorsa merkez şubedeki kişiler o fişin kapanmasını beklemek zorundalar.
Biz fişi kaydetmeden önce kontrol ediyoruz. Fiş silinmiş mi, değiştirilmiş mi ona göre gerekli uyarı ve düzenlemeleri yapıyoruz.

/o---------------------o\
     www.haser.com
\o---------------------o/

21

Re: buffer lı dosyadan tableupdate() edilmemiş kayıtlardan arama yaptırmak

üsdatlar olay son derece basit,tam kayıt etme esnasında verilen ID nin sistemde olup olmadığını kontrol ediyorum.Eğer kayıt varsa kullanıcıya "Bu stok kodu daha önce kullanılmış lütfen değiltirin" mesajını veriyorum.Eğer otomatik veriyorsa numarayı bir artırıp veriyorum.Çokta güzel çalışıyor,bir sorun çıktığınıda görmedim.Dikkat edilmesi gereken nokta,Tam kayıt esnasında vermek istediğiniz ID yi kontrol etmek.Bu mantıkla kim kayıt düğmesine basarsa,ID yi o alacaktır.Diğeri başka bir ID no vermek zorunda kalacaktır.

En büyük sermaye nakit,nakit sermaye vakittir...

22

Re: buffer lı dosyadan tableupdate() edilmemiş kayıtlardan arama yaptırmak

çetin hocamın görüşlerinede katılıyorum bu arada

En büyük sermaye nakit,nakit sermaye vakittir...