gpt4 book ai didi

Delphi、FastReport 参数

转载 作者:行者123 更新时间:2023-12-01 18:59:09 24 4
gpt4 key购买 nike

我在打印时遇到问题

procedure Sendparams(const Pparams,pparvalues :array of string);
begin
for I := 0 to Length(Pparams) - 1 do
begin
lpar_name:=Pparams[i];
lpar_val:=pparvalues[i] ;
FfrxReport.Variables.AddVariable('Bez', lpar_name, lpar_val);
end;

Sendparams(['buyer','delivery'], ['buyer address', 'delivery address']);

一切正常,直到我尝试打印报告;它说:Memo2 上预期的表达。

Memo1.memo = '[buyer]';
Memo2.memo = '[delivery]';

memo1 和 memo2 所有其他属性都相同。有什么建议吗?

最佳答案

有不同的可能陷阱。

  1. 如果您想使用Addvariable (而不是 variables.add )类别,在您的情况下 Bez必须在报告中定义,否则不会添加变量。 **
  2. 报告中变量的分配必须类似于 Memo1.Lines.Text :=<buyer>;
  3. 您必须引用变量的字符串值
    Sendparams(['buyer','delivery'], [QuotedStr('buyer address'), QuotedStr('delivery address')]);

** enter image description here

另一种尝试可能是这样的,以避免打开字符串数组(其中名称和值的计数可能意外不同),以避免对 Sendparams 中的报告进行硬引用并处理已经可以在报告中定义的变量。

Function PrepareReport(Report:TfrxReport; Variables: TfrxVariables;
ReportName: String):Boolean;// -- other parameters
var
i,k:Integer;
begin
// ....... other initializations

if Assigned(Variables) then
for i := 0 to Variables.Count - 1 do
begin
k := Report.Variables.IndexOf(Variables.Items[i].Name);
if k > -1 then
Report.Variables.Items[k].Value := Variables.Items[i].Value
else
begin
with Report.Variables.Add do
begin
Name := Variables.Items[i].Name;
Value := Variables.Items[i].Value;
end;
end;
end;
end;

关于Delphi、FastReport 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18288908/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com