18 Mart 2019 Pazartesi

Limnor Veritabanı Programlamaya Giriş - 1

Limnor Veritabanı Programlamaya Giriş - 1


Bu yazıda Limnor Kullanım Klavuzu temel alınmıştır.

Bağlantılı Veritabanlarına Giriş


Bağlantılı veritabanları verileri Tablolarda saklar. Bir tablo sütunlardan oluşur, sütunlara bazen Field denir. Örneğin siparişlerin girildiği bir tablo, Order ID, Order Date ve Shipping Address vs. sütunlarına sahip olabilir. Sipariş malzemelerinin olduğu bir tablo da OrderItem ID, Order ID, Product ID, Quantity vs. sütunlara sahip olabilir. 

Tablonun satırlarında veriler saklanır, bunlara Record (kayıt) denir. 

Örnek olarak siparişleri gireceğimiz Order tablosundaki kayıtlar şöyle olabilir.


Sipariş malzemelerin yer aldığı OrderItem tablosu da şöyle kayıtlar içerebilir.


OrderItem tablosu Order ID adında bir sütuna sahip. Bu sütundaki bilgi bize o kayıt satırındaki sipariş mlzemesinin hangi siparişe ait olduğunu gösterir. Veritabanına yabancı olanlar için biraz daha açalım. Olayı kağıtta takip ettiğimizi düşünelim. Her siparişi ayrı bir sayfaya not aldığımızı düşünürsek , sipariş sayfasında siparişi olan her malzeme için bir malzemeyi ve miktarı gösteren bir satır olacaktır. Şimdi burada her sipariş sayfası Order tablomuzdaki bir kayda karşılık gelirken, tüm sipariş sayfalarının tamamındaki malzeme satırları OrderItem tablosuna yazılıyor. Hangi malzeme satırının hangi sipariş sayfasına ait olduğunu belirtmek için de Order ID ile sipariş sayfasının numarasına bağlanıyor. Yukarıdaki örneğe bakacak olursak, sipariş malzeme listesindeki 1. ve 2. kayıt sipariş tablosundaki 1 numaralı siparişin satırları. Sipariş malzeme listesindeki 3. satır da sipariş tablosundaki 2 numaralı siparişe ait malzemenin bilgisi. 

Bu tasarımda Order tablosu ve OrderItem tablosu birbirlerine "Order ID" sütunu üzerinden bağlanmış oluyor. İşte bu bağlantılar yüzünden "bağlantılı veritabanı" isimlendirmesi kullanılır.

Order tablosundaki Order ID sütunundaki veri tüm satırlarda farklı değer almalıdır, bu veri o siparişin seri numası gibi bir anlam ifade eder. Bu çeşit ID bilgisi içeren sütuna tablonun Primary Key sütunu denir. 

Diğer tablodan (OrderItem) bu sütuna bağlantı için konmuş olan sütuna da Foreign Key denir. Çünkü bu bilgi başka bir tablodaki kayıtı işaret etmektedir. Bu sütunun hep farklı veri içermesi gerekmiyor. Yukarda örnekte de gördüğümüz gibi bir siparişin içinde birçok malzeme olabilir. Buna bir-den-çok'a bağlantı yani One-to-Many bağlantı denir. 

Diyelim depomuzdaki ürünlerin neler olduğunu kaydettiğimiz Product tablomuz olsun bunda da şöyle kayıtlar olabilir.


Şimdi OrderItem tablosunda girilen kayıtlara bir bakalım. Order ID'si 1 olan siparişte Product ID'si 100 ve 209 olan iki ürün sipariş edilmiş. Bu şu demek, bir Order kaydı birden çok Product kaydına bağlanmaktadır. Bu durumda Order tablosundan Product tablosuna bakınca One-to-Many bağlantısı olmaktadır. 

Product ID'si 209 olan ürün için Order tablosunda iki sipariş kaydı karşı gelmekte. Bu şu demektir, bir ürün birden çok sipariş kaydına bağlanabilir. Bu durumda Product tarafından Order tablosuna bakınca da One-to-Many bağlantısı olmaktadır. 

Bu çeşit bağlantıya da Many-to-Many bağlantı denir. Yani bir sipariş birden çok ürünü içerebilir ve bir ürün de birden çok siparişte kullanılabilir. OrderItem tablosu üzerinden Order ve Product tabloları arasında Many-to-Many bağlantı vardır. 

Bir One-to-Many bağlantısı iki tablo arasında olur.

