如何用Form2将Form1的DBGird中的数据打印出来? 1.打印的时候是用什么组件实现的?(是不是用QuickRep?)2.能不能对表中的字段进行有选择的打印?3.为什么我用QuickRep1.DataSet:=Form1.DBGrid.DataSource.Dataset;无法联接到Form1中DBGrid的数据? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 1.QuickRep;2.QRDBText;3.未在implementation下写uses unit1; 有啊,已经写了,Uses Unit1,但是在QuickRep预览时,没有数据显示出来?这为什么? unit1 中的数据集空间open了吗? 回JInyk(小小的猪)已经Open了。回yzykjh(多米诺骨牌),你说的QRDBText是什么?我没有这项,还请指教! QRDBText组件,在QReport工具栏中,与QuickRep是同一工具栏。 回yzykjh(多米诺骨牌),以下是我的代码段,能帮我看看错在哪里吗?unit Unit2;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, QuickRpt, StdCtrls, DB, ADODB;type TForm2 = class(TForm) QuickRep1: TQuickRep; Button1: TButton; Button2: TButton; Button3: TButton; DetailBand1: TQRBand; PageHeaderBand1: TQRBand; TitleBand1: TQRBand; procedure Button3Click(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end;var Form2: TForm2;implementationuses unit1; //这里已经Uses Unit1了,但还是不行{$R *.dfm}procedure TForm2.Button1Click(Sender: TObject);begin Form1.ADOQuery1.Close; QuickRep1.DtaSet:=Form1.DBGrid1.DataSoaurce.DataSet;//这样写正确吗? QuickRep1.Preview; Form1.ADOQuery1.Open;//是否在这里将Form1中的ADOQuery打开 end; procedure TForm2.Button1Click(Sender: TObject);begin Form1.ADOQuery1.Open; QuickRep1.DtaSet:=adoquery1; QuickRep1.Preview;end; 回yzykjh(多米诺骨牌) ,还是不能预览你刚才说的QRDBText组件怎么用来着?是不是我没有添加这个组件的原因? QRDBText.dataset:=form1.adoquery1;qrdbtext.datafield:='字段名'; 回wzpbobsir(傻蛋)我已经uses unit1了,这样应该是包含Form1的单元文件了吧?回yzykjh(多米诺骨牌) 我是要取Form1中DBGrid的数据啊,如果像你那样我得一个一个的字段名给他啊? 你可以动态创建QRDBText呀!var arrQRDBText: array of TQRDBText; arrQRDBText[i]:=TQRDBText.Create(nil); arrQRDBText[i].Parent:=DetailBand1; arrQRDBText[i].Visible:=True; arrQRDBText[i].AutoSize:=False; arrQRDBText[i].Height:=...; arrQRDBText[i].Top:=...; arrQRDBText[i].Left:=...; arrQRDBText[i].Width:=...; arrQRDBText[i].Font.Name:='宋体'; arrQRDBText[i].Font.Size:=9; arrQRDBText[i].Font.Charset:=GB2312_CHARSET; arrQRDBText[i].DataSet:=form1.adoquery1; arrQRDBText[i].Mask:='#.##'; arrQRDBText[i].DataField:=form1.adoquery1.Fields[i].FieldName; 这下我更晕了,我是在Form1中已经用DBGrid取出表的数据了,我现在是要把DBGrid中的这些数据打印出来即可! word转换成pdf问题 图像匹配问题! 强烈关注!!! 高分征集:回调函数的参数问题。 在播放器中改变音量 请那位哥子帮解释一下这两句,不好意思(别人会的我也想弄懂,但是又太笨) 请问如何在同一个项目中实现两个MDI窗口? 请各位帮我看看这段代码有什么问题 font.size=14,中14指的是象素吗???怎么得到这个字的宽度呢? 为什么我的ClientDataSet进行applyUpdates(-1)时,并没有把数据存于库中,下一次取回就没有了? mac鉴别算法,我问了好几次了,难道没人愿意帮我? 两个关于类的问题 简单的sql 删除问题!看看我的代码错在哪(急,在线等!!求帮忙~~~)
2.QRDBText;
3.未在implementation下写uses unit1;
回yzykjh(多米诺骨牌),你说的QRDBText是什么?我没有这项,还请指教!
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, QuickRpt, StdCtrls, DB, ADODB;type
TForm2 = class(TForm)
QuickRep1: TQuickRep;
Button1: TButton;
Button2: TButton;
Button3: TButton;
DetailBand1: TQRBand;
PageHeaderBand1: TQRBand;
TitleBand1: TQRBand;
procedure Button3Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form2: TForm2;implementationuses unit1; //这里已经Uses Unit1了,但还是不行{$R *.dfm}procedure TForm2.Button1Click(Sender: TObject);
begin
Form1.ADOQuery1.Close;
QuickRep1.DtaSet:=Form1.DBGrid1.DataSoaurce.DataSet;//这样写正确吗?
QuickRep1.Preview;
Form1.ADOQuery1.Open;//是否在这里将Form1中的ADOQuery打开
end;
begin
Form1.ADOQuery1.Open;
QuickRep1.DtaSet:=adoquery1;
QuickRep1.Preview;
end;
qrdbtext.datafield:='字段名';
我已经uses unit1了,这样应该是包含Form1的单元文件了吧?
回yzykjh(多米诺骨牌)
我是要取Form1中DBGrid的数据啊,如果像你那样我得一个一个的字段名给他啊?
var arrQRDBText: array of TQRDBText; arrQRDBText[i]:=TQRDBText.Create(nil);
arrQRDBText[i].Parent:=DetailBand1;
arrQRDBText[i].Visible:=True;
arrQRDBText[i].AutoSize:=False;
arrQRDBText[i].Height:=...;
arrQRDBText[i].Top:=...;
arrQRDBText[i].Left:=...;
arrQRDBText[i].Width:=...;
arrQRDBText[i].Font.Name:='宋体';
arrQRDBText[i].Font.Size:=9;
arrQRDBText[i].Font.Charset:=GB2312_CHARSET;
arrQRDBText[i].DataSet:=form1.adoquery1;
arrQRDBText[i].Mask:='#.##';
arrQRDBText[i].DataField:=form1.adoquery1.Fields[i].FieldName;