s.a.
programımda bir fatura giriş ekranı var.
bu fatura giriş ekranında faturanın her satırını tutan ve giriş,değiştirme,silme gibi işlemelri yapan bir dbgrid koymak istiyorum.
bu dbgrid'i bir table'a bağlayamam çünkü o zaman diğer faturalara ait satırları da göstericek. o nedenle ibdataset kullanayım dedim. ibdataset'i yeni tanıyorum. bu arada bir not düşeyim: ibdataset'e computed fieldler atamayın, çünkü o zaman dataset'i readonly yapıyor.
dbgridde stokno, miktar ve birim fiyat var.
ama bu tabloda girişi dbgridden yapılmayacak olan fieldler var.
örneğin cari adı. cari adı yukarıda belirlenmiştir. ve öyle bişey yapmalıyım ki. dataset tüm yeni kayıtlar için dbgrid'in üstündeki label'da yazılı olan cariismini almalı. faturano olarak tüm yeni kayıtlar yukarıdaki labelda olan faturanumarasını almalı. nasıl olur?
çok şey mi istiyorum?
durum karışık biraz galiba ama umarım anlatabilmişimdir?
yardımlarınız için şimdiden teşekkürler.
ibdataset bu işe uygun mu?
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
ibdatasetin selectsql ine joinli karısık ifadeler yazabilirsin
sıradan bir queryden bekledigin herseyi yapabilirsin
update ,insert ve delete edecegin alanları secerek bu üc sql i olustrudugun zaman kullanmayacagın alanlar sadece goruntude olacak
Ben bu sekilde kullanıyorum mesela senin verdigin ornek uzerinde acıklayayım
Cariye yapılan/alınan odemeleri girdigin bir hareket ekranı olsun
bu hareket tablosu (ismi odeme olsun)
id Integer
car_id Integer
miktar Numeric(15,2)
alanlarından olussun
cari tablon da
id Integer
cari_id Integer
cari_adi Varchar(50)
seklinde olsun en basit anlamıyla
Datasetin SelectSQL i
select o.id,o.cari_id, c.cari_adi,o.miktar from odeme o
inner join cari c on c.id=o.cari_id
seklinde olsun
update edilecek alanlarda id,cari_id,miktar alanlarını seciyorsun
ve generate sql diyorsun
gride alanları ekle ve kayıt girisinde kullan
simdi burada Lookup alan olsa idi dbgridden cariyi sececek sekilde kullanırdın
ama burda ben soyle bir sey yaptım:
*cari ismini girerek arama yapabilecegim ve listeden birini secip enter a basınca o carinin id sini donduren bir form olusturdum
ibdatasete ekledigim alanlardan cari_adi alanının onsettext olayında da bu formu cagırdım. gayet guzel calısıyor.
sıradan bir queryden bekledigin herseyi yapabilirsin
update ,insert ve delete edecegin alanları secerek bu üc sql i olustrudugun zaman kullanmayacagın alanlar sadece goruntude olacak
Ben bu sekilde kullanıyorum mesela senin verdigin ornek uzerinde acıklayayım
Cariye yapılan/alınan odemeleri girdigin bir hareket ekranı olsun
bu hareket tablosu (ismi odeme olsun)
id Integer
car_id Integer
miktar Numeric(15,2)
alanlarından olussun
cari tablon da
id Integer
cari_id Integer
cari_adi Varchar(50)
seklinde olsun en basit anlamıyla
Datasetin SelectSQL i
select o.id,o.cari_id, c.cari_adi,o.miktar from odeme o
inner join cari c on c.id=o.cari_id
seklinde olsun
update edilecek alanlarda id,cari_id,miktar alanlarını seciyorsun
ve generate sql diyorsun
gride alanları ekle ve kayıt girisinde kullan
simdi burada Lookup alan olsa idi dbgridden cariyi sececek sekilde kullanırdın
ama burda ben soyle bir sey yaptım:
*cari ismini girerek arama yapabilecegim ve listeden birini secip enter a basınca o carinin id sini donduren bir form olusturdum
ibdatasete ekledigim alanlardan cari_adi alanının onsettext olayında da bu formu cagırdım. gayet guzel calısıyor.
ÜŞENME,ERTELEME,VAZGEÇME