Fastreport - Etiketin Sırasını belirleyebilme

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
TRSoft
Kıdemli Üye
Mesajlar: 636
Kayıt: 13 Şub 2004 11:39
Konum: Konya
İletişim:

Fastreport - Etiketin Sırasını belirleyebilme

Mesaj gönderen TRSoft »

S.A.

Program : Etiket Basma Programı
Veritabanı : Firebird
Raporlama Aracı : Fastreport

Arkadaşlar etiket dizaynını runtimede kullanıcının belirlediği seçeneklere göre bir veritabanına kaydediyor ve raporlama esnasında create ediyorum. Yani etiketin sayısı, boyu , sayfa bilgileri önceden belli değil..

Şimdi sorun şu; diyelim ki bir sayfada 14 etiket var ve daha önceden bunun 5 tanesi yazıdırılmış. Kullanıcı 6. etiketten yazdırmaya başlaması lazım bunun seçimini etiket sayfasının küçük bir örneğini ekranda gösterip seçtiriyorum. Eğer yazıdırılacak etiket (kayıt) sayısı 1 den fazlaysa sorun yok ancak 1 kayıt yazıdırılacaksa aşağıda yazdığım script iş görmüyor.
Ekleme yapabilecek veya başka önerileri olan arkadaşlar varsa sevinirim..

Aynı sorun fastreportun kendi forumunda sorulmuş ve aşağıdaki script önerilmiş (biraz farklı idi orada kopya sayısı felanda vardı bu şekilde sadeleştirdim). Ancak oradada 1 kayıtta problem olduğu anlatılmış ve çözüm bulunamamış.. (Yada çözülmüş ama ingilizcem ve google translate göre çözüm bulunmamış :) )

http://www.fast-report.com/en/forum/ind ... 7&hl=label

Kod: Tümünü seç

var
       nbtoskip, skipcount: Integer;
       skip: Boolean;
       ds: TfrxDataSet;

procedure MasterData1OnAfterPrint(Sender: TfrxComponent);
var
       i: Integer;
       obj: TObject;
begin
       if skip then
       begin
               ds.first;
               Inc(skipcount);
               if skipcount = nbtoskip then
               begin
                       for i := 0 to Sender.Objects.Count - 1 do
                       begin
                               obj := Sender.Objects[i];
                               if obj is TfrxMemoView then
                               Begin
                                       TfrxMemoView(obj).Visible := True;
                               end;

                       end;
                       skip := False;
               end;
       end;
end;

procedure MasterData1OnBeforePrint(Sender: TfrxComponent);
var
       i: Integer;
       obj: TObject;
begin
       if skip then
       begin
               for i := 0 to Sender.Objects.Count - 1 do
               begin
                       obj := Sender.Objects[i];
                       if obj is TfrxMemoView then
                               TfrxMemoView(obj).Visible := False;
               end;
               ds.First;
       end
       else
       begin
               if (<Line#>-1 = skipcount) then
               begin
                       ds.First;
               end;
       end;
end;

procedure frxReport1OnStartReport(Sender: TfrxComponent);
begin
       nbtoskip := <BOS>;
       if nbtoskip > 0 then skip := True;
       ds := Report.GetDataset('EtiketKart');
       ds.first;
end;

begin
       nbtoskip := 0;
       skip := False;
       skipcount := 0;
end.
İlimle geçen bir gece,
ibadetle geçen bin geceden hayırlıdır.
HZ. MUHAMMED (S.A.)
recepuncu
Üye
Mesajlar: 66
Kayıt: 04 Nis 2006 08:22
Konum: Çorum

Re: Fastreport - Etiketin Sırasını belirleyebilme

Mesaj gönderen recepuncu »

slm, kayıtları raporlama esnasında create ediyorum demişsin tabloya birde "yazdirildimi" diye bir sütun açmayı denesen acaba işini görürmü?
"Şu deredeki su,kaç kere değişti,yıldızların akisleri hep yerinde."
Kullanıcı avatarı
TRSoft
Kıdemli Üye
Mesajlar: 636
Kayıt: 13 Şub 2004 11:39
Konum: Konya
İletişim:

Re: Fastreport - Etiketin Sırasını belirleyebilme

Mesaj gönderen TRSoft »

Sorun tablodaki kaydın yazdırılıp yazdırılmamasıyla ilgili değil.. Sorun yerleşim sorunu...
İlimle geçen bir gece,
ibadetle geçen bin geceden hayırlıdır.
HZ. MUHAMMED (S.A.)
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Re: Fastreport - Etiketin Sırasını belirleyebilme

Mesaj gönderen aslangeri »

s.a.

sayfadaki etiketlerin önceden kaçtanesi yazdırılmışsa tablodan çektiğin kayıtlara o kadar boş kayıt ekle.
sanki etiket yazıyormuşsun gibi boş kayıtları yazdır.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
TRSoft
Kıdemli Üye
Mesajlar: 636
Kayıt: 13 Şub 2004 11:39
Konum: Konya
İletişim:

Re: Fastreport - Etiketin Sırasını belirleyebilme

Mesaj gönderen TRSoft »

Onuda düşündüm ama etiketen tablodaki alanlar hariçinde özel metinler (mesela SAYIN: gibi) eklenebiliyor. BÖyle bir durumda o boş kayıtlarda özel metinlerle başa çıkamıyorum...
İlimle geçen bir gece,
ibadetle geçen bin geceden hayırlıdır.
HZ. MUHAMMED (S.A.)
Cevapla