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

Корректировка отчетов в Fast Report

Добавлено: 03 фев 2010, 10:32
Nikos
Добрый день.
Есть желание откорректировать отчет в Fast report, но в потоке нет нужной информации. В присоединенке мог воспользоваться функциями, создать вьюху и т.д. А как это сделать в Fast report? В описании патчей прочитал следующее: "Сделана возможность докомпиляции datastream без его обязательной публикации в vipInterface предка." Может это то, что мне нужно?
Вот конкретный пример: необходимо в реестр платежных поручений добавить внешний атрибут. В присоединенке я добавлял поле

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

sTxoGetField('FPSTBUD','LEVELCODE', coTxoGetExtAttr('PLPOR','Статьи планов (бюджетов)', PLPORNREC))
Если аналогичное поле добавить в Fast report, то ничего не получается.

Добавлено: 03 фев 2010, 10:54
galover
имелось в виду, что докомпилировать поток данных теперь можно даже если datastream не помечен как public в исходном интерфейсе

Добавлено: 03 фев 2010, 11:05
Nikos
Т.е. для моей задачи необходимо докомпилировать поток?

Добавлено: 03 фев 2010, 11:33
galover
да, ну или можно как вариант через ADO в самом FR попробовать вытянуть данные

Добавлено: 03 фев 2010, 11:37
Nikos
А можно привести пример докомпиляции потока, или ссылку на документацию?

Добавлено: 03 фев 2010, 11:40
galover
в vipprogr.chm есть пример:
Пример 2. Расширение потока данных.

Создадим файл dstream2.vip (докомпилируемый интерфейс должен находиться в другом исходном файле, относительно оригинального):

// -- dstream2.vip --
#include dstream.vih

alter interface SampleInterface2;
create view as select * from x$files;
dataStream SampleStream
(
// Изменение существующего элемента потока
table inherited :: x$files
(
[ SMPLTXT2 ] "Поле xf$name: " + xf$name;
);
// Добавление в поток данных нового элемента
table x$users
(
[ SMPLNAME ] xu$loginname;
);
)
end;
end.

Добавлено: 03 фев 2010, 11:42
Nikos
Спасибо, буду пробовать.

Добавлено: 03 фев 2010, 12:39
LaaLaa
точнее код должен выглядеть как-то так

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

#component "F_PLPOR"

alter interface REEPLPOR;

  overload
    DataStream PrintStream;
  end;

  DataStream PrintStream
  (
    Table inherited::ReePlDoc
    (
      [StBudNrec] coTxoGetExtAttr('PLPOR','Статьи планов (бюджетов)', ReePlDoc.cPlPor);
      [StBudLevelCode] sTxoGetField('FPSTBUD','LEVELCODE', coTxoGetExtAttr('PLPOR','Статьи планов (бюджетов)', ReePlDoc.cPlPor));
    );
  )
  end;
end.

Планирую подготовить примеры по докомиляции потоков данных для Галактики, на это нужно время, позже опубликую.

Добавлено: 03 фев 2010, 13:06
Алексей
как без исходников узнать имя таблицы ReePlDoc ?

Добавлено: 03 фев 2010, 13:24
LaaLaa
Предполагалось, что как-то через консоль управления.

См. видео из этого топика http://www.tyumbit.ru/gal_forum/viewtopic.php?t=10246.

Где-то там, если у интерфейса есть потоки данных. Кроме закладки "Логические таблицы" будет появляется еще и закладка "Потоки данных".

А еще внимательно посмотрите на тулбар Консоли управления посмотрите Там появляется кнопочка "Мастер докомпиляции". Ее можно использовать чтобы синтезировать код идентичный приведенному выше примеру.

Хотя это мастер докомпиляции довольно сырой. Но какую то информацию об устройстве интерфейса с его помощью можно получить.

Re:

Добавлено: 18 ноя 2011, 13:56
Senkrid
Алексей писал(а):как без исходников узнать имя таблицы ReePlDoc ?
Без консоли управления можно поступить так : при редактировании или содании нового отчета нажать "Сохранить отчет... -> в файл" - имя файла будет состоять из Имя_Компоненты + Имя_Интерфейса + Имя_Потока даных + Назание_самого_отчета