如何用Form2将Form1的DBGird中的数据打印出来?

sunnyasp 2003-04-22 02:23:50
1.打印的时候是用什么组件实现的?(是不是用QuickRep?)
2.能不能对表中的字段进行有选择的打印?
3.为什么我用QuickRep1.DataSet:=Form1.DBGrid.DataSource.Dataset;无法联接到Form1中DBGrid的数据?
...全文
78 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunnyasp 2003-04-22
  • 打赏
  • 举报
回复
up
sunnyasp 2003-04-22
  • 打赏
  • 举报
回复
这下我更晕了,我是在Form1中已经用DBGrid取出表的数据了,我现在是要把DBGrid中的这些数据打印出来即可!
yzykjh 2003-04-22
  • 打赏
  • 举报
回复
你可以动态创建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;
sunnyasp 2003-04-22
  • 打赏
  • 举报
回复
回wzpbobsir(傻蛋)
我已经uses unit1了,这样应该是包含Form1的单元文件了吧?


回yzykjh(多米诺骨牌)
我是要取Form1中DBGrid的数据啊,如果像你那样我得一个一个的字段名给他啊?
yzykjh 2003-04-22
  • 打赏
  • 举报
回复
QRDBText.dataset:=form1.adoquery1;
qrdbtext.datafield:='字段名';
wzpbobsir 2003-04-22
  • 打赏
  • 举报
回复
包含Form1的单元文件
sunnyasp 2003-04-22
  • 打赏
  • 举报
回复
回yzykjh(多米诺骨牌) ,还是不能预览

你刚才说的QRDBText组件怎么用来着?是不是我没有添加这个组件的原因?
yzykjh 2003-04-22
  • 打赏
  • 举报
回复
procedure TForm2.Button1Click(Sender: TObject);
begin
Form1.ADOQuery1.Open;
QuickRep1.DtaSet:=adoquery1;
QuickRep1.Preview;
end;
sunnyasp 2003-04-22
  • 打赏
  • 举报
回复
回yzykjh(多米诺骨牌),以下是我的代码段,能帮我看看错在哪里吗?

unit Unit2;

interface

uses
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;

implementation

uses 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;


yzykjh 2003-04-22
  • 打赏
  • 举报
回复
QRDBText组件,在QReport工具栏中,与QuickRep是同一工具栏。
sunnyasp 2003-04-22
  • 打赏
  • 举报
回复
回JInyk(小小的猪)已经Open了。
回yzykjh(多米诺骨牌),你说的QRDBText是什么?我没有这项,还请指教!
JInyk 2003-04-22
  • 打赏
  • 举报
回复
unit1 中的数据集空间open了吗?
yzykjh 2003-04-22
  • 打赏
  • 举报
回复
QuickRep的Detail有QRDBText吗?
sunnyasp 2003-04-22
  • 打赏
  • 举报
回复
有啊,已经写了,Uses Unit1,但是在QuickRep预览时,没有数据显示出来?这为什么?
yzykjh 2003-04-22
  • 打赏
  • 举报
回复
1.QuickRep;
2.QRDBText;
3.未在implementation下写uses unit1;
yoisyois 2003-04-22
  • 打赏
  • 举报
回复
uses Form1;

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