Каждая накладная в отдельный файл
Модераторы: m0p3e, edward_K, Модераторы
-
- Местный житель
- Сообщения: 209
- Зарегистрирован: 18 окт 2006, 17:03
- Откуда: Ростов на Дону Новочеркасск Новороссийск
- Контактная информация:
Каждая накладная в отдельный файл
День добрый подскажите плиз, в какую сторону копать.
Печатаем разом пачку накладных, как сделать, чтобы каждый документ сохранялся в отдельный файл (печать в ворд, сейчас все в один файл льется).
Печатаем разом пачку накладных, как сделать, чтобы каждый документ сохранялся в отдельный файл (печать в ворд, сейчас все в один файл льется).
-
- Заслуженный деятель интернет-сообщества
- Сообщения: 5188
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: SPB galaxy spb
Re: Каждая накладная в отдельный файл
Самое простое - переделать форму с RTF на вывод в Excel.
А так резать. В зарплате насколько помню можно расчетки выводить в разные файлы - но там для этого утилита на паскале еще пашет. Если найдете там, можно подумать, но с использованием xl функций как то проще.
А так резать. В зарплате насколько помню можно расчетки выводить в разные файлы - но там для этого утилита на паскале еще пашет. Если найдете там, можно подумать, но с использованием xl функций как то проще.
Re: Каждая накладная в отдельный файл
Если rtf, то варианты есть, но трудоемкие. Исходим из того, что имя файла можно задать в коде.
FormName.SetFileName('Имя.rtf');
Повлиять на стандартные поток не получится, а вот организовать свой можно.
FormName.SetFileName('Имя.rtf');
Повлиять на стандартные поток не получится, а вот организовать свой можно.
-
- Местный житель
- Сообщения: 1844
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
- Контактная информация:
Re: Каждая накладная в отдельный файл
Резюмируя предыдущих высказавшихся...фактически, нужно написать свою печать накладных как вам нужно.
Re: Каждая накладная в отдельный файл
Не обязательно. Можно сформировать поток на этом же прототипе, но по каждой накладной с именованием выходного файла.Den писал(а):Резюмируя предыдущих высказавшихся...фактически, нужно написать свою печать накладных как вам нужно.
-
- Местный житель
- Сообщения: 1844
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
- Контактная информация:
Re: Каждая накладная в отдельный файл
SetFileName -это метод формы для интерфейсов. Т.е. парню надо лезть в vip-программу и переписать(ну или серьезно переработать существующий алгоритм формирования потока из VIP) печать каждой накладной в отдельный файл. Ибо сейчас просто в один сформированный файл вывалиться вся куча помеченных накладных (как ты там ее не переобзови .SetFileName)m0p3e писал(а):Не обязательно. Можно сформировать поток на этом же прототипе, но по каждой накладной с именованием выходного файла.Den писал(а):Резюмируя предыдущих высказавшихся...фактически, нужно написать свою печать накладных как вам нужно.
Re: Каждая накладная в отдельный файл
Я имею ввиду, что можно попробовать написать интерфейс-прослойку в который прямо передавать данные из текущего потока. SetFileName уже будет использовать этот вспомогательный интерфейс для формирования отдельного файла по каждому документу.Den писал(а):SetFileName -это метод формы для интерфейсов. Т.е. парню надо лезть в vip-программу и переписать(ну или серьезно переработать существующий алгоритм формирования потока из VIP) печать каждой накладной в отдельный файл. Ибо сейчас просто в один сформированный файл вывалиться вся куча помеченных накладных (как ты там ее не переобзови .SetFileName)m0p3e писал(а):Не обязательно. Можно сформировать поток на этом же прототипе, но по каждой накладной с именованием выходного файла.Den писал(а):Резюмируя предыдущих высказавшихся...фактически, нужно написать свою печать накладных как вам нужно.
Время разработки можно сократить, если вспомогательный интерфейс будет формировать файлы на том же прототипе, что и стандартный. В таком случае не нужно заново рисовать формы. Но есть сомнения, что так можно. Нужно проверять.
Re: Каждая накладная в отдельный файл
Воспользуйтесь функцией FRExportReport
Назначение
Экспорт отчета, загруженного функцией FROpenReport или сформированного функцией FRPrepareReport.
Параметры экспорта задаются функцией FRSetParameters.
Если параметры экспорта не заданы, то будут использоваться параметры по умолчанию.
Описание
function FRExportReport(aFRObject: LongInt; aExportType: LongInt; const aFileName: String): Boolean;
Параметры
aFRObject: LongInt — идентификатор созданного экземпляра FastReport.
aExportType: LongInt — константа, определяющая тип выполняемого экспорта.
aFileName: String — имя сохраняемого отчета.
пример
https://help.galaktika.ru/Postroitel_ot ... eport.html
https://help.galaktika.ru/Postroitel_ot ... xport.html
Назначение
Экспорт отчета, загруженного функцией 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 ... xport.html