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

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

Ответить
Gameus_
Местный житель
Сообщения: 209
Зарегистрирован: 18 окт 2006, 17:03
Откуда: Ростов на Дону Новочеркасск Новороссийск
Контактная информация:

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

Сообщение Gameus_ »

День добрый подскажите плиз, в какую сторону копать.
Печатаем разом пачку накладных, как сделать, чтобы каждый документ сохранялся в отдельный файл (печать в ворд, сейчас все в один файл льется).
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5185
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

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

Сообщение edward_K »

Самое простое - переделать форму с RTF на вывод в Excel.
А так резать. В зарплате насколько помню можно расчетки выводить в разные файлы - но там для этого утилита на паскале еще пашет. Если найдете там, можно подумать, но с использованием xl функций как то проще.
m0p3e
Местный житель
Сообщения: 1386
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

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

Сообщение m0p3e »

Если rtf, то варианты есть, но трудоемкие. Исходим из того, что имя файла можно задать в коде.
FormName.SetFileName('Имя.rtf');
Повлиять на стандартные поток не получится, а вот организовать свой можно.
Den
Местный житель
Сообщения: 1842
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
Контактная информация:

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

Сообщение Den »

Резюмируя предыдущих высказавшихся...фактически, нужно написать свою печать накладных как вам нужно.
m0p3e
Местный житель
Сообщения: 1386
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

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

Сообщение m0p3e »

Den писал(а):Резюмируя предыдущих высказавшихся...фактически, нужно написать свою печать накладных как вам нужно.
Не обязательно. Можно сформировать поток на этом же прототипе, но по каждой накладной с именованием выходного файла.
Den
Местный житель
Сообщения: 1842
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
Контактная информация:

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

Сообщение Den »

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

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

Сообщение m0p3e »

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

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

Сообщение 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
Ответить