我对印刷有问题
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所有其他属性都是相同的。有什么建议吗?
发布于 2013-08-18 07:26:47
可能有不同的陷阱。
Addvariable (而不是variables.add)类别,则必须在报表中定义Bez,否则将不会添加变量。**Memo1.Lines.Text :=<buyer>;Sendparams(['buyer','delivery'], [QuotedStr('buyer address'), QuotedStr('delivery address')]);**

另一种尝试可能是这样的:避免打开字符串数组(名称和值的计数可能会意外不同),避免在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;https://stackoverflow.com/questions/18288908
复制相似问题