Arkadaşlar tekrar Merhaba
Kullandığım Query ile ComboBox'u her seçtiğimde DBGrid farklı bir içeriği ekrana getiriyor.
Benim burda sormak istediğim.
Her seferinde (ComboBox'tan seçildikçe) DBGrid'teki sonucu RaveReport la yazdırmak için DBGrid çıktısına ayrı ayrı rapor mu dizayn etmem gerekiyor.
Yoksa içeriği Query ile değişen DBGrid'e tek rapor hazırlasam olabilirmi?
Kolay gelsin
DBGrid'in durumuna göre Rapor...
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Tabi ki en güzeli DBGrid'i parametre olarak alan bir fonksiyonun raporlama işini yapması olur.... Boylece bir defa uğraşıp gerektiğinde her zaman kullanabilirsiniz....
Benzer bir konuda benim de ihtiyacım olmuştu ve aynı işi QucikReport ile yapan bir fonksiyon yazmıştık.. Sanırım işinizi gorur...
Unutmadan bu kod Infopower'in wwDBGrid'i icin yazılmış bir kod. Fakat zannedersem donuştürmek zor olmaz. Hatta belki
yerine
yazmak bile yeterli olabilir...
Bundan bağımsız olarak bu işi yapan componentler filan da var aslında... Ama genelde ücretli. Free bulamayınca yazmıştık biz de.... Developer express'in dxGrid'inin printing system ile birlikte bu yetenegi var ayrıca.... Tabi o da ücretli...
Benzer bir konuda benim de ihtiyacım olmuştu ve aynı işi QucikReport ile yapan bir fonksiyon yazmıştık.. Sanırım işinizi gorur...

Kod: Tümünü seç
procedure Grid_Rapor(VAR_GRID:TwwDBGrid;VAR_BASLIK:string);
var
FRM_GRID_RAPOR:TForm;
QRP_MASTER:TQuickRep;
QRB_TITLE,QRB_DETAIL, QRB_SUMMARY,QRB_FOOTER:TQRBand;
VAR_SAYAC,VAR_SOL_HIZA:Smallint;
VAR_STRING, VAR_ALAN_ADI:string;
VAR_ALINGMENT:TAlignment;
begin
Application.CreateForm(TForm,FRM_GRID_RAPOR);
FRM_GRID_RAPOR.Width:=700;
FRM_GRID_RAPOR.Height:=800;
QRP_MASTER:=TQuickRep.Createnew(FRM_GRID_RAPOR);
QRP_MASTER.DataSet:=VAR_GRID.DataSource.DataSet;
QRB_TITLE:=QRP_MASTER.CreateBand(rbTitle);
QRB_DETAIL:=QRP_MASTER.CreateBand(rbDetail);
QRB_SUMMARY:=QRP_MASTER.CreateBand(rbSummary);
QRB_FOOTER:=QRP_MASTER.CreateBand(rbPageFooter);
QRB_TITLE.Height:=100;
QRB_DETAIL.Height:=22;
QRB_SUMMARY.Height:=50;
QRB_FOOTER.Height:=30;
VAR_SOL_HIZA:=10;
with TQRLabel.Create(QRB_TITLE) do
begin
Parent:=QRB_TITLE;
Top:=20;
Font.Name:='Times New Roman';
Font.Size:=16;
Font.Style:=[fsBold];
Height:=18;
Visible:=True;
Caption:=VAR_BASLIK;
Alignment:=taCenter;
Left:=Round((QRP_MASTER.Width-Width)/2);
end;
for VAR_SAYAC:=0 to VAR_GRID.Selected.Count-1 do
begin
VAR_ALAN_ADI:=Copy(VAR_GRID.Selected[VAR_SAYAC],1,Pos(#9,VAR_GRID.Selected[VAR_SAYAC])-1);
if VAR_GRID.DataSource.DataSet.FieldByName(VAR_ALAN_ADI).DataType in [ftSmallint, ftInteger, ftFloat,ftCurrency,ftLargeInt] then
VAR_ALINGMENT:=taRightJustify
else
VAR_ALINGMENT:=taLeftJustify;
with TQRLabel.Create(QRB_TITLE) do
begin
Parent:=QRB_TITLE;
Top:=75;
Font.Name:='Times New Roman';
Font.Size:=8;
Font.Style:=[fsBold];
AutoSize:=False;
Left:=VAR_SOL_HIZA;
Width:=Round(VAR_GRID.ColWidths[VAR_SAYAC+1]);
Height:=18;
Visible:=True;
Caption:=VAR_GRID.DataSource.DataSet.FieldByName(VAR_ALAN_ADI).DisplayLabel;
Alignment:=VAR_ALINGMENT;
end;
with TQRDBText.Create(QRB_DETAIL) do
begin
Parent:=QRB_DETAIL;
Top:=1;
Font.Name:='Times New Roman';
Font.Size:=8;
AutoSize:=False;
Left:=VAR_SOL_HIZA;
Width:=Round(VAR_GRID.ColWidths[VAR_SAYAC+1]);
Height:=18;
Visible:=True;
DataSet:=VAR_GRID.DataSource.DataSet;
DataField:=VAR_ALAN_ADI;
Alignment:=VAR_ALINGMENT;
end;
VAR_SOL_HIZA:=VAR_SOL_HIZA+5+Round(VAR_GRID.ColWidths[VAR_SAYAC+1]);
end;
QRP_MASTER.Preview;
end;
Kod: Tümünü seç
procedure Grid_Rapor(VAR_GRID:TwwDBGrid;VAR_BASLIK:string);
Kod: Tümünü seç
procedure Grid_Rapor(VAR_GRID:TDBGrid;VAR_BASLIK:string);
Bundan bağımsız olarak bu işi yapan componentler filan da var aslında... Ama genelde ücretli. Free bulamayınca yazmıştık biz de.... Developer express'in dxGrid'inin printing system ile birlikte bu yetenegi var ayrıca.... Tabi o da ücretli...
* http://www.fahrettin.org Manzara Fotoğraflarım... 
* http://delphiturkiye.gunduz.info Seminerler...
* http://www.hakmar.com.tr Kalite bir haktır...

* http://delphiturkiye.gunduz.info Seminerler...

* http://www.hakmar.com.tr Kalite bir haktır...
