Сохранить каждую запись в таблице как PDF

Имея две записи в таблице под названием 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 ответ

Решение

Ваш код беспорядок. Здесь я исправил это для вас.

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 Server. Если вы вызываете эту функцию из клиента RoleTailored, например, из действия на странице, используйте функцию ЗАГРУЗИТЬ (Файл), чтобы загрузить файл.pdf с компьютера, на котором работает Microsoft Dynamics NAV Server, на компьютер, на котором работает клиент RoleTailored.

Так что не ищите ваш файл на локальной машине, где работает клиент.

Любые другие проблемы побудили вас опубликовать вопрос дважды?

Другие вопросы по тегам