QReport ta otomatik bant numarası verme
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
QReport ta otomatik bant numarası verme
Merhaba
Qreportta tablodan aldığı verileri yani tüm kayıtları listeletiyorum. band üzerine qrsysdata bileşeninden koydum ve data sını detailno olarak ayarladım. gayet güzel sıra no ları veriyor fakat bilindiği üzere 0 dan başlıyor 0,1,2,3...
sıfırdan başlamasını istemiyorum ve forumda arama yaptım. onNeedData olayı incelenmesi isteniyor. çıkan sonuçlara baktım benim derdimde cevap yok fakat onNeedData kullanımı hakkında bir kaç bilgi var. onNeedData olayında bir şeyler yapmak istedim ama olmadı.
Bu işlemi yani qrsdetailno yu sıfırdan değilde 1 den başlatma olayını nasıl yapacağım hakkında yardımcı olursanız sevinirim.
Kolay gelsin
Qreportta tablodan aldığı verileri yani tüm kayıtları listeletiyorum. band üzerine qrsysdata bileşeninden koydum ve data sını detailno olarak ayarladım. gayet güzel sıra no ları veriyor fakat bilindiği üzere 0 dan başlıyor 0,1,2,3...
sıfırdan başlamasını istemiyorum ve forumda arama yaptım. onNeedData olayı incelenmesi isteniyor. çıkan sonuçlara baktım benim derdimde cevap yok fakat onNeedData kullanımı hakkında bir kaç bilgi var. onNeedData olayında bir şeyler yapmak istedim ama olmadı.
Bu işlemi yani qrsdetailno yu sıfırdan değilde 1 den başlatma olayını nasıl yapacağım hakkında yardımcı olursanız sevinirim.
Kolay gelsin
Şefkat-u Merhamette Güneş Gibi Ol.
Başkalarının Kusurunu Örtmekte Gece Gibi Ol.
Sehavet-u Cömertlikte Akarsu Gibi Ol.
Hiddet-u Asabiyette Ölü Gibi Ol.
Tevazu-u Mahviyette Toprak Gibi Ol.
Ya Olduğun Gibi Görün Ya Göründüğün Gibi Ol.

Başkalarının Kusurunu Örtmekte Gece Gibi Ol.
Sehavet-u Cömertlikte Akarsu Gibi Ol.
Hiddet-u Asabiyette Ölü Gibi Ol.
Tevazu-u Mahviyette Toprak Gibi Ol.
Ya Olduğun Gibi Görün Ya Göründüğün Gibi Ol.

s.a.
bende raporlarımda sysdata yı kullanıyorum sıra numarası olarak ve 1 den başlıyor.
sıfır projede bi tabloyu yazdırmayı denesene. belki yaptığın bir ayardan dolayı değişiyordur.
kolay gelsin.
bende raporlarımda sysdata yı kullanıyorum sıra numarası olarak ve 1 den başlıyor.
sıfır projede bi tabloyu yazdırmayı denesene. belki yaptığın bir ayardan dolayı değişiyordur.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Daha basit olarak şunu yapabilirsin.
- Rapor kısmında Global bir sayısal değişken tanımla. Sayac mesela
- QuickRepoert'un OnBeforPrint olayında bu değişkeni 1'e eşitle.
- O bahsi geçen Band'a normal QrLabel ekle.
- Bandın OnBeforePrint olayında QRLabelxx.Caption := IntToStr( Sayac ); ve ardında da Inc(Sayac);
- Hepsi bu...
- Rapor kısmında Global bir sayısal değişken tanımla. Sayac mesela
- QuickRepoert'un OnBeforPrint olayında bu değişkeni 1'e eşitle.
- O bahsi geçen Band'a normal QrLabel ekle.
- Bandın OnBeforePrint olayında QRLabelxx.Caption := IntToStr( Sayac ); ve ardında da Inc(Sayac);
- Hepsi bu...

