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

时间:2016-06-15 14:47:21

标签: dynamics-nav-2013 dynamics-nav-2016 dynamics-nav-2015

在名为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;

1 个答案:

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

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

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

  

FileName参数指定运行的计算机上的位置   Microsoft Dynamics NAV服务器。如果从中调用此功能   RoleTailored客户端,例如来自页面上的操作,然后使用   DOWNLOAD函数(File)从计算机下载.pdf文件   将Microsoft Dynamics NAV Server运行到运行该计算机的计算机上   RoleTailored客户端。

因此,请不要在运行客户端的本地计算机上查找文件。

其他任何问题都要求您发布question两次?