Оганизация вывода данных в slk

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

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

Ответить
Marisha_P
Местный житель
Сообщения: 232
Зарегистрирован: 10 ноя 2010, 13:49

Оганизация вывода данных в slk

Сообщение Marisha_P »

Здравствуйте!
Подскажите, пожалуйста, можно ли и как это сделать, если можно, при выводе в отчет slk, который состоит из бланка авизо и расшифровки, сначала заполнить расшифровку, просчитав по ходу итоговые суммы, а потом вернуться в заголовок и заполнить его полученными данными?
Semi-bit
Постоянный обитатель
Сообщения: 123
Зарегистрирован: 01 фев 2007, 12:45
Откуда: Магнитогорск
Контактная информация:

Re: Оганизация вывода данных в slk

Сообщение Semi-bit »

Таки, если это делать на чистом слк, надо сначала рассчитать суммы, а потом уже всё печатать скопом. Если же подключить макросы, можно управиться и за один проход.

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

// после form.ShowFile
      var sTempFileName: string;
      sTempFileName := GetStringParameter('Files', 'OutputFilesDirectory', 0) + 'tmp.xls'; 
      DeleteFile(sTempFileName);
      xlCreateExcel(sTempFileName, false);// xlOpenExcel удаляет открытый файл, поэтому не используется
      xlImportModule('Module.bas');
      xlRunMacro('Macro');
      xlCloseWorkbookByName(sTempFileName);
      DeleteFile(sTempFileName);
      xlKillExcel;
Собственно, в Module.bas пишете простенький скрипт, который скопирует сумму, куда надо.
Испытываю траблы с даблами
ВИП — Велосипедо-Изобретательская Парадигма
САППОРТ — Сборище Абсолютно Пустых Посредственно Образованных Ржущих Троллей
oiko
Местный житель
Сообщения: 419
Зарегистрирован: 29 мар 2005, 17:49

Re: Оганизация вывода данных в slk

Сообщение oiko »

Попробуйте так.
Обьявляете в форме таблицу в памяти.
В цикле выгрузки спецификации грузите данные в нее и считаете итог.
После всех циклов выводите заголовок с итогом, а затем цикл по этой табле с выгрузкой спецификации.
Marisha_P
Местный житель
Сообщения: 232
Зарегистрирован: 10 ноя 2010, 13:49

Re: Оганизация вывода данных в slk

Сообщение Marisha_P »

Спасибо большое, oiko!:) Так и сделала - отчет формируется достаточно быстро:)
Marisha_P
Местный житель
Сообщения: 232
Зарегистрирован: 10 ноя 2010, 13:49

Re: Оганизация вывода данных в slk

Сообщение Marisha_P »

а можно как-то организовать цикл вывода данных по таблице так, чтобы значения предыдущих ячеек не изменялись?
В первом столбце было фиксированное значение прописано изначально, а в следующем столбце выводился цикл значений из временной таблицы?

Например в шапку таблицы надо выгрузить список счетов из расшифровки:

-----------------------| дебет счета
Авизо акцептовано | 10.2
------------------------| 10.5

Или это можно сделать только макросом - путем копирования значений?
Semi-bit
Постоянный обитатель
Сообщения: 123
Зарегистрирован: 01 фев 2007, 12:45
Откуда: Магнитогорск
Контактная информация:

Re: Оганизация вывода данных в slk

Сообщение Semi-bit »

Marisha_P,
Конечно, можно!
Надо объявить переменную для шапки, и сделать цикл по таблице со списком счетов, очистив шапку в конце первого прохода:

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

.var
  header: string;
.endvar
!... далее в коде
.begin
  header := 'Авизо акцептовано';
end.
!... в процессе печати
.{table 'v_acc.Accounts'
.fields
  header
  Accounts.Num
.endfields
  ^     |    ^   |
.begin
  header := '';
end.
.}
Причём, можно ухитриться, и очистить шапку не в первом, а во втором проходе, или даже в середине напечатанной таблицы. :) Как говорится, было бы желание...
Испытываю траблы с даблами
ВИП — Велосипедо-Изобретательская Парадигма
САППОРТ — Сборище Абсолютно Пустых Посредственно Образованных Ржущих Троллей
Ответить