Bir Many-to-Many bağlantısı ise 3 tablo içerir. 

Burada kullanılan temel kelimeler Tablo, Sütun, Kayıt, Primary Key, Foreign Key, One-to-Many, Many-to-Many. Bazıları için İngilizce kullandım çünkü veritabanı ile program yazarken bu kelimeler ile çok fazla muhatap olacağız.



Veritabanına Erişen Elemanlar


Veritabanı uygulamaları , veritabanlarından verileri okur veya verileri veritabanlarına yazar. Aşağıdaki elemanlar veritabanı programlarında kullanılan temel elemanlardır.

Veritabanı Sorgusu (Database Query)


EasyQuery elemanı SQL (Structured Query Language) adı verilen ve veritabanlarında standart olarak kullanılan bir dili kullanan veritabanına erişim elemanıdır.


Kolay Veri Seti


EasyDataSet elemanı veritabanından alınan verileri içinde barındırır. Bu elemanın içindeki veriler standart GUI elemanları kullanarak gösterilebilir ya da değerlendirilebilir. 


Kolay Grid


EasyGrid elemanı veritabanından alınan bilgileri görsel olarak grid yapıda tablolarda göstermeye yarar.


Detaylı Kolay Grid


EasyGridDetail elemanı da veriyi daha kapsamlı bir şekilde göstermek için kullanılır. Bir One-to-Many bağlantısında verinin Many tarafını gösterir. Bağlantının One tarafını gösteren bir EasyDataSet ya da EasyGrid ile birlikte kullanılmalıdır. Örneğin EasyGrid ile Order tablosu kayıtlarını gösterirken, EasyGridDetail elemanı ile EasyGrid'de seçilen sipariş satırına karşı gelen OrderItem satırlarını görebiliriz. 


Kolay Veri Kaydetme


EasyUpdator elemanı veritabanına verileri kaydetmek için kullanılır. Yukarda bahsi geçen elemanlar da veritabanına kayıt yapabilir ama onların hepsi önce veriyi veritabanından okuyup sonra kayıt yapabilirler. Bu eleman ile önce veriyi okumadan tablolara yeni kayıt ekleyebilir, olan kayıtları silebilir ya da değiştirebiliriz. Bir kez çalıştırmasına karşı bir çok veri kayıt işlemleri yapabilir. Bu arada veritabanına veri ekleme de olan veriyi değiştirme de olan veriyi silme de "update" işlemi ile ifade edilir. 



Veritabanı Çalıştırıcı


DatabaseExecuter elemanı veritabanı içinde tanımlanmış prosedürleri çalıştırmak için kullanılır. Stored-procedures adı verilen prosedürler veritabanı tasarımcısı tarafından sürekli yapılan bazı işlemleri kolaylaştırmak amacıyla yazılmış fonksiyonlardır. DatabseExecuter elemanı bir nevi EasyUpdator elemanın alt sınıfı gibidir. Parametreleri prosedürlere gönderir ve prosedür çalışması sonucu çıkan sonucu da parametrelere alır. Eğer prosedür tablolar şeklinde cevap verisi dönüyorsa bu tablolar Results özelliğinde saklanır.


EasyTransactor


EasyTransactor elemanı birçok EasyUpdator/EasyExecuter elemanının aksiyonlarını tek bir veritabanı etkileşimi ile gerçekleştirir. Eğer listedeki herhangi bir EasyUpdator/EasyExecuter aksiyonu hata dönerse veritabanına hiçbir kayıt yapılmaz. Sadece tüm EasyUpdator/EasyExecuter aksiyonları başarılıysa veritabanına kayıt yapılır.





Veritabanı Bağlantısı Yapılması


DatabaseConnection Özelliğinin Ayarlanması


 Veritabanı motorları veritabanı uygulaması tasarımcılarının veritabanlarına ulaşabilmesi için ADO.Net sürücüleri kullanırlar. Bir veritabanını kullanabilmek için ilk önce kullanılacak ADO.Net sürücüsünü belirlemek gerekir. 

Örneğe başlayalım, yeni bir windows uygulaması başlatalım. Formumuza bir EasyGrid elemanı ekleyelim.


Veritabanına bağlanmak için DatabaseConnection özelliği kullanılır. Özellik yanındaki butona tıklayalım.


Veritabanı bağlantıları yöneticisi penceresi açılır.


Her veritabanı bağlantısına sistem tarafından ConnectionGuid özelliği ile ayrı ve sistemde tek olan bir isim verilir. Biz Name özelliğine açıklayıcı bir isim yazarak bağlantıyı kullanabiliriz. 


