Rapor da hata !!!

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
ozcank
Üye
Mesajlar: 937
Kayıt: 28 Nis 2005 05:29

Rapor da hata !!!

Mesaj gönderen ozcank »

Arkadaşlar bu şekilde yaptığım zaman excel normal atıyor fakat 5 veya 6 kayıt rapor alıp excel e attığımda sondan 1 kayıt eksik alıyor ne yapabilirim lütfen yardım edin ?

Kod: Tümünü seç

procedure TForm35.Button3Click(Sender: TObject);
var
  v,sayfa:variant;{v excel prg, sayfa calisma sayfasi}
  say,i:integer;
begin
Edit1.Enabled:=True;
Button2.Enabled:=True;
Button5.Enabled:=True;
  query1.open;
  say:=query1.recordcount;//query kayit sayisi
  v:=createoleobject('excel.application');//exceli yarat
  v.workbooks.add;//yeni calisma kitabini ekle
  sayfa:=v.workbooks[1].worksheets[1];{Birinci calisma sayfasini sayfa degiskenine ata}
  query1.first;

   sayfa.cells[1,2]:='Toplantıyı Yapan Adı';
   sayfa.cells[1,3]:='Toplantıyı Yapan Soyadı';
   sayfa.cells[1,4]:='Müşteri Adı';
   sayfa.cells[1,5]:='Müşteri Soyadı';
   sayfa.cells[1,6]:='Ev Telefonu';
   sayfa.cells[1,7]:='İş Telefonu';
   sayfa.cells[1,8]:='Toplantı Saati';
   sayfa.cells[1,9]:='Ev Adresi';
   sayfa.cells[1,10]:='Satış Oldu';
   sayfa.cells[1,11]:='Satış Olmadı';
   sayfa.cells[1,12]:='İleride Satış';

  for i:=2 to say do
    begin
    sayfa.cells[i,2]:=query1STopYapAdi.text;
    sayfa.cells[i,3]:=query1STopYapSoy.text;
    sayfa.cells[i,4]:=query1sisAdi.text;
    sayfa.cells[i,5]:=query1SisSoy.text;
    sayfa.cells[i,6]:=query1SisEvTf.text;
    sayfa.cells[i,7]:=query1SiSisTf.text;
    sayfa.cells[i,8]:=query1SisTopSat.text;
    sayfa.cells[i,9]:=query1SisEvAd.text;
    sayfa.cells[i,10]:=query1SisSatOld.text;
    sayfa.cells[i,11]:=query1SisSatOlm.text;
    sayfa.cells[i,12]:=query1SileriSat.text;
    query1.next;
    end;
v.visible:=true;//Exceli acip verileri goster
end;
Kullanıcı avatarı
Kuri_YJ
Moderator
Mesajlar: 2248
Kayıt: 06 Ağu 2003 12:07
Konum: İstanbul
İletişim:

Mesaj gönderen Kuri_YJ »

Selamlar,

Forum kurallarını bir daha gözden geçirmenizi tavsiye ederim :) Bu şekilde soru sorarak yanıt alamamış olmanız doğal :)

Her neyse, okuyacağınızı umarak yanıtınızı veriyorum.

Kodunuzda hatalı satır

Kod: Tümünü seç

  for i:=2 to say do
bölümü orada siz (i) değerini 2'den başlatıp, toplam record sayısına kadar dönüyorsunuz. Bu gibi durumlarda while veya repeat döngülerini kullanın. Table'ı EOF kontroluna tabi tutun.

ama kodunuza sadece 2 karakter ekleyerek düzeltebilirsiniz.

Şöyle ki,

Kod: Tümünü seç

  for i:=2 to say+1 do

İşte bu kadar :)

Ama dediğim gibi bu döngüyü while not Tablo1.Eof gibi kursaydınız ve içeride (i) değerini kendiniz manuel arttırsaydınız bu hata ile karşılaşmazdınız.

Kolay Gelsin
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
ozcank
Üye
Mesajlar: 937
Kayıt: 28 Nis 2005 05:29

Mesaj gönderen ozcank »

peki böyle bir döngüsü nasıl kurarım ? yardım edebilirmisiniz?
Cevapla