将 table 中的每条记录保存为 PDF

Save every record in the table as PDF

在一个名为 Bill Info 的 table 中有两条记录, 我为 table 设计了一份报告,需要将每条记录保存到特定文件夹中的 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;

你的代码一团糟。在这里,我为您解决了。

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);

根据报告中的数据项,您可能必须使用 CustLocalCustBill 变量作为最后一个参数。它将用作您报告的过滤器集。

还有一件事。正如 MSDN 所说:

The FileName parameter specifies a location on the computer running Microsoft Dynamics NAV Server. If you call this function from the RoleTailored client, such as from an action on a page, then use the DOWNLOAD Function (File) to download the .pdf file from the computer running Microsoft Dynamics NAV Server to the computer running the RoleTailored client.

所以不要在客户端 运行.

的本地计算机上查找您的文件

还有其他问题促使您 post 两次 吗?