Bir bağlantının ConnectionObject özelliği veritabanı sürücüsü ve parametrelerini belirler. 



Veritabanı Sürücüsünü Seçmek


Diyelim veriler Access 2000 veritabanında saklı. Bu durumda sürücü olarak OleDbConnection seçeriz. 


DatabaseType özelliği bağlanacak veritabanı sürücüsünü belirler. 

OleDbConnection - Bu sürücü masaüstü dosya veritabanlarına bağlanmak için kullanılır. Örneğin Microsoft Access.

SqlConnection - Bu sürücü Microsoft SQL Server veritabanlarına bağlanmak için kullanılır. 

OdbcConnection - Bu sürücü ile ODBC bağlantısı yapılabilen tüm veritabalarına erişilebilir. En yaygın bağlantı şeklidir.

Other connection type - Bu sürücü seçilirse açılan listeden kendi bağlantı ADO.Net sürücüsünü kullanan veritabanlarının bir listesi çıkar bu listeden ilgili veritabanına ait .dll dosyası seçilmelidir.



ConnectionString Özelliğinin Ayarlanması


OleDbConnection seçtiğimiz için ConnectionString özelliğinin seçeneklerine tıkladığımızda bize Access dosyasının yerini soran bir pencere çıkacaktır.


Access dosyamızı seçelim ve Test butonuna tıklayalım. Örnek dosyayı buradan indirebilirsiniz. 


ConnectionString özelliğimiz oluşturuldu. Bendeki şekli:

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\ujk_common\prg\Limnor\WinFormApp10\Inventory.mdb;Mode=ReadWrite;



Query Builder (Sorgu Tasarımcısı)


QueryBuilder ile SQL kodlarını görsel olarak hazırlayabiliriz. SQL dilini bilmemize gerek kalmaz. 

EasyGrid nesnemizin SQL özelliğini ayarlamak istediğimizde karşımıza QueyBuilder penceresi çıkar.


QueryBuilder verilen ConnectionObject ile veritabanına bağlanır ve veritabanında bulunan bildileri seçebilmemiz için bize gösterir. 

Diyelim Order tablosundan kayıtları görmek istiyoruz. Order tablosundan görmek istediğimiz sütunları çift tıklayarak sorgumuz içine alabiliriz. Bütün sütunları çift tıklayıp alalım.


OK tuşlayıp kaydettikten sonra uygulamamızı çalıştıralım. Tablo verileri ekrana gelecektir.





Bağlı Kayıtları Getirmek


Diyelim malzeme bilgilerini de OrderItem tablosundan almak istiyoruz. SQL sorgusunu tekrar açalım. OrderItem tablosundan Product sütununa da çift tıklayıp sorgumuza ekleyelim.

Bunu yaptığımızda sorgumuza mevcut sorguda kullanılanlardan başka bir tablodan sütun eklemek istediğimiz için iki tablo arası bağlantıyı soran bir pencere açılacaktır.


İlk seçenek sorguya yeni giren OrderItem tablosunun hangi Sütununun bağlantı için kullanıldığı. Burada OrderID sütununu seçelim. İkinci seçenek hangi tabloya bağlandığı orada da Order tablosunu seçelim. Üçüncü seçenekse Order tablosunda hangi sütunla bağlantı olacağı burada da Order tablosunun OrderID sütununu seçelim.


Sorguyu kapattığımızda yeni sorgumuza göre sonuçlar görünecektir.





Sıralamak


Eğer aynı OrderID'ye sahip kayıtları bir arada görmek istersek Sort butonu tıklayıp listeden sıralamayı seçeriz. 


Sıralanmış sonuç gelecektir.




Hesaplanmış Alanlar


Hadi fiyat ve miktarı gösteren Price ve Quantity sütunlarını da sorgumuza ekleyelim. 


Diyelim fiyat ile miktarı çarpıp onun sonucunu da ilave bir Amount isimli sütunda göstermek istiyoruz. İşte bunu yapabilmek için SQL kodunun içine girip müdahale etmek gerekiyor. İlerde bu tasarımcıda olmayan ama SQL dilinde yapılması mümkün işlerde aynı bu teknikle direk SQL koduna müdahale edebilirsiniz. Sol alttaki Show SQL seçeneğini aktif edelim. 


