İsteğe bağlı raporlama !!!

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
ozcank
Üye
Mesajlar: 937
Kayıt: 28 Nis 2005 05:29

İsteğe bağlı raporlama !!!

Mesaj gönderen ozcank »

Arkadaşlar ;
Form üzerine İki tane listbox eklesem ve bu listbox1 ın bir tanesine DB dosyasının alanlarını göstersem ve burdan istediği alana cift tıklayarak listbox2 ye aktarsa ve bu aktarılan alanları bir button1 yardımı ile DBGrid1 e nasıl rapor aldırabilirim.Birde diyelimki Listbox1 den MUSKODU nu listbox2 ye cift tıklayarak aktardı ve ListBox2 de de bu alana cift tıklayınca bir edit açılsa ve bu alana 01 girse DBgrid1 e 01 alanlarını listelese bu mümkün mü yardım ederseniz çok sevinirim.
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

S.A.
ozcank yazdı:bu mümkün mü
evet mümkün. ancak uğraşmanız gerekecek.
1. dbgrid in columns unu sıfırlayın. yani hiç column kalmasın.
2. 2.listboxdaki eleman sayısı kadar döngü kurun ve dbgrid in columns una ekleyin.

Kod: Tümünü seç

 dbgrd.columns.add..... 
field name leri unutmayın.
3. 2.listboxa çift tıklayınca açılacak olan editte de seçilen alana göre filitre yapacaksınız.

Kod: Tümünü seç

 filitre:=lb.items[lb.intemindex]+'='+edit1.text
;
vs...
burada kodları biraz atmasyon yazdım. bu tarz bir yapı ile istediğin işlemi yapabilirsin.

kolaygelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
ozcank
Üye
Mesajlar: 937
Kayıt: 28 Nis 2005 05:29

istege baglı raporlama !!!

Mesaj gönderen ozcank »

Arkadaşlar isteğe bağlı olarak bu şekilde birşeyler yazdım ama DBGrid1 e aktarırken hata veriyor.Hata aslında alanları Db deki gibi olunca hata yok ama alanları Caption da türkçe yazınca şöyler ki "MUSKODU" "Müşteri Kodu" şeklinde yapınca hata veriyor yardım ederseniz çok sevinirim.

procedure TForm1.FormActivate(Sender: TObject);
begin
//listbox1.items.clear;
//listbox1.items:=Table1.Fieldlist;
end;

procedure TForm1.ListBox1DblClick(Sender: TObject);
begin
listbox2.items.add(listbox1.items[listbox1.itemindex]);
end;

procedure TForm1.ListBox2DblClick(Sender: TObject);
begin
listbox2.items.delete( listbox2.itemindex );
end;

procedure TForm1.Button1Click(Sender: TObject);
var
sql:String;
i:Integer;
begin
sql:='Select ';
For i:=0 to listbox2.items.Count-1 do
sql:=sql+''+listbox2.items+',';
sql := copy(Sql ,1, length( sql) -1 ) + ' From ELEMANT ';
query1.sql.Clear;
query1.sql.add(sql);
query1.Open;
query1.Active:=True;
end;
procedure TForm1.FormShow(Sender: TObject);
Var
I:Integer;
begin
For I:=0 To Table1.FieldCount-1 do
Begin
Listbox1.Items.add(Table1.Fields.DisPlayLabel);
end;
end;

end.
Kullanıcı avatarı
vedatkaba
Kıdemli Üye
Mesajlar: 866
Kayıt: 06 Oca 2004 06:50
Konum: DARICA/GEBZE

Mesaj gönderen vedatkaba »

Merhaba kolay gelsin yanlış anlamadım umarım ama yapmak istediğiniz olay alanları bir listboztan seçip ona göre sorgulatığ rapor hazırlayacaksınız..bunu için ikitane listbox kullanmışsınız ama sorun bana göre ikinci listboxta alanları attığınız listboxtan seççip 2.listboxa ekliyorsunuz bunu şöyle yapsanız..alanları attığınız listobox altta kalıp görünmese ve dbgrid kullanıyorsanız dbgrid de columns özelliğini kullanarak alan isimlerini görmek istediğiniz gibi belirleyin ve coulms adlarını diğer listboxa atsanız sırayla ama alanların indexleriyle aynı olcak.ve ordan seçerek alan isleriminin olduğu listboxtanda aynı indexi seçerseniz sorun kalmaz sanırım..

kolay gelsin
***********************************
Kamil odur ki; koya dünyada bir eser,
Eseri olmayanın, yerinde yeller eser.

***********************************
Cevapla