Merhaba,
@aslan ustam qreport ta ne zaman böyle bir şey yapsam sıfırdan başladı. fast report ta ise line özelliği ile birden başlıyor. qr nin demosuna baktığımda line(0) ile sıfırdan başlamış.
raporlamayı sorgu şeklinde almıyorum. tablonun tamamı. topu topu 50-60 kayıt. yani isim listesi. sıfırdan başlaması kullanıcıyı ilk etapta listede toplam sayı açısından garipsemesine veya yanılmasına sebep olacak.
@muharrem ustam verdiğiniz tavsiyeyi yapmaya çalışacağım. şimdiye kadar global değişken verme, uygulama gibi bir çalışmam olmadığından niye yalan söyleyeyim tirene bakar gibi bakıyorum şuan.
tablodaki verinin recno sunu verme olayı olabilir mi? acaba.
Saygı ile teşekkürler kolay gelsin
@aslan ustam qreport ta ne zaman böyle bir şey yapsam sıfırdan başladı. fast report ta ise line özelliği ile birden başlıyor. qr nin demosuna baktığımda line(0) ile sıfırdan başlamış.
raporlamayı sorgu şeklinde almıyorum. tablonun tamamı. topu topu 50-60 kayıt. yani isim listesi. sıfırdan başlaması kullanıcıyı ilk etapta listede toplam sayı açısından garipsemesine veya yanılmasına sebep olacak.
@muharrem ustam verdiğiniz tavsiyeyi yapmaya çalışacağım. şimdiye kadar global değişken verme, uygulama gibi bir çalışmam olmadığından niye yalan söyleyeyim tirene bakar gibi bakıyorum şuan.
tablodaki verinin recno sunu verme olayı olabilir mi? acaba.
Saygı ile teşekkürler kolay gelsin
Şefkat-u Merhamette Güneş Gibi Ol.
Başkalarının Kusurunu Örtmekte Gece Gibi Ol.
Sehavet-u Cömertlikte Akarsu Gibi Ol.
Hiddet-u Asabiyette Ölü Gibi Ol.
Tevazu-u Mahviyette Toprak Gibi Ol.
Ya Olduğun Gibi Görün Ya Göründüğün Gibi Ol.

Başkalarının Kusurunu Örtmekte Gece Gibi Ol.
Sehavet-u Cömertlikte Akarsu Gibi Ol.
Hiddet-u Asabiyette Ölü Gibi Ol.
Tevazu-u Mahviyette Toprak Gibi Ol.
Ya Olduğun Gibi Görün Ya Göründüğün Gibi Ol.

Global Değişken tabiri gözünü korkutmasın, adı global, kendisi bildiğimiz Var demişken..
- Delphi'de fiziksel konum itibariyle iki tür değişken vardır.
- Local Değişkenler - Global Değişkenler
- Şu an kullandığın türden değişkenlere Local Değişken diyoruz. Nedenini biliyorsun, bir procedure altında tanımladığın değişken sadece o procedure altında geçerlidir.
- Bizi ilgilendiren kısmı açısından; içinde bulunduğu procedure her çalıştığında ilk değerine döner. Yani burada bandın onBeforePrint olayı da bir procedure olduğundan bu değişkeni Local olarak burada tanımlarsak her çalışmasında sayacımız ilk değere döneceğinden sayaç özelliği olmayacaktır.
- Global değişken dediğimiz tür ise procedure'lerin dışında bir yerde tanımlanmış değişkendir. Önemli özelliği; Global değişkenin tanımlandığı satırı baz alırsak, daha aşağıdaki satırlarda bulunan tüm procedure / fonksiyonlarda tanınır ve aldığı değer, diğer bir procedure'de de okunabilir.
- Bizi ilgilendiren kısıma dönersek; bu değişkeni tanımlayacağın yer şudur. Yerini tam algılayabilmen için üstünü ve altını da yazıyorum.
- Burada tanımladığın xSayac değişkeni artık tüm procedure ve onksiyonlarda tanınır ve işleme alınabilir.
- QuickReport'un OnBeforePrint olayında yapacağın işlem
- QRBand'ın OnBeforePrint olayında yapacağın işlem ise

