各位高手:
我用frprintgrid做了打印的模块,添加了两个窗体,一个用来选择要打印的字段,另一个用来调整列宽,因为要打印的dbgrid较多,怎样才能在打印时调用这两个模块,设置要打印的dbgrid,有人告诉我用说用什么函数调用,我是一头雾水,不知道如何下手,眼看快到期限了,怎么办,各位高手指点一下吧,多谢了!!
我用frprintgrid做了打印的模块,添加了两个窗体,一个用来选择要打印的字段,另一个用来调整列宽,因为要打印的dbgrid较多,怎样才能在打印时调用这两个模块,设置要打印的dbgrid,有人告诉我用说用什么函数调用,我是一头雾水,不知道如何下手,眼看快到期限了,怎么办,各位高手指点一下吧,多谢了!!
解决方案 »
- 谁能提供一个MO可用的简单点的电子地图
- 请教一下 关于 做类似 输入法窗体的问题?
- 好迷惑---动态连接库调用后,显示'Invalid Pointer operation',请问怎么回事呀????????????????
- 如何用delphi调用windows的net send 阿?
- 类型转换函数汇总
- 请教如何利用SQL语句将一条记录从一个FOX数据库中追加到另一个一模一样的数据库中。
- 如何在combobox里选择表里的列名?
- (在线等)想认识有用delphi7编写webservice服务和客户端程序的朋友,有问题要请教!谢谢
- 关于2个快捷键同时出发一个过程
- delphi6的TNmsmtp组件照样有553Authentication Required。。。
- 请问一下,个人版有没有提供数据库组件的
- DATAMODEL是干啥的?很菜的问题
[email protected]
with adoquery1 do
begin
.......
end;
DataSource1.dataset:=adoquery
在打印模块form1中的dbgrid1 使 form1.dbgrid1.DataSource:=DataSource1;
就是动态的设置dbgrid的DataSource!(不知道符不符合你的要求)!
begin
DBGrid1:=aGrid;//DBGrid1是本窗体的表格 aGrid是动态要设置的表格
end;2。其他模块要打印某个表格 如dbgGr时,这样做
Form1.SetGrid(dbgGr);就行了~
---------------------------
Debugger Exception Notification
---------------------------
Project Project1.exe raised exception class EAccessViolation with message 'Access violation at address 0056F425 in module 'Project1.exe'. Read of address 000002F8'. Process stopped. Use Step or Run to continue.
---------------------------
OK Help
---------------------------
unit Unit_print_change;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids, DBGrids, FR_PTabl;type
TForm_print_change = class(TForm)
DBGrid1: TDBGrid;
Button1: TButton;
Button2: TButton;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
frPrintGrid1: TfrPrintGrid;
procedure FormShow(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
//procedure Button3Click(Sender: TObject);
//procedure Button4Click(Sender: TObject);
private
{ Private declarations }
public
procedure setgrid(aGrid: TDBGrid);
{ Public declarations }
end;var
Form_print_change: TForm_print_change;implementation//需要声明的有dbgrid所在的单元文件
//uses中的内容需要根据情况进行修改
uses
unit_client, Unit_print_sel;
{$R *.dfm}procedure tform_print_change.setgrid(aGrid: TDBGrid);
begin
DBGrid1:=aGrid;
end;procedure TForm_print_change.FormShow(Sender: TObject);
var
i:integer;
begin
form_print_change.Label3.Caption:=form_print_sel.Edit1.Text; //报表题目
form_print_change.Label4.Caption:=form_print_sel.Edit2.Text; //打印时间
form_print_change.DBGrid1.DataSource:=form_client.DBGrid1.DataSource;
for i:=0 to form_client.DBGrid1.Columns.Count-1 do
begin
if form_print_sel.CheckListBox1.Checked[i]=true then ////需要修改////
form_print_change.dbgrid1.Columns[i].Visible:=true;
form_print_change.DBGrid1.Columns[i].Title.Alignment:=tacenter;
form_print_change.DBGrid1.Columns[i].Title.Font.Size:=10;
end;
end;procedure TForm_print_change.Button1Click(Sender: TObject);
begin with form_print_change.frPrintGrid1 do
begin
Title.Text:=form_print_sel.Edit1.Text; //设置标题
PageHeader.Text:= form_print_sel.edit2.Text; //设置打印时间
DBGrid:=form_print_change.dbgrid1; //设置要打印的dbgrid
PageFooter.Text := '[PAGE#]'; //设置页码
autowidth:=false;
BuildReport;
ShowReport;
end;
end;procedure TForm_print_change.Button2Click(Sender: TObject);
var
i:integer;
begin
for i:=0 to form_print_sel.CheckListBox1.Items.Count-1 do
begin
form_print_change.DBGrid1.Columns[i].Visible:=false
end;
form_print_change.Close;
end;end.
unit Unit_print_change;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids, DBGrids, FR_PTabl;type
TForm_print_change = class(TForm)
DBGrid1: TDBGrid;
Button1: TButton;
Button2: TButton;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
frPrintGrid1: TfrPrintGrid;
procedure FormShow(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
//procedure Button3Click(Sender: TObject);
//procedure Button4Click(Sender: TObject);
private
{ Private declarations }
public
procedure setgrid(aGrid: TDBGrid);
{ Public declarations }
end;var
Form_print_change: TForm_print_change;implementation//需要声明的有dbgrid所在的单元文件
//uses中的内容需要根据情况进行修改
uses
unit_client, Unit_print_sel;
{$R *.dfm}procedure tform_print_change.setgrid(aGrid: TDBGrid);
begin
DBGrid1:=aGrid;
end;procedure TForm_print_change.FormShow(Sender: TObject);
var
i:integer;
begin
form_print_change.Label3.Caption:=form_print_sel.Edit1.Text; //报表题目
form_print_change.Label4.Caption:=form_print_sel.Edit2.Text; //打印时间
form_print_change.DBGrid1.DataSource:=form_client.DBGrid1.DataSource;
for i:=0 to form_client.DBGrid1.Columns.Count-1 do
begin
if form_print_sel.CheckListBox1.Checked[i]=true then ////需要修改////
form_print_change.dbgrid1.Columns[i].Visible:=true;
form_print_change.DBGrid1.Columns[i].Title.Alignment:=tacenter;
form_print_change.DBGrid1.Columns[i].Title.Font.Size:=10;
end;
end;procedure TForm_print_change.Button1Click(Sender: TObject);
begin with form_print_change.frPrintGrid1 do
begin
Title.Text:=form_print_sel.Edit1.Text; //设置标题
PageHeader.Text:= form_print_sel.edit2.Text; //设置打印时间
DBGrid:=form_print_change.dbgrid1; //设置要打印的dbgrid
PageFooter.Text := '[PAGE#]'; //设置页码
autowidth:=false;
BuildReport;
ShowReport;
end;
end;procedure TForm_print_change.Button2Click(Sender: TObject);
var
i:integer;
begin
for i:=0 to form_print_sel.CheckListBox1.Items.Count-1 do
begin
form_print_change.DBGrid1.Columns[i].Visible:=false
end;
form_print_change.Close;
end;end.