ilişkili tablolara kayıt girme

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
kadird35
Üye
Mesajlar: 29
Kayıt: 13 Eki 2005 11:15
Konum: İZMİR

ilişkili tablolara kayıt girme

Mesaj gönderen kadird35 »

arkadaşlar herkese selam. hepinizin geçmiş bayramınızı kutluyorum. Benim birkaç sorum olacak. Vergi iadesi fişleri kaydı ile ilgili ufak bir program yazmak istiyorum. Tablolarım şunlar.

TKISI
ID : AUTOINC;
KISI : VARCHAR(50);

TGRUP
ID : AUTOINC;
GRAD : VARCHAR(10);
TDONEM
ID : AUTOINC;
YIL : INTEGER;
TFISLER
ID : AUTOINC;
TARIH : DATE;
FISNO : VARCHAR(10);
KIMDEN : VARCHAR(50);
GRUP : VARCHAR(10);
TUTAR : NUMERIC;


Bu tabloların ilişkilendirilmesi yardımı ile, oluşturulacak formda önce kişiyi seçip sonra hangi yıl a kayıt yapacağını seçip sonra da o yıla ait fişleri gireceğim. yani her yıla ve her kişiye ayrı vt. oluşturmaktansa hepsini tek tabloda toplayacağım. ama açıkçası 1. hangi vt yi seçeceğim konusunda kararsızım. yani bu program her makinada çalışsın istiyorum. yani firebird veya interbase kurmak zorunda kalmayayım. bunun için ado yu seçmem gerektiğini düşünüyorum. ado yu seçersem eğer xp de yazdığım bu program win98 de çalışırmı acaba ve ado da ilişkilendirme nasıl yapılır.
2. table mi yoksa query mi kullanmalıyım. yani fişler tablosunda veri girerken
YIL KİŞİ TARİH FİŞNO KİMDEN GRUP TUTAR
------ -------------- ------------- -------- ----------------------- ------ -------
2005 ALİ ÇOBAN 01.01.2005 00001 PEHLİVANOĞLU A.Ş. GIDA 23,85


Şeklinde kayıt edilmesini istiyorum. Grup tablosuna sabit verileri ben gireceğim "gıda eğitim sağlık giyim ve kira"
3. bu verileri excele aktarabilirmiyim.
4. qreport ta a3 kağıdına çıktı alabilecek kadar genişletilmiş rapor hazırlayabilirmiyim.
arkadaşlar bu konularda açıklayıcı bilgilere ihtiyacım var. furm kurallarını okudum. ve forumu araştırdım. ama inanın bunların hepsini bir araya toplacayak tecrübeye sahip değilim. bu bilgilerin hepsini bu projede bir yere toplarsam bu benim için şablon olacak ve bundan sonraki programlarımda da bunu kullancağım. hem eminim ki böyle komple bir örneğe de benim gibi yeni başlayan arkadaşların da ihtiyacı vardır.
ilgilenen ve cevaplayan herkese çok teşekkür ediyorum.
Kullanıcı avatarı
Terminator
Üye
Mesajlar: 313
Kayıt: 13 Ara 2005 01:45
Konum: İzmir, ama Aydın Efesi!

Mesaj gönderen Terminator »

TKISI
ID : AUTOINC;
KISI : VARCHAR(50);

* ID integer olmalı, kişi sayısı 32 bini geçebilir belki ;)


TGRUP
ID : AUTOINC;
GRAD : VARCHAR(10);

* ID smallint olmalı, grup sayısı fazla olmaz

TDONEM
ID : AUTOINC;
YILI : INTEGER;

* Bu tabloya ihtiyacın yok aslında, illa tutacaksan ID ye gerek yok,
YIL smallint olmalı, YIL aynı zamanda ID konumunda burada çünkü

TFISLER
ID : AUTOINC;
TARIH : DATE;
FISNO : VARCHAR(10);
KIMDEN : VARCHAR(50);
GRUP : VARCHAR(10);
TUTAR : NUMERIC;

* Fiş kime ait? hani kişi_ID ?
Fiş_ID integer olmalı, GRUBA madem ID verdin burada adını değil ID sini kullan çünkü bu bir hareket tablosu ve hacmi önemli.
TUTAR YTL olacağı için, (bu seneki vergi iadesi olayına yetiştiremezsin çünkü) numeric(9,2) verebilirsin, 4 byte binaryde tutacak. hiç kimse
1 milyon ytl harcayıp fiş ya da fatura olarak iadeye işlemez.

Bu tabloların ilişkilendirilmesi yardımı ile, oluşturulacak formda önce kişiyi seçip sonra hangi yıl a kayıt yapacağını seçip sonra da o yıla ait fişleri gireceğim. yani her yıla ve her kişiye ayrı vt. oluşturmaktansa hepsini tek tabloda toplayacağım. ama açıkçası 1. hangi vt yi seçeceğim konusunda kararsızım. yani bu program her makinada çalışsın istiyorum. yani firebird veya interbase kurmak zorunda kalmayayım. bunun için ado yu seçmem gerektiğini düşünüyorum. ado yu seçersem eğer xp de yazdığım bu program win98 de çalışırmı acaba ve ado da ilişkilendirme nasıl yapılır.
*basit bir uygulama olduğu için hemen her sistemle yapılabilir.
eğer tek kullanıcılı düşünüyorsan, embedded firebird her yerde, sadece uygulama dizinini kopyalamanla çalışır.
2. table mi yoksa query mi kullanmalıyım. yani fişler tablosunda veri girerken
YIL KİŞİ TARİH FİŞNO KİMDEN GRUP TUTAR
------ -------------- ------------- -------- ----------------------- ------ -------
2005 ALİ ÇOBAN 01.01.2005 00001 PEHLİVANOĞLU A.Ş. GIDA 23,85
* hangisi kolayına geliyorsa kullan, table burda pek zaaf göstermez çünkü herkesin kendi fişleri bir table gibi işlenecek. tüm tablonun browse edilmesi riski yok.

Şeklinde kayıt edilmesini istiyorum. Grup tablosuna sabit verileri ben gireceğim "gıda eğitim sağlık giyim ve kira"
3. bu verileri excele aktarabilirmiyim.
* birçok grid vs komponentinin excel için output verme fonksiyonu var.
4. qreport ta a3 kağıdına çıktı alabilecek kadar genişletilmiş rapor hazırlayabilirmiyim.
* yazıcının sayfa ayarlarında A3 seçeneği varsa yapabilmen lazım.
arkadaşlar bu konularda açıklayıcı bilgilere ihtiyacım var. furm kurallarını okudum. ve forumu araştırdım. ama inanın bunların hepsini bir araya toplacayak tecrübeye sahip değilim. bu bilgilerin hepsini bu projede bir yere toplarsam bu benim için şablon olacak ve bundan sonraki programlarımda da bunu kullancağım. hem eminim ki böyle komple bir örneğe de benim gibi yeni başlayan arkadaşların da ihtiyacı vardır.
ilgilenen ve cevaplayan herkese çok teşekkür ediyorum.
* kolay gelsin.
Firebird Foundation Member #208
http://www.firebirdsql.org
Cevapla