- Delphi'de fiziksel konum itibariyle iki tür değişken vardır.
- Local Değişkenler - Global Değişkenler
- Şu an kullandığın türden değişkenlere Local Değişken diyoruz. Nedenini biliyorsun, bir procedure altında tanımladığın değişken sadece o procedure altında geçerlidir.
- Bizi ilgilendiren kısmı açısından; içinde bulunduğu procedure her çalıştığında ilk değerine döner. Yani burada bandın onBeforePrint olayı da bir procedure olduğundan bu değişkeni Local olarak burada tanımlarsak her çalışmasında sayacımız ilk değere döneceğinden sayaç özelliği olmayacaktır.
- Global değişken dediğimiz tür ise procedure'lerin dışında bir yerde tanımlanmış değişkendir. Önemli özelliği; Global değişkenin tanımlandığı satırı baz alırsak, daha aşağıdaki satırlarda bulunan tüm procedure / fonksiyonlarda tanınır ve aldığı değer, diğer bir procedure'de de okunabilir.
- Bizi ilgilendiren kısıma dönersek; bu değişkeni tanımlayacağın yer şudur. Yerini tam algılayabilmen için üstünü ve altını da yazıyorum.
Kod: Tümünü seç
var
Form1 : TForm1;
xSayac : Integer;
implementation
- QuickReport'un OnBeforePrint olayında yapacağın işlem
Kod: Tümünü seç
xSayac := 0;
Kod: Tümünü seç
QRLabel999.Caption := IntToStr( xSayac );
Merhaba,
@muharrem ustam teşekkür ve saygı ile. Ellerinden öperim. Öğretmenlerin elinden öpülür.
İnsan bir şey daha öğrenince ne kadar mutlu oluyor muhakkak bilirsiniz. Elinize dilinize sağlık. Hemen uygulamaya geçip pekiştireceğim.
Tekrar teşekkür ve saygı ile kolay gelsin.
@muharrem ustam teşekkür ve saygı ile. Ellerinden öperim. Öğretmenlerin elinden öpülür.
İnsan bir şey daha öğrenince ne kadar mutlu oluyor muhakkak bilirsiniz. Elinize dilinize sağlık. Hemen uygulamaya geçip pekiştireceğim.
Tekrar teşekkür ve saygı ile kolay gelsin.
Şefkat-u Merhamette Güneş Gibi Ol.
Başkalarının Kusurunu Örtmekte Gece Gibi Ol.
Sehavet-u Cömertlikte Akarsu Gibi Ol.
Hiddet-u Asabiyette Ölü Gibi Ol.
Tevazu-u Mahviyette Toprak Gibi Ol.
Ya Olduğun Gibi Görün Ya Göründüğün Gibi Ol.

Başkalarının Kusurunu Örtmekte Gece Gibi Ol.
Sehavet-u Cömertlikte Akarsu Gibi Ol.
Hiddet-u Asabiyette Ölü Gibi Ol.
Tevazu-u Mahviyette Toprak Gibi Ol.
Ya Olduğun Gibi Görün Ya Göründüğün Gibi Ol.

Kod: Tümünü seç
unit PrsListeQR;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, QuickRpt, QRCtrls, ExtCtrls;
type
TQRPrsListe = class(TForm)
QuickRep1: TQuickRep;
QRBand1: TQRBand;
QRLabel1: TQRLabel;
QRBand2: TQRBand;
QRShape1: TQRShape;
QRShape2: TQRShape;
QRShape3: TQRShape;
QRShape4: TQRShape;
QRShape5: TQRShape;
QRShape6: TQRShape;
QRShape7: TQRShape;
QRShape8: TQRShape;
QRShape9: TQRShape;
QRShape10: TQRShape;
QRDBText1: TQRDBText;
QRDBText2: TQRDBText;
QRDBText3: TQRDBText;
QRDBText4: TQRDBText;
QRLabel2: TQRLabel;
QRLabel3: TQRLabel;
QRLabel4: TQRLabel;
QRLabel5: TQRLabel;
QRLabel6: TQRLabel;
QRLabel7: TQRLabel;
procedure QuickRep1BeforePrint(Sender: TCustomQuickRep;
var PrintReport: Boolean);
procedure QRBand2BeforePrint(Sender: TQRCustomBand;
var PrintBand: Boolean);
private
{ Private declarations }
public
{ Public declarations }
end;
var
QRPrsListe: TQRPrsListe;
xsayac:integer;
implementation
uses modul1;
{$R *.dfm}
procedure TQRPrsListe.QuickRep1BeforePrint(Sender: TCustomQuickRep;
var PrintReport: Boolean);
begin
xsayac:=0;
end;
procedure TQRPrsListe.QRBand2BeforePrint(Sender: TQRCustomBand;
var PrintBand: Boolean);
begin
qrlabel7.Caption:=inttostr(xsayac+1);
inc(xsayac);
end;
end.
@muharrem ustam iki ayrı mesajınızı birleştirerek yukarıda uniti verdiğim gibi uyguladım ve sonuca ulaştım. İlk etapta +1 vermeden 0 değerinden başladı haliyle tabi. bir arttırmak aklıma geldi ve ilk mesajınızdaki inc(sayac) ipucunuda ekleyince sonuç istenildiği gibi oldu.
Teşekkür ve saygı ile kolay gelsin.
Şefkat-u Merhamette Güneş Gibi Ol.
Başkalarının Kusurunu Örtmekte Gece Gibi Ol.
Sehavet-u Cömertlikte Akarsu Gibi Ol.
Hiddet-u Asabiyette Ölü Gibi Ol.
Tevazu-u Mahviyette Toprak Gibi Ol.
Ya Olduğun Gibi Görün Ya Göründüğün Gibi Ol.

