Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

FastReport [D5, XP]


dzhagr ©   (2007-02-28 18:59:00) 

Подскажите, пожалуйста, что нужно, чтобы запустить самый простой отчет. Я расположил на форме frReport1: TfrReport; Вызываю процедуру frreport1.showreport; ничего не происходит. Может надо что-то еще? Или в чем еще может быть ошибка? Спасибо.


dzhagr   (2007-03-02 18:23:00) [1]

Спасибо огромнейшее!!! Буду спокойно спать))


easy   (2007-03-02 15:52:00) [2]

6.1. ИСПОЛЬЗОВАНИЕ ДАННЫХ ИЗ НЕ-БД ИСТОЧНИКОВ. СОБЫТИЯ
 Часто данные нужно извлекать из других источников, не имеющих отношения к базам данных (например, файл, массив и т.п.). Для этих целей служит компонент TfrUserDataset, генерирующий события OnFirst, OnNext, OnCheckEOF. Кроме того, придется писать обработчики событий OnGetValue, OnEnterRect компонента TfrReport.

 Обработчик события OnGetValue вызывается каждый раз, когда в тексте объекта встречается переменная и нужно получить ее значение. Если переменной сопоставлено значение, то она обрабатывается внутренним обработчиком компонента. Иначе нужно подключать внешний обработчик, например:

procedure TForm1.Doc1GetValue(const ParName: string; var ParValue: Variant);
begin
  if ParName = 'Var1' then
    ParValue := '1'
  else if ParName = 'Var2' then
    ParValue := 2
end;

 Обработчик события OnEnterRect вызывается перед прорисовкой любого объекта. Обычно он используется для того, чтобы загрузить в объект содержимое Memo-поля или картинки из БД. Пример обработчика:

procedure TForm1.Doc1EnterRect(Memo: TStringList; View: TView);
begin
  if Memo.Count > 0 then
    if Memo[0] = '[Memo]' then
      Memo.Assign(Table1Memo)
    else if (Memo[0] = '[Picture]') and (View is TPictureView) then
     (View as TPictureView).Picture.Assign(Table1Picture);
end;

Обработчик события OnUserFunction вызывается, когда в тексте объекта обнаружена переменная или выражение, содержащее вызов функции. Функция может иметь до 3-х параметров любого типа. Пример обработчика:

procedure TForm1.Doc1UserFunction(const name: string; p1, p2, p3: Variant;
 var val: string);
var
  d: Double;
begin
 if name <> 'CRAZYMONEY' then exit;
 d := Parser.Calc(p1);
 // для использования парсера необходимо включить в список uses
 // FR_Pars.pas
 if d > 10000 then
   val := '''' + FormatFloat('#,##0.00',d) + ' - нифига себе!' + ''''
 else
   val := '''' + FormatFloat('#,##0.00',d) + '''';
 // результат - это _форматированная_ строка, поэтому заключаем в кавычки
end;

 Для навигации по источникам данных, не имеющим отношения к БД (например, массивам), используется компонент TfrUserDataset, расположенный на палитре компонентов FR. Он генерирует события OnFirst, OnNext, OnCheckEOF, назначение которых, думаю, понятно. Пример использования см. в демо, отчет с переменным количеством столбцов (cross-tab).


ASoft   (2007-03-02 12:08:00) [3]

с приведением типов, ессно


ASoft   (2007-03-02 12:07:00) [4]


> Такое ощущение, там все про базы данных.

это основная функция FR - работа с базами данных :).
Простая передача данных в мемо поля FR перед show, к примеру,
fr.Pages[0].FindObject('memo1').Memo.Text:=<var variant>


dzhagr   (2007-03-02 11:38:00) [5]

Ну, если честно, то не всю. Вот, например, читаю fruserdataset, там вообще ничего нет про передачу. Такое ощущение, там все про базы данных.


DrPass   (2007-03-02 01:25:00) [6]


> Каким вообще образом устанавливается связь переменных формы
> с отчетом?

По-разному. Например, через событие OnGetValue. Непохоже, что ты читал документацию...


dzhagr   (2007-03-01 21:25:00) [7]

Вобщем оставил я в frreport в форме. Заполняю отчет при помощи fruserdataset. Вот тут проблема. Каким вообще образом устанавливается связь переменных формы с отчетом?


ASoft   (2007-03-01 03:40:00) [8]


> А что еще нужно сделать чтоб работала?

надо отчет заполнить :)


dzhagr   (2007-02-28 23:35:00) [9]

Вот проблема, когда из файла. Я так понял, надо storeindfm оставить false. В дизайнере открыть файл .rfr. А что еще нужно сделать чтоб работала?


easy   (2007-02-28 23:02:00) [10]

перед showreport этот report надо туда загрузить. либо из файла, либо в dfm -e его сохранять, тогда он сам подгрузится


dzhagr   (2007-02-28 22:07:00) [11]

да че-то не получается.


easy   (2007-02-28 20:49:00) [12]

с фастрепортом идёт подробнейший мануал на русском


Наверх

Титульная страница Поиск, карта сайта Написать письмо