Страница 1 из 1

Каждая накладная в отдельный файл

Добавлено: 29 май 2017, 19:37
Gameus_
День добрый подскажите плиз, в какую сторону копать.
Печатаем разом пачку накладных, как сделать, чтобы каждый документ сохранялся в отдельный файл (печать в ворд, сейчас все в один файл льется).

Re: Каждая накладная в отдельный файл

Добавлено: 30 май 2017, 10:03
edward_K
Самое простое - переделать форму с RTF на вывод в Excel.
А так резать. В зарплате насколько помню можно расчетки выводить в разные файлы - но там для этого утилита на паскале еще пашет. Если найдете там, можно подумать, но с использованием xl функций как то проще.

Re: Каждая накладная в отдельный файл

Добавлено: 30 май 2017, 13:00
m0p3e
Если rtf, то варианты есть, но трудоемкие. Исходим из того, что имя файла можно задать в коде.
FormName.SetFileName('Имя.rtf');
Повлиять на стандартные поток не получится, а вот организовать свой можно.

Re: Каждая накладная в отдельный файл

Добавлено: 30 май 2017, 14:59
Den
Резюмируя предыдущих высказавшихся...фактически, нужно написать свою печать накладных как вам нужно.

Re: Каждая накладная в отдельный файл

Добавлено: 30 май 2017, 16:11
m0p3e
Den писал(а):Резюмируя предыдущих высказавшихся...фактически, нужно написать свою печать накладных как вам нужно.
Не обязательно. Можно сформировать поток на этом же прототипе, но по каждой накладной с именованием выходного файла.

Re: Каждая накладная в отдельный файл

Добавлено: 30 май 2017, 17:28
Den
m0p3e писал(а):
Den писал(а):Резюмируя предыдущих высказавшихся...фактически, нужно написать свою печать накладных как вам нужно.
Не обязательно. Можно сформировать поток на этом же прототипе, но по каждой накладной с именованием выходного файла.
SetFileName -это метод формы для интерфейсов. Т.е. парню надо лезть в vip-программу и переписать(ну или серьезно переработать существующий алгоритм формирования потока из VIP) печать каждой накладной в отдельный файл. Ибо сейчас просто в один сформированный файл вывалиться вся куча помеченных накладных (как ты там ее не переобзови .SetFileName)

Re: Каждая накладная в отдельный файл

Добавлено: 30 май 2017, 18:47
m0p3e
Den писал(а):
m0p3e писал(а):
Den писал(а):Резюмируя предыдущих высказавшихся...фактически, нужно написать свою печать накладных как вам нужно.
Не обязательно. Можно сформировать поток на этом же прототипе, но по каждой накладной с именованием выходного файла.
SetFileName -это метод формы для интерфейсов. Т.е. парню надо лезть в vip-программу и переписать(ну или серьезно переработать существующий алгоритм формирования потока из VIP) печать каждой накладной в отдельный файл. Ибо сейчас просто в один сформированный файл вывалиться вся куча помеченных накладных (как ты там ее не переобзови .SetFileName)
Я имею ввиду, что можно попробовать написать интерфейс-прослойку в который прямо передавать данные из текущего потока. SetFileName уже будет использовать этот вспомогательный интерфейс для формирования отдельного файла по каждому документу.
Время разработки можно сократить, если вспомогательный интерфейс будет формировать файлы на том же прототипе, что и стандартный. В таком случае не нужно заново рисовать формы. Но есть сомнения, что так можно. Нужно проверять.

Re: Каждая накладная в отдельный файл

Добавлено: 01 июн 2017, 10:57
LaaLaa
Воспользуйтесь функцией FRExportReport
Назначение
Экспорт отчета, загруженного функцией FROpenReport или сформированного функцией FRPrepareReport.
Параметры экспорта задаются функцией FRSetParameters.
Если параметры экспорта не заданы, то будут использоваться параметры по умолчанию.

Описание
function FRExportReport(aFRObject: LongInt; aExportType: LongInt; const aFileName: String): Boolean;

Параметры
aFRObject: LongInt — идентификатор созданного экземпляра FastReport.
aExportType: LongInt — константа, определяющая тип выполняемого экспорта.
aFileName: String — имя сохраняемого отчета.

пример

Код: Выделить всё

#include FRRecordDefinition.vih
const
  cmFRExport = 12345678; 
end;

interface SampleInterface;
 
create view 
var
  FReport: LongInt; 
  ReportName: String;
as select 
  * from x$users;
// ------------------------------
datastream SampleStream
(
  table x$users
  (
    [LGN] xu$loginname;
  );
)
end;

 

screen sButtons;

buttons

  cmFRExport;

<<

  <.Excel.>

>>

end;

 
// ------------------------------
handleEvent
  cmInit:
  {
    FReport := FRCreate(SampleStream); 
  }
 
  cmFRExport:
  {

    var
      ReportNames: array [0..0] of String;

 
    if FReport <> 0 then
    {
      FRGetReportNames(FReport, ReportNames);

 
      if Count(ReportNames) > 0 then
      {
        ReportName := ReportNames[0];

 
        if FROpenReport(FReport, ReportName) then
        {

          var

            ExportParam: frxBiffExportParam;

 
          ClearAdvRecord(ExportParam);
          FRGetDefaultParameters(frExportBiff, ExportParam);
        
          ExportParam.ShowDialog := False;
          ExportParam.OpenAfterExport := True;
 
          if FRSetParameters(FReport, frExportBIFF, ExportParam) then
            FRExportReport(FReport, frExportBIFF, 'C:\1.xls');

        }
      }
    }  
  }
 
  cmDone:
  {
    FRDestroy(FReport);
  }
end;
// ------------------------------
end.
https://help.galaktika.ru/Postroitel_ot ... eport.html
https://help.galaktika.ru/Postroitel_ot ... xport.html