Изучаю FastReport, нужна помощьч

Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду

Ответить
Dr_Grizzly
Сообщения: 406
Зарегистрирован: 13 сен 2004, 12:05
Откуда: Курган
Контактная информация:

14 май 2007, 08:07

Всем привет! Поставил себе Фастрепор 2.53, нарисовал формочку, и хочу ее заполнить не из таблицы, а из формы. Как я понял там есть библиотека переменных, я создал переменную, бросил ее на форму. Щелкаю предварительный просмотр форма показывается, только без значений. Теперь из кода программы хочу заполнить данными переменную, но не знаю как? Предполагаю что где-то здесь frReport1.Dictionary. а вот чего дальне не могу найти.

Вторая проблема не могу заставить открыться отчет из программы.
Вот такой код использую
If frReport1.PrepareReport then
frReport1.ShowReport;

Какое-то окно маргнет быстро и ничего больше не происходит, опять же предполагаю, что это окно подготовки отчета.
Чем проще - тем оригинальней, а значит гениально, т.к. все гениальное - просто! ;) Да! Кстати! Ctrl+V реально вставляет!!! ХDD
Dr_Grizzly
Сообщения: 406
Зарегистрирован: 13 сен 2004, 12:05
Откуда: Курган
Контактная информация:

14 май 2007, 08:29

Так, похоже чуток начал разбираться, чтобы вывести отчет, его нужно сохранить в файл, потом перед открытием отчета его загружать

frReport1.LoadFromFile('C:\Program Files\Borland\Delphi6\Projects\Untitled1.frf');
If frReport1.PrepareReport then
frReport1.ShowReport;

А чтобы присвоить к переменной значение нужно в коде написать следующее
frReport1.Dictionary.Variables.Value[1]:='1111';

Но, тут бы хотелось обращаться к переменной по ее имени, а не по индексу в списке...
Чем проще - тем оригинальней, а значит гениально, т.к. все гениальное - просто! ;) Да! Кстати! Ctrl+V реально вставляет!!! ХDD
Dr_Grizzly
Сообщения: 406
Зарегистрирован: 13 сен 2004, 12:05
Откуда: Курган
Контактная информация:

14 май 2007, 14:32

Вот проблемка, не могу присвоить переменной текст! Цифры присваиваются, а строки нет... что не так?

frReport1.Dictionary.Variables.Variable['Сумма_прописью']:=Edit25.Text;
frReport1.Dictionary.Variables.Variable['Фирма.ИНН']:=Edit8.Text;

Причем вот во втором случае все нормально, а в первом пишет неизвестный идентификатор 'Пятьсот'.

Мне нужно закидывать данные из Edit и Memo в переменные, все что цыфры - работает, а все что буквы нет. :(
Чем проще - тем оригинальней, а значит гениально, т.к. все гениальное - просто! ;) Да! Кстати! Ctrl+V реально вставляет!!! ХDD
Аватара пользователя
Naeel Maqsudov
Сообщения: 2551
Зарегистрирован: 20 фев 2004, 19:17
Откуда: Moscow, Russia
Контактная информация:

15 май 2007, 00:56

&quot писал(а):чтобы вывести отчет, его нужно сохранить в файл
Не обязательно. Если хотите, чтобы то что разрабатывается в DesignTime так сказать "вкомпилировалось" в EXE, то свойство StoreInDFM установите в True.
&quot писал(а):пишет неизвестный идентификатор 'Пятьсот'.
Если переменной присваивается текстовая константа, то она должна быть заключена в одинарные кавычки. Что-то типа этого:
frReport1.Dictionary.Variables.Variable['Сумма_прописью']:='''Пятьсот тридцать два''';
Dr_Grizzly
Сообщения: 406
Зарегистрирован: 13 сен 2004, 12:05
Откуда: Курган
Контактная информация:

22 май 2007, 09:12

Еще вопрос: как использовать функцию Count? В отчете сделал два банда, мастер детаил и мастер футтер, в мастере футтер кинул мемо и задал ей [COUNT(MasterData1)] все посчитала. А вот как в мастере данных сделать чтоб шло по порядку нумерация строк?

Еще одна штука, у меня выводится в отчете поля (ФИО,р/с,сумма кредита,срок кредита) как сделать, если сумма кредита равна 0 то не выводить всю строку?

Тут же, как посчитать сумму кредита у тех ФИО срок который равен 5 лет?

Мне нужны хотябы примеры подобного, а там уже соображу как к себе приковырять.
Чем проще - тем оригинальней, а значит гениально, т.к. все гениальное - просто! ;) Да! Кстати! Ctrl+V реально вставляет!!! ХDD
Dr_Grizzly
Сообщения: 406
Зарегистрирован: 13 сен 2004, 12:05
Откуда: Курган
Контактная информация:

03 июн 2007, 08:56

&quot писал(а):Тут же, как посчитать сумму кредита у тех ФИО срок который равен 5 лет?
т.е. в поле srok имеются значения либо 5 либо 2.
Чем проще - тем оригинальней, а значит гениально, т.к. все гениальное - просто! ;) Да! Кстати! Ctrl+V реально вставляет!!! ХDD
Лелик_1044
Сообщения: 339
Зарегистрирован: 22 ноя 2004, 19:15
Откуда: Минск
Контактная информация:

03 июн 2007, 11:37

procedure TfrmNagruzka.frxReport1GetValue(const VarName: String;
var Value: Variant);
begin
if CompareText(VarName,'MemoRasp')=0 then Value:=ElLabelRasp.Caption;
end;

На отчет поставь надпись с [MemoRasp]
Просто набрать исходники может и любая обезьяна, а придумать и отладить не каждый человек.
Ответить