(27-08-2019, Saat: 16:52)serdar Adlı Kullanıcıdan Alıntı: kardes yanı yapmak ıstegın su mu acaba:
FisDetay tablosunda HPLKODU kodunu degıstırebılmek ve degıstıkten sonra HPL adını görmek ??
HPL adı anladıgım kadarıyla master bır tablodan gelıyor. Neden HPL adını detay tablosundan elle degıstırmeye calısıyorsun?
FisDetay tablosunda HPLKODU kodunu değiştirirsen (senin verdiğin örenekte hesap 100 adı KASA) bu sorgudaki (select *,HPLADI(select AD from HPL were HPLKODU=m.HPLKODU) from FisDetay as M) HPL otomatik değişir zaten.

anlaşamadık
ben örnek veriyorum sadece
sizin programlarınızda hiç mi kod ve ad alanları yok?
sen muhasebecisin fişi ekrana çağırdın, 10 satır var fişte, ilk kolon kod yanında hesap adı kolonun var (hesap adı readonly kullanıcı değiştirmiyor).
3. satırda kod kolonuna 100 yazmışsın ama hata yapmışsın aslında 102 olacaktı, geldin 102 yazdın.
yazar yazmaz yanında yazan KASA ifadesinin BANKA olması lazım (kullanıcıya bunu göstermen lazım)
kod alanının validate eventinde gittin veritabanına 102 hesabın adını aldın ve kolona BANKA yazdın ve görüyorsun hiçbir sorun yok.
sonra aşağı oka bastın alt satıra indin daha veritabanına kaydetmedin, 5. satırda da birşeyler değiştireceksin.
alt satıra indin ya o anda 3. satırda şunlar yazıyor 102 - KASA ama 102- BANKA yazması lazım, senin veritabnanından getirdiğin BANKA değeri biranda KASA ya dönüyor yine.
TAdoQuery dışında bu iş doğru çalışıyor. Ado ise bu fieldın tabloya bağllı olmadığını biliyor bir şekilde ve sen ne yazarsan yaz satırı Rsync([]) yaptığında veritabanında getirdiği orjinal değeri buraya yazıyor. KOD alanı için bunu yapmıyor o aynen 102 olarak kalıyor ama AD alanını orjinal select çektiği değere geri çekiyor.
Sen sonra yularıdan bütün fişi kaydedip refresh ettiğinde tabiki 102-BANKA geliyor ama kayıt girişi anında bu şeklde çalışması kabul edilemez.
Çünkü satırlar arasında dolaşmak zorundasın ve satırdan çıktığın anda bütün böyle olan kolonların değerlerini orjinal değerine getiriyor.
bütün muhasebe programları böyle çalışıyor ve bu sadece bir örnek, neden anlatamadım bende bilmiyorum
(27-08-2019, Saat: 17:20)adelphiforumz Adlı Kullanıcıdan Alıntı: açıkçası bu güne kadar TAdoQuery üzeinden böyle bir şeye hiç ihtiyaç duymadım
genelde memdata yada clientdataset kullarak işlemşeri hep çözdüm
sanrım çok yardımcı olamadım
Fakat sizin probleminizi çözüme kavuşturmak adına aklıma gelen yöntemleri paylaşmaya çalışıyorum.
Aynen bizde öyle yapıyoruz, ClientDataset kullanıyoruz ama burada AdoQuery ile devam etmem gerekiyordu, herşey güzel birtek bu temporary field diyeceğim şey çalışmıyor.
RecordBuffer'a değeri yazıyor post deyince gidip orjinal değerine getiriyor. batch optimistik ise gridde alt satıra inince bütün açıklama alanları orjinal değerine geliyor.
kodlar başka adlar başka oluyor. post edip refresh deyince düzgün geliyor ama tabi giriş anında saçma bir görüntü oluyor.
sDac, unidac, firedac, dbexpres, BDE hepsinde kullandığımız yöntem aslında.
Microsoft girince işin içine terse döndük.
Teşekkür ederim birader.