FastReport的问题 ( 积分: 100 )

  • 主题发起人 主题发起人 kjhwxm
  • 开始时间 开始时间
K

kjhwxm

Unregistered / Unconfirmed
GUEST, unregistred user!
frreport1.LoadFromFile('E:/KPST/REPORT.FRF');
frreport1.PrepareReport;
frReport1.PrintPreparedReport('1', 1, True, frAll);
以上语句编译通过!但是运行时出现错误信息:列表索引越界(0)
我用的是:FastReport.v2.52.FireRose
去掉frreport1.LoadFromFile('E:/KPST/REPORT.FRF')可以;
但是我想让用户自行修改报表,并存到文件REPORT.FRF中,不用在编译就可使用修改过的报表
我应怎样办啊!以上问题是怎么回事啊?请高手指教,我给分!
 
frreport1.LoadFromFile('E:/KPST/REPORT.FRF');
frreport1.PrepareReport;
frReport1.PrintPreparedReport('1', 1, True, frAll);
以上语句编译通过!但是运行时出现错误信息:列表索引越界(0)
我用的是:FastReport.v2.52.FireRose
去掉frreport1.LoadFromFile('E:/KPST/REPORT.FRF')可以;
但是我想让用户自行修改报表,并存到文件REPORT.FRF中,不用在编译就可使用修改过的报表
我应怎样办啊!以上问题是怎么回事啊?请高手指教,我给分!
 
frreport1.LoadFromFile('E:/KPST/REPORT.FRF');
frReport1.ShowReport;//預覽報表
frReport1.DesignReport;//設計報表,加上TfrDesigner控件
 
leadyli你好!
我在另外的按钮中已加入了设计!关键是怎样让修改过的报表!重新运行程序时能起作用!而不用重编译!
我想让打印机直接打印!而不预揽!我的语句为什么出错!
 
procedure Tckdform.bill_print(Fqty:real);
var Report: TfrReport;
prbz:byte;
begin
query2.sql.clear;
query2.sql.add('select * from tk_set where a1=''preview'' ');
query2.Open;
if query2.IsEmpty then
prbz:=0
else
prbz:=strtoint('0'+query2.fieldbyname('a2').asstring);

query2.sql.clear;
query2.sql.add('select * from tk_cklist where inform_no=&n1 ');
query2.MacroByName('n1').AsString:=djh.Text;
query2.Open;
Report := frReport1;
Report.LoadFromFile(path+'/report/销售出库单.frf');
frVariables['sh_dw']:=sh_dw.Text;
frVariables['ckd_no']:=query2.fieldbyname('bill_no').AsString;
frVariables['art_no']:=artno.Text;
frVariables['art_name']:=art_name.Text;
frVariables['qty1']:=temp_amount1;
frVariables['qty2']:=temp_amount2;
frVariables['qty3']:=abs(Fqty);
frVariables['unit1']:=0;
frVariables['sy_bh']:=sybh.Text;
frVariables['bus_no']:=bus_no.Text;
frVariables['czy']:=lrname;
frvariables['work_date']:=formatdatetime('yyyy.mm.dd',work_date);
frvariables['work_time']:=work_time;
frvariables['qty']:=ckbz;
report.Title:='单据打印['+djh.Text+']';
if prbz<>1 then
begin
report.PrepareReport;
Report.ShowPreparedReport;
end else
begin
report.PrepareReport;
report.PrintPreparedReport('',1,True,frAll);
//打印
end;
end;

上面是我的一个商业程序中单据打印代码
可控制预览窗口是否显示
有什么问题,请qq:33586813
 
如果你想讓修改后的報表能及時的反應在程序上.那麼你應該把所有的報表存儲為報表文件,然后在打印或預鑒之前重新用路徑加載報表.
 
多人接受答案了。
 
后退
顶部