Burada FROM kelimesinden önce Quantity sütununa ilave bir Amount adında sütun ekleyerek burada adet ve birim fiyatı çarparak satır toplamı elde edeceğiz. Şimdi FROM kelimesi öncesine bir virgül koyarak aşağıdaki ilaveyi yapalım:

[OrderItem].[Price]*[OrderItem].[Quantity] AS [Amount]

Düzenlemeyi yapıp CheckSyntax butonu ile test edip sonucu gördükten sonra son görüntü şöyle olacaktır.





Gruplamak


Gruplama ile sorgu sonucundan istatistik çıkarılır. Örneğin burada siparişlerin birden çok satırı var ve biz her siparişin toplam bedelini bilmek istiyoruz. Bu amaçla aynı sipariş numarasına sahip satırların Amount değerlerini toplayarak o siparişin bedelini hesaplayabiliriz.

Aşağıdaki Group butonu ile gruplandırmayı başlatalım.

,

Amount sütununun toplamını istediğimiz için sol tarafta bu sütunu seçelim sağ tarafta da SUM işlemi ile toplamayı seçelim.


Siparişlere göre gruplandırmayı yapabilmek için de OrderID sütunu ve Goup by işlemini seçelim.


Eğer bir sütun yanına yanlışlıkla bir işlem seçerseniz ilemlerin en üstündeki boş işlemi seçerek işlemi iptal edebilirsiniz.

Grup sorgularında bir kural vardır, her sütun mutlaka bir işleme tabi tutulmalıdır. Product Price ve Quantity alanlarında işlem olmadığı için sorgudan çıkarılacaktır. Ama biz OrderTime ve Customer sütunlarının da sorgu sonucunda yer almasını istiyoruz, bu amaçla onlara da sahte birer etkisiz işlem olarak MAX işlemini atayarak oyunda kalmalarını sağlayabiliriz.

Sorgumuzun son hali.


OK basarak gruplama sonucunda aldığımız cevabı görelim.






Filtrelemek


Filtreleme istenmeyen satırları sorgu cevabından çıkarmak için kullanılır. Filter butonuna basalım.


Sütunu ve bu sütundaki bilginin hangi kritere göre filtreleneceğini seçelim. Diyelim OrderID'si 2'den küçük olanları seçeceğiz.


Add filter butonu ile filtre satırını listeye ekleyelim. 



Dikkat ettiyseniz yeni filtreler eklemek istediğimizde bunları AND ya da OR işlemleri ile mevcut filtrelere ekleyeceğiz. Biz sadece bu filtreyi kullanacağız. OK butonu basıp filtreyi kaydedince artık sorgumuzda tek bir cevap satırı kaldı.








Veri Bağlama (Data Binding)


Bir elemanın bir özelliği veritabanından veriyi direk almak için bir sorgunun bir sütununa bağlanabilir. Buna veri bağlama denir (Data Binding).

Gösterilen veri sorgulamasında sorgu cevabı bir tablol olarak geliyor. Bir tabloda birçok kayıt (satır) bulunabilir. Bu kayıtlar içerisinde o anda sırası gelen kayıta Current Record denir. Bu Current Record elemanların özelliklerine veri bağlama amacıyla kullanılabilir. 



Tasarım Esnasında Veri Bağlama Yapmak


EasyDataSet elemanı ile diğer elemanlarına veri bağlama işlemi gerçekleştirilebilir. 

Yeni bir Windows uygulaması başlatıp formumuza bir EasyDataSet elemanı sürükleyelim.

EasyDataSet nesnesinin DatabaseConnection özelliği ile Access veritabanımıza bağlantıyı yapalım ve test edelim. Dosyayı buradan indirebilirsiniz. 


Sorgumuzda bulunacak sütunları seçelim.


Sorgu bu kadar diyelim biz TeacherID sütunundaki bilgi sadece okunabilir bir bilgi olduğu için bir Label elemanı ile göstereceğiz. FirstName ve LastName sütunlarını ise değişikllik yapılabilmesi amacıyla TextBox elemanları ile göstereceğiz. BirthDate sütunu içinse DateTimePicker elemanı kullanılabilir. 

Form tasarımı şöyle olur.


TeacherID Label elemanının Veri başlığı altındaki DataBindings özelliklerini açalım ve içindekilerden Text özelliğine EasyDataSet nesnemizdeki ilgili alanı seçelim.


FirstName textbox Text özelliğini FirstName sütununa LastName textbox'ı LastName sütununa bağlayalım. DateTimePicker elemanında bu sefer value özelliğini veri bağlaması yapacağız.

