selam arkadaşlar...
3 veya 4 tabloyu birbirine bağlamam gerekmekte ama araştırdığım bütün çoklu master detail tabloları hep seri olarak bağlanmış benim istediğim karışık nasıl bağlanır.
örnekle anlatmak gerekirse;
1. tablo: Müsteri 2. tablo: ürün 3. tablo: siparis olsun.
diyelimki sipariş tablosu hem hangi müşterinin sipriş verdiğini tutmak için müşteri tablosuna bağlı bir alan içersin hem de hangi ürünün sipariş verildiğini anlamak için ürün tablosuna bağlı bir alan içersin.
bu bağlantıyı seri olarak yapamıyorsun. Ben Firebird ve IBdataset kullanıyorum. Her bir tablo için bir IBDataset ve Datasource var. Acaba bunları nasıl bağlamalıyım ve IBdataset için SQL kodu nasıl olmalı.
Ben incelediğim master detaillarla bir yorum getirmeye çalıştım ama bir çözüm bulamadım. yardımcı olabilirseniz sevinirim.
örneği fazla karıştırmamak için bu şekilde uydurdum. 3 tablodan daha fazla olursa onun mantığını bunu kullanarak çözmeye çalışırım.
şimdiden herkese teşekkürler.
çoklu master-detail ile ilgili...
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
- comlekciler
- Üye
- Mesajlar: 58
- Kayıt: 17 Nis 2006 12:35
çoklu master-detail ile ilgili...
"Bilgisizlerin geçtikleri mevkiye yaptığı fenalığı, yüzlerce aslan bir araya gelse yapamaz" MEVLANA
- Murat DİCLE
- Kıdemli Üye
- Mesajlar: 702
- Kayıt: 19 Nis 2006 04:12
- Konum: İstanbul
- İletişim:
Selam,
Müşteri sayfası açıkken sipariş bilgilerini ve buna bağlı stok kalemlerini görmek mi istiyorsun. Master detail ile bunu yapabilirsin.
En basit yöntem her sipariş kalemine ayrıca müşteir kodunuda ekleyerek yapabilirsin. Ama aha kesin çözümü SQL ile yapabilirsin.
Çokta lazım değilse master-detail ile çalışmak iyi değildir. hiç kullanılmayacağı halde bir sürü tablonun açık kalması demektir.
Müşteri kartına bir button koyarsın sipariş detayları diye bişi olur, hatta birde DevExpress'in cxGrid'i ile sipariş satırları ve sipariş satırlarına bağlı stok kalemlerini gayet güzel gösterebilirsin.
Aslında cxGrid'i biraz kurcalasan master detail ile uğraşmana gerek kalmadan cxGrid'in herşeyin üstesinde geleceğini göreceksin..
Saygılar...
Müşteri sayfası açıkken sipariş bilgilerini ve buna bağlı stok kalemlerini görmek mi istiyorsun. Master detail ile bunu yapabilirsin.
En basit yöntem her sipariş kalemine ayrıca müşteir kodunuda ekleyerek yapabilirsin. Ama aha kesin çözümü SQL ile yapabilirsin.
Çokta lazım değilse master-detail ile çalışmak iyi değildir. hiç kullanılmayacağı halde bir sürü tablonun açık kalması demektir.
Müşteri kartına bir button koyarsın sipariş detayları diye bişi olur, hatta birde DevExpress'in cxGrid'i ile sipariş satırları ve sipariş satırlarına bağlı stok kalemlerini gayet güzel gösterebilirsin.
Aslında cxGrid'i biraz kurcalasan master detail ile uğraşmana gerek kalmadan cxGrid'in herşeyin üstesinde geleceğini göreceksin..
Saygılar...
- comlekciler
- Üye
- Mesajlar: 58
- Kayıt: 17 Nis 2006 12:35
Tam olarak sormak istediğim IBDataset'leri ve Datasource'ları karışık olarak nasıl bağlayabilirim demek istemiştim. özür diliyorum senin dediklerini anlayamadım
ama cxGrid i araştıracağım.
şöyle anlatmaya çalışayım.
Bildiğim kadarı ile IBDatasetler (veya IBQueryler) kendi arasında master detail ilişkisi ile bağlanabilmesi için birbirlerindeki Primary Key ve Froeingkey leri Datasourcelar aracılığı ile alarak iletişim sağlanıyor.Yani master tabloda bir kayıt seçildiği zaman o kayıttaki primarykey ile detail tablodaki froeingkeylerden aynı olanlar gösteriliyor. Bu datasourceların birbirine bağlanması ile oluyor. Tabiki where bloğundaki primarykey ve froeingkeylerin birbirine bağlanmasıda var.
Bu aşamaya kadar bir sorun yok. Ama benim sorumda sipariş dosyasının datasource una müşteri IBDataset ini bağlıyorum ama ürün tablosu açıkta kalıyor. Yani seri bir sitem olmadığı için sipariş tablosuna hem müşteri tablosu hem de ürün tablosu nasıl bağlanacak.
Bu şekilde hem gösterme işini yapacağım hem de delete,update gibi işlemlerde bir sorun çıkmamasını istiyorum
inşallah kafanızı karıştırmamışımdır.
dediğim gibi forumda hep il-ilçe-semt gibi seri olan bağlantılar mevcut.
Aklıma bir şey daha geldi, bu iş SQL kodundan mı hallediliyor yani datasourceların bağlantısı ile falan bir alakası yok mu. şimdi benimde kafam karıştı

şöyle anlatmaya çalışayım.
Bildiğim kadarı ile IBDatasetler (veya IBQueryler) kendi arasında master detail ilişkisi ile bağlanabilmesi için birbirlerindeki Primary Key ve Froeingkey leri Datasourcelar aracılığı ile alarak iletişim sağlanıyor.Yani master tabloda bir kayıt seçildiği zaman o kayıttaki primarykey ile detail tablodaki froeingkeylerden aynı olanlar gösteriliyor. Bu datasourceların birbirine bağlanması ile oluyor. Tabiki where bloğundaki primarykey ve froeingkeylerin birbirine bağlanmasıda var.
Bu aşamaya kadar bir sorun yok. Ama benim sorumda sipariş dosyasının datasource una müşteri IBDataset ini bağlıyorum ama ürün tablosu açıkta kalıyor. Yani seri bir sitem olmadığı için sipariş tablosuna hem müşteri tablosu hem de ürün tablosu nasıl bağlanacak.
Bu şekilde hem gösterme işini yapacağım hem de delete,update gibi işlemlerde bir sorun çıkmamasını istiyorum
inşallah kafanızı karıştırmamışımdır.

dediğim gibi forumda hep il-ilçe-semt gibi seri olan bağlantılar mevcut.
Aklıma bir şey daha geldi, bu iş SQL kodundan mı hallediliyor yani datasourceların bağlantısı ile falan bir alakası yok mu. şimdi benimde kafam karıştı

"Bilgisizlerin geçtikleri mevkiye yaptığı fenalığı, yüzlerce aslan bir araya gelse yapamaz" MEVLANA