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

Raporlama

Mesaj gönderen ozcank »

Arkadaşlar;
Şöyle birşey yapmak istiyorum yardımcı olurmusunuz?

Form üzerine ListBox1,ListBox2 ve DBGrid1 ekleyeceğim ve birde ekle çıkar buttonları ve Raporlama

ListBox1 e DB alanlarını gösterip istediğim alanı ListBox2 ye ekleyeceğim Rapor buttonu ile DBGrid1 e listeleme yapacağım böyle birşey için çalışma yaptım fakat birkaç yerde hata aldım daha kolay yoldan bu şekilde bir raporlamayı nasıl çözerim?
Delphi ci arkadaşlarımın yardımlarını bekliyorum.


ben şöyle birşey yaptım;
ListBox1,ListBox2,DBGrid1,Button1 ve Button2
Table1, datasource1
Query1, datasource2
ListBox1 in İtems Setting kısmına 'Eleman Kodu'
'Eleman Adı', Eleman Soyadı' ekledim aşağıdaki gibide Button1 e kod yazdım ama olmadı.

'Query1: No SQL Statement available ' hatası alıyorum birturlü anlamadım.

procedure TForm1.Button1Click(Sender: TObject);
var
sql:String;
i:Integer;
begin
sql:='Select ';
For i:=0 to listbox2.items.Count-1 do
begin
if listbox2.items='Eleman Kodu' then
sql:=sql+'ELKOD' + ',';
if listbox2.items='Eleman Adı' then
sql:=sql+'ELADI' + ',';
if listbox2.items='Eleman Soyadı' then
sql:=sql+'ELSOY' + ',';
query1.Open;
query1.Active:=True;
end;
end;
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Mesaj gönderen vkamadan »

merhaba ,
hatan bu alanların hangi tablodan seçileceğini belirtmemenden kaynaklanıyor ,
en sona

Kod: Tümünü seç

SQL:=SQL + ' FROM TABLO_ADI';
eklemelisin.
ayrıca hepsinden önemlisi SQL değişkenini Query nin SQL özelliğine atamalısın yani

Kod: Tümünü seç

Query1.close;
Query1.sql.clear;
Query1.sql.add(SQL);
iyi çalışmalar.
Volkan KAMADAN
www.polisoft.com.tr
ozcank
Üye
Mesajlar: 937
Kayıt: 28 Nis 2005 05:29

Mesaj gönderen ozcank »

procedure TForm1.Button1Click(Sender: TObject);
var
sql:String;
i:Integer;
begin
sql:='Select ';
For i:=0 to listbox2.items.Count-1 do
begin
if listbox2.items='Eleman Kodu' then
sql:=sql+'ELKOD' + ',';
if listbox2.items='Eleman Adı' then
sql:=sql+'ELADI' + ',';
if listbox2.items='Eleman Soyadı' then
sql:=sql+'ELSOY' + ',';
end;
query1.sql.Clear;
query1.sql.add(sql);
query1.Open;
query1.Active:=True;
end;

Bu şekilde cözüme kavuştum fakat şimdi yapmak istediğim ;
ListBox2 ye eklediğim alan adının üzerinde mesela 'Eleman Kodu'
ELKOD cift tıkladığımda Edit1.Text alanı açılacak ve ve buraya 01 yazdığım zaman 01 olan kayıtları listeleyecek böyle birşey nasıl yapabilirim yardım edebilirmisiniz?
Cevapla