Böylece 4 tane veri bağlaması yaptık. Çalıştırdığımızda ilk satır bilgisi elemanlara gelecektir.


Peki diğer satırları nasıl göreceğiz?



Kayıtlarda Gezinmek


Default olarak başlangıçta EasyDataSet elemanının Current Record kaydında birinci sıra yer alır. Diğer kayıtları Current Record özelliğine getirmek için EasyDataSet nesnesinin çeşitli metodları vardır.

MoveFirst - İlk satırı Current Record'a alır.

MoveLast - Son satırı Current Record'a alır.

MoveNext - Bir sonraki satırı Current Record'a alır.

MovePrevious - Bulunan kayıttan bir önceki kaydı Current Record'a alır.

Bu 4 işlem için Forma 4 buton ekleyip bunları ilgili aksiyonlara bağlayalım. 


Uygulamayı çalıştırıp butonları test edelim. Kayıtların değişimini görelim.





Kaydı Değiştirmek


Sorguda hangi kayıtta olduğumuzu belirten her kayıt için ayrı değer alan bir sütun bulunması gerekir. Burada TeacherID sütunu bu şekilde değerlere sahip. 

Kayıtlarda değişiklik yapabilmek için EasyDataSet nesnesinin ForReadOnly özelliğinin FALSE değere sahip olması gerekir.


EasyDataSet nesnesi kayıtları değiştirmek amacıyla bazı metodlar içerir.

AddNewRecord - Tabloya yeni bir kayıt ekler.

DeleteCurrentRecord - Current Record özelliğinde bulunan kaydı siler.

Update - Tüm yapılan değişiklikleri veritabanına kaydeder. Değişiklikler içinde yeni kayıt ekleme, olan kaydı silme veya Formdaki elemanlar yardımıyla değiştirilen kayıtları kaydetme işlemleri gerçekleştirilir. 

Bu metodları test için de 3 adet buton ekleyelim ve metodları aksiyon olarak butonlara bağlayalım.


Uygulamayı çalıştırıp New butonuna basalım.


Yeni eklenen kayıt Current Record olarak yerini alır.


Bu kayıta yeni değerler girelim.


New butonuna tekrar basarak yeni bir kayıt daha oluşturalım. 


Dikkat ettiyseniz TeacherID değeri kendi kendine değerler alıyor. Bunlar gerçek değerler değil çünkü bunlar veritabanında otomatik sayı olarak tanımlanmış ve Update metodu kullanılıp veriler veritabanına gönderildiğinde veritabanı bu sütuna her kayıt için otomatik yeni sayı ekleyecektir.

Bir şey daha tüm eklene kayıtlar, değiştirilen kayıtlar ya da silinen kayıtlar halen veritabanına yazılmış değil daha hafızada bekliyorlar.

Tüm yapılan değişiklikler Save butonuna bağladığımız Update metodunu çalıştırınca veritabanına kaydedilecektir.

Bunu test için Save butonuna basalım , uygulamamızı kapatıp tekrar açalım ve yeni eklediğimiz kayıtları görelim. 






Parametrelerle Sorgu Yapmak


Sorguya Parametre Eklemek


Sorgu içine parametre eklenebilir böylece kullanıcı çalışma zamanında bu parametrelerin değerlerini değiştirerek sorgunu değişmesini sağlayabilir. 

Bir EasyGrid elemanı ile bunu görelim. 


DatabaseConnection özelliğinden veritabanımıza bağlayıp SQL düzenleme sihirbazını açalım. Tüm alanları seçtikten sonra Filter butonuna tıklayalım.


FirstName sütununu seçelim, Operator olarak "contain" seçelim ve Value olarak "Param" seçelim.

Parametre adına "name" yazalım ve "Add filter" butonuna basalım.


BirthDate sütununu seçelim, <= operatörünü seçelim, Param seçelim ve isim olarak birthDateUpLimit yazalım. "Add AND filter" butonuna basalım.


Filtremizin son hali şöyle olacaktır. OK butonu ile filtreyi kaydedelim.


Tekrar OK tuşlayarak sorgu sihirbazından da çıkalım. Parametrelerin tiplerini doğru seçmemizle ilgili bir uyarı çıkacaktır. Burada istersek parametre veri tiplerini değiştirebiliriz. Burada da bir şey yapmadan OK basalım.








QueryWithParameterValues Aksiyonu Tanımlamak


