Delphi 参数大小错误
我们在Delphi 2007中有一个系统,我们使用Delphi 参数大小错误,delphi,crystal-reports,Delphi,Crystal Reports,我们在Delphi 2007中有一个系统,我们使用TCrpe组件打印Crystal reports 2008中生成的报告(.rpt文件)。按照以下代码正常工作: vImpressora := '\\DEV-01\HP LaserJet Professional P1102w'; with DM.Crystal do begin CloseEngine; ReportName := 'Comprovante.rpt'; ParamFields.Items[0].CurrentValue
TCrpe
组件打印Crystal reports 2008中生成的报告(.rpt
文件)。按照以下代码正常工作:
vImpressora := '\\DEV-01\HP LaserJet Professional P1102w';
with DM.Crystal do begin
CloseEngine;
ReportName := 'Comprovante.rpt';
ParamFields.Items[0].CurrentValue := 'Empresa XYZ Ltda';
Printer.Name := vImpressora;
Print;
end;
但是现在我们需要将系统转换为Delphi10。在上面的代码中,CurrentValue
只是停止工作。当系统运行命令ParamFields.Items[0]时,CurrentValue:=“XYZ公司所有”代码>生成错误:
参数的结构大小无效
我浏览了几个网站/论坛,寻找解决问题的方法,但没有找到。这毫无意义。报告中的参数是打印报告标题的类型参数,逻辑上是字符串类型。通过将字符串更改为AnsiString修改TCPRE的所有源。在Delphi 2007和2009年间,字符串处理方式发生了根本性的变化,从默认设置为Ascii到默认设置为Unicode。因此,我认为您可能需要更新TCrpe组件,以匹配您正在使用的任何新版本的Delphi。顺便说一句,Delphi 10本身并不存在:您正试图升级到哪个版本的Delphi?您可能会发现第二个答案很有帮助,因为asTCrpe现在似乎没有得到维护。@MartynA。你提供的链接非常有用。谢谢!请注意,TCrpe是一个专有组件,这意味着您无权修改它。@Rui Filipe Ribeiro。谢谢你的建议。“它救了我的命。”奥利弗。谢谢你,奥利弗,你说得对。我也会考虑的!