tablolar arasında bağlantı
-
- Üye
- Mesajlar: 386
- Kayıt: 02 Tem 2007 09:43
tablolar arasında bağlantı
degerli arkadaşlar;
ben bir hesap takip programı yapıyorum. elimdeki tablolor;
adres ve hareket bilgileri tablosu, bu iki tablo master-detail
ayrıca
benim hareket tablosuna bağlamak istediğim 4-5 tablo var
bunlar borc, alacak, tahsilat, odeme, cek, senet vs. tablolarıdır.
bu tabloların hepsini hareket tablosuna bağlamak istiyorum. yapmayı istediğim olay şu müşteri bilgisinden hareket bilgilerini oradanda detay bilgilerine ulaşmak istiyorum. tablolar arasında nasıl bir bağlantı kurmalıyım yada bu mantık sağlıklımıdır. sizler ne tavsiye edersiniz. teşekkürler.
ben bir hesap takip programı yapıyorum. elimdeki tablolor;
adres ve hareket bilgileri tablosu, bu iki tablo master-detail
ayrıca
benim hareket tablosuna bağlamak istediğim 4-5 tablo var
bunlar borc, alacak, tahsilat, odeme, cek, senet vs. tablolarıdır.
bu tabloların hepsini hareket tablosuna bağlamak istiyorum. yapmayı istediğim olay şu müşteri bilgisinden hareket bilgilerini oradanda detay bilgilerine ulaşmak istiyorum. tablolar arasında nasıl bir bağlantı kurmalıyım yada bu mantık sağlıklımıdır. sizler ne tavsiye edersiniz. teşekkürler.
merhaba,
ustam hareket tablosuna bağlayacağın tüm tablolarda hareket tablosunda olan ve benzersin olan id alanı diğer detail tablolarda da uygulaman. yani bütün tablolar bu hareketID ile bir birine bağlı olacak.
bu konuda forumda pek çok bilgi var master-detail diye aratırsanız sonuca ulaşacaksınızdır.
kolay gelsin
ustam hareket tablosuna bağlayacağın tüm tablolarda hareket tablosunda olan ve benzersin olan id alanı diğer detail tablolarda da uygulaman. yani bütün tablolar bu hareketID ile bir birine bağlı olacak.
bu konuda forumda pek çok bilgi var master-detail diye aratırsanız sonuca ulaşacaksınızdır.
kolay gelsin
Şefkat-u Merhamette Güneş Gibi Ol.
Başkalarının Kusurunu Örtmekte Gece Gibi Ol.
Sehavet-u Cömertlikte Akarsu Gibi Ol.
Hiddet-u Asabiyette Ölü Gibi Ol.
Tevazu-u Mahviyette Toprak Gibi Ol.
Ya Olduğun Gibi Görün Ya Göründüğün Gibi Ol.
Başkalarının Kusurunu Örtmekte Gece Gibi Ol.
Sehavet-u Cömertlikte Akarsu Gibi Ol.
Hiddet-u Asabiyette Ölü Gibi Ol.
Tevazu-u Mahviyette Toprak Gibi Ol.
Ya Olduğun Gibi Görün Ya Göründüğün Gibi Ol.
-
- Üye
- Mesajlar: 386
- Kayıt: 02 Tem 2007 09:43
merhaba,
sanırım olayı iyi anlatamadım, master detail de bir problem yok master detail yapıyorum. fomda bu konu hakkındaki hemen hemen bütün mesajları okudum. fakat benim yapmak istediğim şu,
mesela Ahmet kuyumcu müşterisini seçtiğim zaman hangi hareket tablolarında kaydı var ise bana (borç, alacak, çek, senet) tek gridde göstersin istiyorum daha sonrada bu kayıtlara tıklayarak bu kayıtların detayını görmek istiyorum, bu tablolama yapısını nasıl oluştura bilirim.
kolay gelsin
sanırım olayı iyi anlatamadım, master detail de bir problem yok master detail yapıyorum. fomda bu konu hakkındaki hemen hemen bütün mesajları okudum. fakat benim yapmak istediğim şu,
mesela Ahmet kuyumcu müşterisini seçtiğim zaman hangi hareket tablolarında kaydı var ise bana (borç, alacak, çek, senet) tek gridde göstersin istiyorum daha sonrada bu kayıtlara tıklayarak bu kayıtların detayını görmek istiyorum, bu tablolama yapısını nasıl oluştura bilirim.
kolay gelsin
bu tek gridde gosterme olayindan ne kastettigini tam olarak anladin mi??? Boyle bir kurgulama bana cok mantikli gelmedi. Cunku dogal olarak her tablonun farkli alan ozellikleri var ama sen bunlari standart bir alan altinda toplamak istiyorsun bilincli yada bilincsiz bir sekilde. Cunku bunu tek gridde toplamak istiyorum diyorsan boyle bir anlam cikar. Eger tablolardaki alanlar zaten benzes ise hepsi icin bir tablo tanimlayip mesela 'tip' diye bir alan ekler ve bu alanada hareket turunu yani senet, cek vs.. ekleyerek indexleme sorgulama isini cozebilirsin ama buda kulaga cok mantikli gelmiyor. Ama baska tablodan grid e veri cekeceksen en pratik yolu query kullanmaktir. Sonra query sonucunu bir dataset e aktar ve bu data set i grid icin sourcedataset olarak tanimla. Benim kendi kullnadigim kod asagidadir.
Burada ben armutlari gosteriyorum sadece gridde ama sen - eger bahsettigin hareketler icin farkli tablolar kullanmayi dusunuyorsan - ayni zamanda birkac meyveyi yada sebzeyi de isini icine katiyorsun. Burada ihtiyacin olan sey programlama tekniklerinin otesinde olayin mantiksal kurgusunu olusturmak sanirim.
Kod: Tümünü seç
if dbgrid1.datasource = dm.lksds_cari then
begin
str1 := dm.lks_cari.FieldByName('cl_code').asstring;
str2 := dm.lks_cari.FieldByName('cl_name').asstring;
dm.q_char.close;
dm.q_char.sql.clear;
dm.q_char.SQL.add('SELECT * from lks_char where clientref =');
dm.q_char.SQL.add(''''+str2+''' order by tarih');
dm.q_char.open;
dm.dsg.dataset := dm.q_char;
frm_lksdetay.dbgrid1.datasource := dm.dsg;
frm_lksdetay.label1.caption:=str1+' - '+str2+' Hesap Hareketleri';
frm_lksdetay.showmodal;
end;
-
- Üye
- Mesajlar: 386
- Kayıt: 02 Tem 2007 09:43
Merhaba,
İlk mesajını yine okudum, yine anladığım tabloları birbirine bağlamak ve ana tabloda bir kayda bastığında diğer grid vb. nesnelerde detail bilgileri gelmesi. bende pek çok çalışmamda bu şekil kullanıyorum.
son anladığıma gelince eğer verileri yani istediğin verileri tek bir gride toplamak istiyorsan sanırım ustalar daha iyi bilecektir JOIN kelimesi üzerinde durman gerekiyor. JOIN ile birden fazla tablodan verileri tek bir grid içerisine toplayabilirsin fakat sanıyorumki bunlar üzerinde işlem yapamazsın sadece raporlama amacı ile kullanırsın. Tabiki tablolarında ortak bir ID olması gerekiyor ki ilişkisel bağlantıyı sağlasın
kolay gelsin
İlk mesajını yine okudum, yine anladığım tabloları birbirine bağlamak ve ana tabloda bir kayda bastığında diğer grid vb. nesnelerde detail bilgileri gelmesi. bende pek çok çalışmamda bu şekil kullanıyorum.
son anladığıma gelince eğer verileri yani istediğin verileri tek bir gride toplamak istiyorsan sanırım ustalar daha iyi bilecektir JOIN kelimesi üzerinde durman gerekiyor. JOIN ile birden fazla tablodan verileri tek bir grid içerisine toplayabilirsin fakat sanıyorumki bunlar üzerinde işlem yapamazsın sadece raporlama amacı ile kullanırsın. Tabiki tablolarında ortak bir ID olması gerekiyor ki ilişkisel bağlantıyı sağlasın
kolay gelsin
Şefkat-u Merhamette Güneş Gibi Ol.
Başkalarının Kusurunu Örtmekte Gece Gibi Ol.
Sehavet-u Cömertlikte Akarsu Gibi Ol.
Hiddet-u Asabiyette Ölü Gibi Ol.
Tevazu-u Mahviyette Toprak Gibi Ol.
Ya Olduğun Gibi Görün Ya Göründüğün Gibi Ol.
Başkalarının Kusurunu Örtmekte Gece Gibi Ol.
Sehavet-u Cömertlikte Akarsu Gibi Ol.
Hiddet-u Asabiyette Ölü Gibi Ol.
Tevazu-u Mahviyette Toprak Gibi Ol.
Ya Olduğun Gibi Görün Ya Göründüğün Gibi Ol.
-
- Üye
- Mesajlar: 386
- Kayıt: 02 Tem 2007 09:43
merhaba,
ustam tamam işte JOIN diye aratırsan istediğin sonuca ulaşacaksın. JOIN in pek çok çeşidi var. Yanlış hatırlamıyorsam makale bölümünde naile ustamın yazdığı bir makale var. JOIN çeşitleri ile tabloları birleştirip aynı grid üzerinde gösterme.
kolay gelsin
ustam tamam işte JOIN diye aratırsan istediğin sonuca ulaşacaksın. JOIN in pek çok çeşidi var. Yanlış hatırlamıyorsam makale bölümünde naile ustamın yazdığı bir makale var. JOIN çeşitleri ile tabloları birleştirip aynı grid üzerinde gösterme.
kolay gelsin
Şefkat-u Merhamette Güneş Gibi Ol.
Başkalarının Kusurunu Örtmekte Gece Gibi Ol.
Sehavet-u Cömertlikte Akarsu Gibi Ol.
Hiddet-u Asabiyette Ölü Gibi Ol.
Tevazu-u Mahviyette Toprak Gibi Ol.
Ya Olduğun Gibi Görün Ya Göründüğün Gibi Ol.
Başkalarının Kusurunu Örtmekte Gece Gibi Ol.
Sehavet-u Cömertlikte Akarsu Gibi Ol.
Hiddet-u Asabiyette Ölü Gibi Ol.
Tevazu-u Mahviyette Toprak Gibi Ol.
Ya Olduğun Gibi Görün Ya Göründüğün Gibi Ol.