Parametre değerlerinin girilmesi için forma bir TextBox ve bir de DateTimePicker elemanı ekleyelim. Arama yapmak amacıyla da üzerinde Search yazan bir buton ekleyelim. 

Aramayı yapabilmek için EasyGrid elemanına sağ tıklayıp Create Action ve metod olarak da QueryWithParameterValues seçelim. 


Parametre değerlerine TextBox'ın Text özelliği ve DateTimePicker'in Value özelliğini seçelim.


Bu yeni aksiyonu Search butonumuza bağlayalım. 


Uygulamayı artık test edebiliriz.

Arama parametrelerini girelim ve Search butonuna basalım.


Arama sonucu ekrama gelecektir.






Ana ve Detay Verilerle Çalışmak


Bir one-to-many veri bağımlılığında ana kayıtları tutmak için bir EasyDataSet ya da EasyGrid kullanıp bir EasyGridDetail ile de detay kayıtlarını gösterebiliriz. Bu örnekte biz ana kayıtları göstermek için EasyGrid elemanı kullanacağız.


EasyGrid Kullanarak Ana Kayıtların Alınması


Forma bir EasyGrid elemanı ekleyip veritabanımıza bağlayalım ve ana kayıtları alacak şekilde SQL özelliğini ayarlayalım.

Ana kayıtlar olarak siparişlerin olduğu Order tablosunun sütunlarını seçeceğiz. Detay kayıtlar ise Order tablosuna OrderID sütunu ile one-to-many bağımlılığı olab OrderItem tablosunun sütunlarını seçeceğiz. 


Grid üzerinden kolay veri girişi yapabilmek için OrderTime sütunu için Date Selector kullanalım. EasyGrid nesnesi özelliklerinden Fiel Editors grubundan OrderTime için listeden Date Selector olarak değeri değiştirelim.


Bize istediğimiz Date Selector diyalog penceresi boyutu sorulacaktır. Windows uygulamasında Small Dialog yeterli bunu seçelim. Dokunmatik ekran uygulamalarında Large Dialog seçeneği daha doğru  olacaktır.

İsterseniz bu noktada uygulamayı çalıştırıp hem ana kayıtların gelişini hem de Date Selector dialog ekranının neye benzediğini görebiliriz.



Detay Kayıtların Alınması


EasyGridDetail elemanı kullanarak ana kayıtlara bağlı detay kayıtlarını gösterebilir ya da modifiye edebiliriz. 

Forma bir EasyGridDetail ekleyip Master özelliğine EasyGrid elemanını seçelim.


Detay kayıtları almak için SQL özelliğinde OrderItem tablosunun sütunlarını seçelim.


Ana-detay kayıtların bağlantısı her iki tabloda da bulunan OrderID sütunu üzerinden yapılmaktadır. MasterKeyColumns özelliğinden Order tablosunun OrderID sütununu seçelim.


DetailsKeyColumns özelliğinde de OrderItem tablosunu OrderID sütununu seçelim.


Şimdi çalıştırıp test edersek yukarıdaki tabloda seçilen siparişin ayrıntılarını aşağıdaki tabloda görebiliriz.


İkinci kaydı seçersek de on ait malzemelerin listesi gelecektir.








Ana Kayıtları EasyDataSet Elemanı Kullanarak Almak


Bu sefer ana kayıtları bir EasyDatSet elemanı ile toplayıp normal elemanlar üzerinde veri bağlama yoluyla gösterelim veya değiştirelim. Forma verileri gösterecek elemanlar ve kayıtlar arasında gezinmek için butonlar ekleyelim. Bunun nasıl olacağını yukarıda işlemiştik. 




Detaylar İçin EasyGridDetail Kullanmak


Forma bir tane EasyGridDetail elemanı ekleyelim. Master özelliğine EasyDataSet elemenını seçelim.


SQL özelliğine OrderItem tablosunun sütunlarını girelim. MasterKeyCoumns ve DetailsKeyColumns özelliklerini önceki örnekteki gibi OrderID sütunlarına bağlayalım. 

Şimdi test edelim. İlk sipariş kaydı üstteki elemanlarda görünecektir. Bu siparişin tüm malzemeleri de gridde görünecektir.


İleri tuşuyla ikinci kayıda geçtiğimizde bu sefer ona ait malzemeler gridde görünecektir. 

Bu yazı çok uzun bir yazı bu yüzden burada kesip devamını sonraki yazıya bırakıyorum nasipse. 

Görüşmek üzere..









Hiç yorum yok:

Yorum Gönder