FastReports

Материал из RSB-Doc
Перейти к: навигация, поиск

Генератор отчетов

Содержание

Установка просмотрщика и демоверсии FastReports

FastReport COM/ActiveX (ранее называлась FastReport Studio) является COM объектом.

Поставляется в двух вариантах:

На одном компьютере, в одно время может использоваться только один вариант поставки (так как может быть зарегистрирован только один COM объект с одним идентификатором).

Версии

Версии 4.6.24 и 4.9.8 обратно совместимы. То есть шаблон созданный в старой версии может обрабатываться и редактироваться новой версией, но наоборот работать не будет (изменена кодировка шаблонов новой версии).

Полнофункциональная версия

Требует активации, без нее работает в демо режиме. В демо режиме есть только ограничение по пред просмотру в 4 страницы и колонтитул "Не зарегистрированная версия".

Пользовательская библиотека (нет дизайнера)

Активация не требуется, входит в состав дистрибутива RS-Balance3

Переключение между разными поставками и версиями

Если на компьютере есть разные версии и/или поставки FastReport, достаточно просто зарегистрировать нужную вам библиотеку (COM объект):

regsvr32 <Путь к библиотеке нужной версии и поставке>\FastReport3.dll

Проблемы при использовании

Перед регистрацией библиотеки, желательно "разрегистрировать" активную.

Пример вызова FastReports из печатной формы отчета

Пример устарел! Надо заменить! --Knurov 16:13, 6 декабря 2007 (MSK)

cpwin;
macro RunPrintForm(_sobjectName, _oInputParams, _bPreview)
	var Path = "";	// Путь 
	var strDate:Date;

	/*[ Создание объекта FastReport ] *******************/
	var rpt = GenObject("ActiveX\\FastReport.TfrxReport");

	/*[ Чтение общесистемной настройки в которой указан путь к отчету ] *******************/
	if (not GetSystemSetting("Общий раздел\\FR\\Path",@Path))
		return;
	end;

	/*[ Загрузка отчета ] *******************/
	var FFName = Path + "\\COrptPrintFormWM_loyal.fr3";
	rpt.LoadReportFromFile(FFName);

	/*[ Установка переменных FastReport из формы инициализации отчета] *******************/
	rpt.SetVariable("Ware", string(MakeValue(_oInputParams.GetValue("Номенклатура"),"")));	// ID Номенклатуры

	strdate = _oInputParams.GetValue("Период с"); // Дата начала
	rpt.SetVariable("BeginDate", strdate);

	strdate = _oInputParams.GetValue("Период по"); // Дата конца
	rpt.SetVariable("EndDate", strdate);

	/*[ Вызов отчета ] *******************/
	if(true == _bPreview)
	 rpt.ShowReport();	// Предворительный просмотор
	else
	 rpt.PrintReport();	// Сразу на печать
	end;

end;

Обнаруженные проблемы

Недоступны свойства и методы

Недоступны свойства и методы у COM-объектов FastReport при работе из скриптовых языков RSL и VBS

'
'	Пример обращения к ConnectionString на VBS
'	Тоже происходит при попытки обработать события OnClickObject , событие 
'	приходит, но свойства объекта Sender недоступны
'

dim database_obj, frx
set frx = createObject("FastReport.TfrxReport")
'set database_obj = createObject("FastReport.TfrxADODatabase") ' Здесь объект создается, все  свойства доступны

frx.LoadReportFromFile("V:\Loyal\CLIENT\TEMPLATE\testvbs.fr3")

set database_obj = frx.FindObject("ADODatabase11") ' Здесь объект создается, свойства не  доступны

If database_obj Is Nothing Then 
	MsgBox "ADO connection object 'ADODatabase1' not found" 
else if
	msgbox database_obj.ConnectionString
End If

Не устанавливается строковое значение переменной

Проблема решена через обертку которая преобразовывает кавычки !!!! При вызове метода SetVariable COM-объекта FastReport.TfrxReport возникает ошибка, если в переменную передать строку без кавычек (то есть строка должна содержать в начале и в конце кавычку) Пример:

frx = GenObject("ActiveX\\FastReport.TfrxReport");
frx.LoadReportFromFile("V:\\Loyal\\CLIENT\\TEMPLATE\\testvbs.fr3");

/* Не правильно, передаваемая строка не содержит кавычек **************************/
// frx.SetVariable("StrVal", "Простая строка");

/* Правильно, передаваемая строка содержит кавычки ********************************/
frx.SetVariable("StrVal", "\"Простая строка\"");

frx.ShowReport();

Список примеров

Пример отчета на FastReport работающего напрямую с MSSQL

Список документации

Личные инструменты
Пространства имён
Варианты
Действия
Навигация
Для разработки
Инструменты