Tahmin ediyorum ki bunun standart DBGrid i yaziciya gonderebileni daha çok derde deva olacaktir. Kodu uzun zamandir kullanmadigim icin bu konuda destek vermem zor ama ben buraya atayım dedim... Belki kendi işine de yarayacak ve vakti olan bir arkadaş da bunu DBGrid i print eder şekilde dönüştürerek umumun paylaşımına atar.
Kolay gelsin.....
Kullanımı basit yazdirmak istediginiz gridin adi ve bir de gorunmesini istediginiz bir baslik ile cagiriyorsunuz....
Kod: Tümünü seç
Grid_Rapor(TwwDBGrid1, 'Musteri Listesi');
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;