Bu kodda hata nerede

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
ikutluay
Üye
Mesajlar: 2341
Kayıt: 03 Tem 2007 10:13

Bu kodda hata nerede

Mesaj gönderen ikutluay »

/// sanırım fazlaca aktiflikten sorduğum soru güme gitmiş. alt cevaptan silip yeni başlık açmak zorunda kaldım.

daha önce seçim yapılan kayıtların yazdırılmasını sormuştum. alan açmadan yapmak için bir listbox kullandım. aşağıdaki kod gridde iken sağ tıkla çağırdığım menüden tek bir kayda zarf basıyor. bunda filtreleme doğru çalışıyor.

Kod: Tümünü seç

procedure TFrmAdrG.BilgiKartYazdr1Click(Sender: TObject);
begin
//  inherited;
  Dm.TblAdr.Filter:='ID='+Dm.TblAdrID.AsString;
  Dm.TblAdr.Filtered:=true;
  frxReport1.LoadFromFile(ApplicationPath+'\diplomat.fr3');
  frxReport1.PrepareReport(True);
  frxReport1.ShowPreparedReport;
  Dm.TblAdr.Filtered:=false;
end;
yukardaki kodla gridde hangi kayıt secili ise yazdırıyorum. filtreleyip yazdır diyorum sorun yok.

birde kayıtlarn id lerini bir listboxa atarak topluca yaptırmayı denedim.. bu rapor yukardaki ile aynı frxreportu ve frxdbdataseti kullanıyor...

Kod: Tümünü seç


procedure TFrmAdrG.ListeyeEklenenKaytlarYazdr1Click(Sender: TObject);
var
i,j:integer;
yaz:Boolean;
begin
  inherited;
  frxReport1.PrintOptions.ShowDialog := false;
  Dm.TblAdr.DisableControls;
//  ShowMessage(inttostr(ListBox1.Items.count));
  j:=ListBox1.Items.Count-1;
//showmessage(IntToStr(j));
  for i:=0 to j do
   begin
     Dm.TblAdr.Filter:='ID='+ListBox1.Items[i];
//     ShowMessage(Dm.TblAdr.Filter);
     Dm.TblAdr.Filtered:=true;
     frxReport1.LoadFromFile(ApplicationPath+'\diplomat.fr3');
     frxDBDataset1.RangeBegin:=rbCurrent;
     frxDBDataset1.RangeEndCount:=1;
     frxReport1.PrepareReport(True);
     frxReport1.ShowPreparedReport;
//     ShowMessage(ListBox1.Items[i]);
   end;
  Dm.TblAdr.Filtered:=false;
  Dm.TblAdr.EnableControls;
  frxDBDataset1.RangeBegin:=rbFirst;
  frxDBDataset1.RangeEnd:=reLast;
end;

tablodaki tüm kayıtlar yazdırılıyor. yani filtemeleme olayı yemiyor. range ile ilgili olanları sonradan ekledim. ancak genede tüm kayıtlar geliyor sorun nedir acaba...

vt dbisam olarak çalışıyor. ilerde mssql yapacağım.
Kişi odur ki, koyar dünyada bir eser. Eseri olmayanın yerinde yeller eser./Muhammed Hadimi
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

s.a.
döngünün içinde filtered i önce false yapın. id ye değer atın filtreredi true yapın.
filtered true iken filter de yaptığınız değişiklikler aktif olmaz.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
ikutluay
Üye
Mesajlar: 2341
Kayıt: 03 Tem 2007 10:13

Mesaj gönderen ikutluay »

ve aleykum selam. akşam deneyeyim.
Kişi odur ki, koyar dünyada bir eser. Eseri olmayanın yerinde yeller eser./Muhammed Hadimi
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
Cevapla