在名为Bill Info的表中有两条记录, 我已经为表设计了一个报告,需要将每个记录保存到特定文件夹中的pdf文件中。
CustBill.RESET;
CustBill.SETFILTER(CustBill."Customer No.",'%1',Customers."No.");
IF CustBill.FIND('-') THEN
Customers.GET(Customers."No.");
IF Customers.FIND('-')THEN BEGIN
REPEAT
CustNumber:= Customers."No.";
tofile := '.pdf';
Filename := 'C:\reports\'+CustNumber+tofile;
REPORT.SAVEASPDF(50050, Filename,Runrpt);
UNTIL CustBill.NEXT=0;
END;
答案 0 :(得分:1)
你的代码很乱。我在这里为你修好了。
CustBill.RESET;
CustBill.SETFILTER(CustBill."Customer No.",'%1',Customers."No.");
IF CustBill.FIND('-') THEN
BEGIN //you missed this one
CustLocal.SETRANGE("No.", Customers."No.");
IF CustLocal.FINDSET THEN //use findset already its year 2016
BEGIN
REPEAT
CustNumber:= CustLocal."No.";
tofile := '.pdf';
Filename := 'C:\reports\'+CustNumber+tofile;
REPORT.SAVEASPDF(50050, Filename, CustLocal); //propper parameters
UNTIL CustBill.NEXT=0;
end;
END;
注意这一行
REPORT.SAVEASPDF(50050, Filename, CustLocal);
根据报告中的数据项,您可能必须使用CustLocal
或CustBill
变量作为最后一个参数。它将用作报告的过滤器。
还有一件事。正如MSDN所说:
FileName参数指定运行的计算机上的位置 Microsoft Dynamics NAV服务器。如果从中调用此功能 RoleTailored客户端,例如来自页面上的操作,然后使用 DOWNLOAD函数(File)从计算机下载.pdf文件 将Microsoft Dynamics NAV Server运行到运行该计算机的计算机上 RoleTailored客户端。
因此,请不要在运行客户端的本地计算机上查找文件。
其他任何问题都要求您发布question两次?