单次打开出现问题的形况比较少,反复操作几次就可能出错了打开报表有时成功有时出错(打开后就停死在那里了,有时候有提示:a component named QRStandradpreview already exists)
大家帮帮忙,谢谢了
unit uMerchandiseReport;interfaceuses
SysUtils, Windows, Messages, Classes, Graphics, Controls,
StdCtrls, ExtCtrls, Forms, QuickRpt, QRCtrls, DB, DBTables;type
TMerchandiseReport = class(TForm)
QuickRep1: TQuickRep;
PageFooterBand1: TQRBand;
QRExpr1: TQRExpr;
ColumnHeaderBand1: TQRBand;
DetailBand1: TQRBand;
QRLabel3: TQRLabel;
QRExpr4: TQRExpr;
QRLabel4: TQRLabel;
QRExpr5: TQRExpr;
QRLabel5: TQRLabel;
QRLabel6: TQRLabel;
QRExpr6: TQRExpr;
QRExpr7: TQRExpr;
TitleBand1: TQRBand;
QRLabel7: TQRLabel;
QRLabel8: TQRLabel;
QRExpr8: TQRExpr;
QRLabel1: TQRLabel;
QRExpr2: TQRExpr;
QRBand1: TQRBand;
QRLabel10: TQRLabel;
QRExpr9: TQRExpr;
QRExpr10: TQRExpr;
QRLabel11: TQRLabel;
QRLabel12: TQRLabel;
QRExpr11: TQRExpr;
QRLabel2: TQRLabel;
QRLabel9: TQRLabel;
QRLabel13: TQRLabel;
QRExpr13: TQRExpr;
QRExpr12: TQRExpr;
QRExpr3: TQRExpr;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure QuickRep1AfterPreview(Sender: TObject);
procedure FormActivate(Sender: TObject);
private
procedure init;
end;var
MerchandiseReport: TMerchandiseReport;implementation
{$R *.DFM}
uses uCommon;
{ TQuickReportF }procedure TMerchandiseReport.init;
begin
try
QuickRep1.DataSet:= global.merchandiseDB.query;
global.merchandiseDB.Browse('*');
QRExpr2.Expression :='[outPrice]';
//QRExpr3.Expression :='[PinyinName]';
QRExpr4.Expression :='[MerchandiseName]';
QRExpr5.Expression :='[MerchandiseUnit]';
QRExpr6.Expression :='[inPrice]';
QRExpr7.Expression :='[MerchandiseNum]';
QRExpr8.Expression :='[Discount]';
QuickRep1.Zoom := 100;
QuickRep1.PreviewModal;
global.merchandiseDB.CloseQuery;
except
on e:Exception do
begin
global.messageBoxTop( pchar(e.Message),'Exception',MB_ICONERROR );
end;
end;end;procedure TMerchandiseReport.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
Action:=caFree;
end;procedure TMerchandiseReport.QuickRep1AfterPreview(Sender: TObject);
begin
close;
end;procedure TMerchandiseReport.FormActivate(Sender: TObject);
begin
init;
end;end.//////////////////
调用的代码
function TMain.CreateMIDChild(mainForm:TForm; className:TFormClass; var ref): boolean;
var
i:integer;
begin
if self.MDIChildCount >= 2 then
begin
global.messageBoxTop('请关闭其它窗口,不然不能打开','提示');
exit;
end;
for i:=0 to mainForm.MDIChildCount-1 do
begin
mainForm.MDIChildren[i].Close;
end;
ImagePanel1.Hide;
Application.CreateForm(className,ref);
end;procedure TMain.SpeedButton9Click(Sender: TObject);
var
Child: TMerchandiseReport;
begin
CreateMIDChild(self,TMerchandiseReport,Child);
child.Caption:=trim((Sender as TSpeedButton).Caption);
end;
end;
大家帮帮忙,谢谢了
unit uMerchandiseReport;interfaceuses
SysUtils, Windows, Messages, Classes, Graphics, Controls,
StdCtrls, ExtCtrls, Forms, QuickRpt, QRCtrls, DB, DBTables;type
TMerchandiseReport = class(TForm)
QuickRep1: TQuickRep;
PageFooterBand1: TQRBand;
QRExpr1: TQRExpr;
ColumnHeaderBand1: TQRBand;
DetailBand1: TQRBand;
QRLabel3: TQRLabel;
QRExpr4: TQRExpr;
QRLabel4: TQRLabel;
QRExpr5: TQRExpr;
QRLabel5: TQRLabel;
QRLabel6: TQRLabel;
QRExpr6: TQRExpr;
QRExpr7: TQRExpr;
TitleBand1: TQRBand;
QRLabel7: TQRLabel;
QRLabel8: TQRLabel;
QRExpr8: TQRExpr;
QRLabel1: TQRLabel;
QRExpr2: TQRExpr;
QRBand1: TQRBand;
QRLabel10: TQRLabel;
QRExpr9: TQRExpr;
QRExpr10: TQRExpr;
QRLabel11: TQRLabel;
QRLabel12: TQRLabel;
QRExpr11: TQRExpr;
QRLabel2: TQRLabel;
QRLabel9: TQRLabel;
QRLabel13: TQRLabel;
QRExpr13: TQRExpr;
QRExpr12: TQRExpr;
QRExpr3: TQRExpr;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure QuickRep1AfterPreview(Sender: TObject);
procedure FormActivate(Sender: TObject);
private
procedure init;
end;var
MerchandiseReport: TMerchandiseReport;implementation
{$R *.DFM}
uses uCommon;
{ TQuickReportF }procedure TMerchandiseReport.init;
begin
try
QuickRep1.DataSet:= global.merchandiseDB.query;
global.merchandiseDB.Browse('*');
QRExpr2.Expression :='[outPrice]';
//QRExpr3.Expression :='[PinyinName]';
QRExpr4.Expression :='[MerchandiseName]';
QRExpr5.Expression :='[MerchandiseUnit]';
QRExpr6.Expression :='[inPrice]';
QRExpr7.Expression :='[MerchandiseNum]';
QRExpr8.Expression :='[Discount]';
QuickRep1.Zoom := 100;
QuickRep1.PreviewModal;
global.merchandiseDB.CloseQuery;
except
on e:Exception do
begin
global.messageBoxTop( pchar(e.Message),'Exception',MB_ICONERROR );
end;
end;end;procedure TMerchandiseReport.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
Action:=caFree;
end;procedure TMerchandiseReport.QuickRep1AfterPreview(Sender: TObject);
begin
close;
end;procedure TMerchandiseReport.FormActivate(Sender: TObject);
begin
init;
end;end.//////////////////
调用的代码
function TMain.CreateMIDChild(mainForm:TForm; className:TFormClass; var ref): boolean;
var
i:integer;
begin
if self.MDIChildCount >= 2 then
begin
global.messageBoxTop('请关闭其它窗口,不然不能打开','提示');
exit;
end;
for i:=0 to mainForm.MDIChildCount-1 do
begin
mainForm.MDIChildren[i].Close;
end;
ImagePanel1.Hide;
Application.CreateForm(className,ref);
end;procedure TMain.SpeedButton9Click(Sender: TObject);
var
Child: TMerchandiseReport;
begin
CreateMIDChild(self,TMerchandiseReport,Child);
child.Caption:=trim((Sender as TSpeedButton).Caption);
end;
end;
解决方案 »
- sql多表查询
- 我已经将数据绑定到DBGRID上了 可是我想修改字段怎么办
- 求助:这个filter怎么写?
- 如何生成Release版的程序
- Delphi调用/VB写的DLL,运行显示“找不到DLL入口点”是为什么
- 300分---用Delphi怎样实现语法着色
- 在ActiveX中使用WideString与String时出现的问题
- 请你帮我一个关于delphi程序发布的问题,紧急问题我要给你高分!
- !!!!!这个问题,我想了,做了一个晚上,还是没有搞定,帮我!!!!!
- 如何判断一个BLOB字段是否存在?
- 如何退出外部程序窗口移动状态
- 请教: SQL查询时提示‘列名‘SG1’ 无效‘的错误信息,是什么原因造成的?
写在FormCreate事件上就不会了procedure TMerchandiseReport.FormActivate(Sender: TObject);
begin
init;
end;