-1

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

1 回答 1

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 Server 的计算机上的位置。如果您从 RoleTailored 客户端(例如从页面上的操作)调用此函数,则使用 DOWNLOAD 函数(文件)将 .pdf 文件从运行 Microsoft Dynamics NAV Server 的计算机下载到运行 RoleTailored 客户端的计算机。

所以不要在客户端运行的本地机器上寻找你的文件。

任何其他问题促使您将问题发布两次?

于 2016-06-15T16:08:05.117 回答