我用DBGrid显示的是ACCESS数据库中的一个表,请问怎么编写打印的代码啊?就要最基本的那种, 能把代码写出来吗?谢谢!
解决方案 »
- 谁能救救我:Tedit 的onkeypress事件没有响应
- 关于变量的问题
- 急!急!急!怎样用opengl或glscene画人的头部的3D图(送分了)?
- dbgrid显示记录
- 请问一关于文件操作的简单问题
- 如何改变form的captoin的字体类型和颜色
- 如何修改我用query查询出的记录的某些字段的内容,然后保存到数据库中
- 如何用代码 在 controlbar里面新建其他控件?如Tlabel,TEdit...
- 如何让query的指针指向某一条记录
- 如何取到并修改文件夹的时间?
- 请问~~当Edit 窗体 edit . Enabled = false 时,怎幺改变Edit . text 里的字体显示
- 请教 scrollbox的用途?
QuickRep1.Print; //直接打印
procedure TForm1.Preview(Grid: TDBGrid);
var
i, CurrentLeft, CurrentTop : integer;
BMark: TBook;//use DB;
begin
QuickRep1.Dataset:=Grid.DataSource.DataSet;
if not QuickRep.Bands.HasColumnHeader then
QuickRep.Bands.HasColumnHeader:=true;
if not QuickRep.Bands.HasDetail then
QuickRep.Bands.HasDetail:=true;
QuickRep.Bands.ColumnHeaderBand.Height:=Abs(Grid.TitleFont.Height) + 10;
QuickRep.Bands.DetailBand.Height:=Abs(Grid.Font.Height) + 10;
CurrentLeft := 12;
CurrentTop := 6; //{Record where the user stopped in the DBGrid}
BMark:=Grid.DataSource.DataSet.GetBook;
{Don't let the grid flicker while the report is running}
Grid.DataSource.DataSet.DisableControls;
try
for i:=0 to Grid.FieldCount - 1 do
begin
if (CurrentLeft+Canvas.TextWidth(Grid.Columns[i].Title.Caption))
>(QuickRep.Bands.ColumnHeaderBand.Width) then
begin
CurrentLeft := 12;
CurrentTop := CurrentTop + Canvas.TextHeight('A') + 6;
QuickRep.Bands.ColumnHeaderBand.Height :=
QuickRep.Bands.ColumnHeaderBand.Height +
(Canvas.TextHeight('A') + 10);
QuickRep.Bands.DetailBand.Height :=
QuickRep.Bands.DetailBand.Height +
(Canvas.TextHeight('A') + 10);
end;
{Create Header with QRLabels}
with TQRLabel.Create(QuickRep.Bands.ColumnHeaderBand) do
begin
Parent := QuickRep.Bands.ColumnHeaderBand;
Color := QuickRep.Bands.ColumnHeaderBand.Color;
Left := CurrentLeft;
Top := CurrentTop-15;//
Caption:=Grid.Columns[i].Title.Caption;
end;
{Create Detail with QRDBText}
with TQRDbText.Create(QuickRep.Bands.DetailBand) do
begin
Parent := QuickRep.Bands.DetailBand;
Color := QuickRep.Bands.DetailBand.Color;
Left := CurrentLeft;
Top := CurrentTop;
Alignment:=Grid.Columns[i].Alignment;
AutoSize:=false;
AutoStretch:=true;
Width:=Grid.Columns[i].Width+15; //
Dataset:=QuickRep.Dataset;
DataField:=Grid.Fields[i].FieldName;
CurrentLeft:=CurrentLeft + (Grid.Columns[i].Width) + 15;
end;
end; // lblPage.Left := bdTitle.Width - lblPage.Width - 10;
// lblDate.Left := bdTitle.Width - lblDate.Width - 10; {After all, call the QuickRep preview method}
QuickRep.PreviewModal; {or Preview if you prefer} finally
with Grid.DataSource.DataSet do
begin
GotoBook(BMark);
FreeBook(BMark);
EnableControls;
end;
end;
end;
dbgrid的数据集就可以了,