Başkalarının Kusurunu Örtmekte Gece Gibi Ol.
Sehavet-u Cömertlikte Akarsu Gibi Ol.
Hiddet-u Asabiyette Ölü Gibi Ol.
Tevazu-u Mahviyette Toprak Gibi Ol.
Ya Olduğun Gibi Görün Ya Göründüğün Gibi Ol.

- O kadar lafın arasında sayacı arttırmayı unutmuşuz..
- Sayacı QRLabel'a aktardığın yerin hemen altına INC(xSayac); eklemeyi ihmal etmeyesin...
- Örnek :
- // EK //
- Zaten çözmüşsün olayı... Tebrikler...
- Bir soru gelebilir, daha önce başka başlıklarda açıklamıştım ama konu gereği burada da yazayım tavsiye de ederim...
Soru : Neden xSayac ? Başındaki x ne anlama geliyor...
- Global değişkenler ile Local olanları ayırt etmek için kendimce uyguladığım bir metod. Global değişkenler diğer tüm bağlı unitlerde de geçerli olabildiğinden. Değişkenin başında x görürsem bakacağım yerler belli olsun isterim.



- Sayacı QRLabel'a aktardığın yerin hemen altına INC(xSayac); eklemeyi ihmal etmeyesin...
- Örnek :
Kod: Tümünü seç
QRLabel999.Caption := IntToStr( xSayac );
Inc(xSayac);
- // EK //
- Zaten çözmüşsün olayı... Tebrikler...

- Bir soru gelebilir, daha önce başka başlıklarda açıklamıştım ama konu gereği burada da yazayım tavsiye de ederim...
Soru : Neden xSayac ? Başındaki x ne anlama geliyor...

- Global değişkenler ile Local olanları ayırt etmek için kendimce uyguladığım bir metod. Global değişkenler diğer tüm bağlı unitlerde de geçerli olabildiğinden. Değişkenin başında x görürsem bakacağım yerler belli olsun isterim.

Merhaba,
ustam fazla oluyorum ama öğrenmişken kafada soru kalmasın bu inc ne anlama geliyor. bir şeyin kısaltması ama ney. Yarım bilgi kalmasın ezbere olmasın diye.
kolay gelsin
ustam fazla oluyorum ama öğrenmişken kafada soru kalmasın bu inc ne anlama geliyor. bir şeyin kısaltması ama ney. Yarım bilgi kalmasın ezbere olmasın diye.
kolay gelsin
Şefkat-u Merhamette Güneş Gibi Ol.
Başkalarının Kusurunu Örtmekte Gece Gibi Ol.
Sehavet-u Cömertlikte Akarsu Gibi Ol.
Hiddet-u Asabiyette Ölü Gibi Ol.
Tevazu-u Mahviyette Toprak Gibi Ol.
Ya Olduğun Gibi Görün Ya Göründüğün Gibi Ol.

Başkalarının Kusurunu Örtmekte Gece Gibi Ol.
Sehavet-u Cömertlikte Akarsu Gibi Ol.
Hiddet-u Asabiyette Ölü Gibi Ol.
Tevazu-u Mahviyette Toprak Gibi Ol.
Ya Olduğun Gibi Görün Ya Göründüğün Gibi Ol.

inc( n ) - ingilizce increment yani arttırmak'ın kısaltması. dilersen inc( n, 1 ) şeklinde yanında kaç arttıracağını da verip kullanabilirsin.
dec( n ) - ingilizce decrease yani azaltmak'ın kısaltması. Aynı şekilde dec( n, 1 ) şeklinde yanında kaç azaltılacağını da verip kullanabilirsin.
- Yanındaki rakamlar verilmezse tahmin edeceğin üzere varsayılan olarak 1 kabul ediliyor.
dec( n ) - ingilizce decrease yani azaltmak'ın kısaltması. Aynı şekilde dec( n, 1 ) şeklinde yanında kaç azaltılacağını da verip kullanabilirsin.
- Yanındaki rakamlar verilmezse tahmin edeceğin üzere varsayılan olarak 1 kabul ediliyor.