Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Delphi 参数大小错误_Delphi_Crystal Reports - Fatal编程技术网

Delphi 参数大小错误

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

我们在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 := '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。谢谢你的建议。“它救了我的命。”奥利弗。谢谢你,奥利弗,你说得对。我也会考虑的!