IBQuery ile raporlama sorunu

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
engin_ufruk
Üye
Mesajlar: 5
Kayıt: 09 Eyl 2019 12:45

IBQuery ile raporlama sorunu

Mesaj gönderen engin_ufruk » 19 Eyl 2019 10:46

Ibquery ile kayit tuttugum bir tablom var. Bu tabloda where kosulu ile filtre yapip quikreport ile cikti almak istiyorum. Form modunda where kosulu ile kayitlarda filtreleme yapildigi gorunuyor ve dbgridde gorunuyor. Fakat raporla butonuna basip quikreport acildiginda ibquery nin where kosulunu kabul etmiyor ve tum kayitlari gosteriyor. Sorunu bi turlu cozemedim. Benzer sorunla karsilasan varmi varsa cozumunu bulan varmi acaba?

denizfatihi
Üye
Mesajlar: 234
Kayıt: 16 Şub 2004 06:12
Konum: istanbul

Re: IBQuery ile raporlama sorunu

Mesaj gönderen denizfatihi » 20 Eyl 2019 09:53

Merhaba,

Kodlarını paylaşırsan bir bakalım.

iyi çalışmalar,

engin_ufruk
Üye
Mesajlar: 5
Kayıt: 09 Eyl 2019 12:45

Re: IBQuery ile raporlama sorunu

Mesaj gönderen engin_ufruk » 20 Eyl 2019 11:20

denizfatihi yazdı:
20 Eyl 2019 09:53
Merhaba,

Kodlarını paylaşırsan bir bakalım.

iyi çalışmalar,
Ibquerynin sql cumlesi tasarım aninda şu şekilde yazip aktifligini true yapiyorum
Select * from SOZLESMELER order by SNO asc
Sonrasında program calıştirildiginda form asamasında belli kriterlerle filtreleme yapiyorum ve sql cumlesi örnegin şu şekilde yapılıp
Select * from SOZLESMELER where SATISDURUMU='SATILDI' order by SNO asc
Seklinde filtreleme gerceklesiyor. Formda dbgridde gorünüyor. Fakat raporla butonuna basıp Quikreport acıldıgında
Select * from SOZLESMELER order by SNO asc
Bu cümleye gore cıktı veriyor.
Ibqerynin sql cümlesi degistigi halde ilk haldeki cümleyi raporlıyor.
İlginiz için tesekkur ederim.

denizfatihi
Üye
Mesajlar: 234
Kayıt: 16 Şub 2004 06:12
Konum: istanbul

Re: IBQuery ile raporlama sorunu

Mesaj gönderen denizfatihi » 20 Eyl 2019 01:38

Merhaba,

Şuan elimin altında Delphi yok ama aşağıdaki mantık çerçevesinde deneyebilir misin ?

Kod: Tümünü seç

procedure TForm1.Button1Click(Sender: TObject);
begin

QuickRep1.DataSet:= ADOQuery1;

ADOQuery1.Close;
ADOQuery1.parameters.ParamByName('ID').Value:=DBEdit1.Text;
ADOQuery1.Open;

QuickRep1.Preview;

engin_ufruk
Üye
Mesajlar: 5
Kayıt: 09 Eyl 2019 12:45

Re: IBQuery ile raporlama sorunu

Mesaj gönderen engin_ufruk » 21 Eyl 2019 05:00

denizfatihi yazdı:
20 Eyl 2019 01:38
Merhaba,

Şuan elimin altında Delphi yok ama aşağıdaki mantık çerçevesinde deneyebilir misin ?

Kod: Tümünü seç

procedure TForm1.Button1Click(Sender: TObject);
begin

QuickRep1.DataSet:= ADOQuery1;

ADOQuery1.Close;
ADOQuery1.parameters.ParamByName('ID').Value:=DBEdit1.Text;
ADOQuery1.Open;

QuickRep1.Preview;
Merhabalar,
Bilgi paylaşımınız icin cok tesekkur ederim fakat bu yontemde olmadı. Ama gece boyunca baya ugrastım biraz tesadüfen olsada kısmen cözümü buldum. Sorun şundan ibaretmis.
Programimda ana formum ve sözleşmeler formum var. Ana formdaki mainmenüden sözlesmeler formunu
Şu kod ile cağırıyordum,
Procedure

Kod: Tümünü seç

frmAnaMenu.mainmenusozlesmelerClick(sender:TObject);
begin
FrmSozlesmeler:=TFrmSozlesmeler.Create(self);
try
FrmSozlesmeler.showmodal;
finally
FrmSozlesmeler.free;
end;
end;

Sözleşmeler formunda filtre uygulayip Rapor butonuyla Quikreportu cagırıyordum. Ve sorun meydana geliyordu.

Ana menüden sözlesmeler formunu cagırdığım yukardaki procedurede try finally kullanmadan onun yerine sadece FrmSozlesmeler.showmodal; kodunu yazarak sozlemeler formunu cagırınca filtreye göre raporlama sorunu cözüldü.

Fakat bu seferde Raporda birkac defa arka arkaya rapor alinca, quik reportun oldugu form kapatılnca
A component named QRStandardPreview already exists.
Hatası meydana geliyor. Bu hatayı kimi zaman veriyor kimi zaman vermiyor.

Cevapla