23-10-2019, Saat: 08:05
(22-10-2019, Saat: 16:54)serdar Adlı Kullanıcıdan Alıntı:(22-10-2019, Saat: 16:21)frmman Adlı Kullanıcıdan Alıntı: Merhaba mevcut projenizde ne kadar ilerlediniz ve nasıl bir yapı kurdunuz bilemiyorum ama şu şekilde bir tavsiyede bulunabilirim.
Giriş/çıkış fiş işlemlerini her satır işlemi olduğunda veri tabanına yazmak ve sorgu ile çekmek yerine (anlatımınıza göre sanki bu şekilde yapmış olabilirsiniz diye tahminde bulunuyorum) MemTable veya VirtualTable kullanarak fiş içeriğini hazırlayabilirsiniz. Doldurma işlemi bittikden sonra kaydetme butonu/işlemi ile memtable da tutulan kayıtların veritabanındaki ilgili tabloya/tablolara yazılması şeklinde olacaktır.
Memtable deki alanlarda da cxgridin lookupcombobox yapısını aynı şekilde kullanabilirsiniz. Cxgriddeki işlem yaptığınız alanın (properties = lookupcombobox olanlar) Events kısmında Properties->OnValidate kısmında da seçilene göre yapmak istediğiniz hesaplamaları/düzenlemeleri yapabilirsiniz.
Merhaba @frmman bir sorum olacaktı. " memtable da tutulan kayıtların veritabanındaki ilgili tabloya/tablolara yazılması şeklinde olacaktır." dediniz. Acaba ne şekilde kullanıyorsunuz döngü ile mi, yoksa save dataset , update dataset gibi bir methodu varmıdır?
Siz bahsettikten sonra kontrol ettim FireDAC bileşen setindeki memtable bileşen setinde sanırım savedataset özelliği yok veya ben göremedim. Ben Jedi bileşen setinde bulunan memtable (daha doğru ifade ile TJVMemoryData) bileşenini kullanmıştım. Jedi bileşeninde savedataset özelliği var. Fakat veritabanına kayıt işlemini döngü ile yapmayı tercih etmiştim.
Kayıt için aşağıdaki gibi bir yapı kullandım.
MemoData.First; while not MemoData.Eof do begin QDetay_.Insert; QDetay_stok_id.Value := MemoDatastok_id.Value; QDetay_miktar.Value := MemoDatamiktar.Value; QDetay_birim_fiyat.Value := MemoDatabirim_fiyat.Value; //------- QDetay_.Post; MemoData.Next; end;

