Текущий архив: 2007.03.25;
Скачать: CL | DM;
Вниз
FastReport Найти похожие ветки
← →
dzhagr © (2007-02-28 18:59) [0]Подскажите, пожалуйста, что нужно, чтобы запустить самый простой отчет. Я расположил на форме frReport1: TfrReport; Вызываю процедуру frreport1.showreport; ничего не происходит. Может надо что-то еще? Или в чем еще может быть ошибка? Спасибо.
← →
easy © (2007-02-28 20:49) [1]с фастрепортом идёт подробнейший мануал на русском
← →
dzhagr © (2007-02-28 22:07) [2]да че-то не получается.
← →
easy © (2007-02-28 23:02) [3]перед showreport этот report надо туда загрузить. либо из файла, либо в dfm -e его сохранять, тогда он сам подгрузится
← →
dzhagr © (2007-02-28 23:35) [4]Вот проблема, когда из файла. Я так понял, надо storeindfm оставить false. В дизайнере открыть файл .rfr. А что еще нужно сделать чтоб работала?
← →
ASoft (2007-03-01 03:40) [5]
> А что еще нужно сделать чтоб работала?
надо отчет заполнить :)
← →
dzhagr © (2007-03-01 21:25) [6]Вобщем оставил я в frreport в форме. Заполняю отчет при помощи fruserdataset. Вот тут проблема. Каким вообще образом устанавливается связь переменных формы с отчетом?
← →
DrPass © (2007-03-02 01:25) [7]
> Каким вообще образом устанавливается связь переменных формы
> с отчетом?
По-разному. Например, через событие OnGetValue. Непохоже, что ты читал документацию...
← →
dzhagr © (2007-03-02 11:38) [8]Ну, если честно, то не всю. Вот, например, читаю fruserdataset, там вообще ничего нет про передачу. Такое ощущение, там все про базы данных.
← →
ASoft (2007-03-02 12:07) [9]
> Такое ощущение, там все про базы данных.
это основная функция FR - работа с базами данных :).
Простая передача данных в мемо поля FR перед show, к примеру,fr.Pages[0].FindObject("memo1").Memo.Text:=<var variant>
← →
ASoft (2007-03-02 12:08) [10]с приведением типов, ессно
← →
easy © (2007-03-02 15:52) [11]
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).
← →
dzhagr © (2007-03-02 18:23) [12]Спасибо огромнейшее!!! Буду спокойно спать))
Страницы: 1 вся ветка
Текущий архив: 2007.03.25;
Скачать: CL | DM;
Память: 0.48 MB
Время: 0.029 c