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

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

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

Ответить
Nikos
Местный житель
Сообщения: 577
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Томск

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

Сообщение Nikos »

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

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

sTxoGetField('FPSTBUD','LEVELCODE', coTxoGetExtAttr('PLPOR','Статьи планов (бюджетов)', PLPORNREC))
Если аналогичное поле добавить в Fast report, то ничего не получается.
galover
Местный житель
Сообщения: 794
Зарегистрирован: 16 ноя 2007, 13:52

Сообщение galover »

имелось в виду, что докомпилировать поток данных теперь можно даже если datastream не помечен как public в исходном интерфейсе
Nikos
Местный житель
Сообщения: 577
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Томск

Сообщение Nikos »

Т.е. для моей задачи необходимо докомпилировать поток?
galover
Местный житель
Сообщения: 794
Зарегистрирован: 16 ноя 2007, 13:52

Сообщение galover »

да, ну или можно как вариант через ADO в самом FR попробовать вытянуть данные
Nikos
Местный житель
Сообщения: 577
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Томск

Сообщение Nikos »

А можно привести пример докомпиляции потока, или ссылку на документацию?
galover
Местный житель
Сообщения: 794
Зарегистрирован: 16 ноя 2007, 13:52

Сообщение 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.
Nikos
Местный житель
Сообщения: 577
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Томск

Сообщение Nikos »

Спасибо, буду пробовать.
LaaLaa

Сообщение 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.

Планирую подготовить примеры по докомиляции потоков данных для Галактики, на это нужно время, позже опубликую.
Алексей
Местный житель
Сообщения: 2896
Зарегистрирован: 24 июн 2005, 12:12
Откуда: Иркутская область

Сообщение Алексей »

как без исходников узнать имя таблицы ReePlDoc ?
LaaLaa

Сообщение LaaLaa »

Предполагалось, что как-то через консоль управления.

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

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

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

Хотя это мастер докомпиляции довольно сырой. Но какую то информацию об устройстве интерфейса с его помощью можно получить.
Senkrid
Постоянный гость
Сообщения: 74
Зарегистрирован: 10 ноя 2009, 07:08
Откуда: Ангарск
Контактная информация:

Re:

Сообщение Senkrid »

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