Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / параметры для отчетов birt ПРОГРАММНО - в report engine api / 9 сообщений из 9, страница 1 из 1
22.05.2006, 15:44
    #33742934
nonsense_name
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
параметры для отчетов birt ПРОГРАММНО - в report engine api
Не пойму, как программно передавать готовому файлу отчетов параметры.
В webapp параметр creator передается как
Код: plaintext
http://localhost: 8080 /birt-viewer/run?__report=Report\ 202 .rptdesign&creator=ivanov
,
а запрос в dataset выглядит, как
Код: plaintext
select * from table_name where user_name=?
То ись ? и есть передаваемый параметр. А программно как? В теле нижеследующего метода?
Кто-нить использовал классы \birt-runtime-2_0_1\Report Engine,
как это указано в http://]http://www.eclipse.org/birt/phoenix/deploy/reportEngineAPI.php
, чтоб программно генерить по готовому sample_report.rptdesign файлы отчетов HTML,PDF..

Собсно, код

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
 static   void  executeReport(String report_design,String out_file)  throws  EngineException
	{
		//Engine Configuration - set and get temp dir, BIRT home, Servlet context
		String engine_home="C:/birt-runtime-2_0_1/Report Engine";
		EngineConfig config =  new  EngineConfig();
		config.setEngineHome(engine_home);

		//Create the report engine
		ReportEngine engine =  null ;
		 try  {
			engine =  new  ReportEngine(config);
		}  catch  (RuntimeException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

		//Open a report design - use design to modify design, retrieve embedded images etc.
		IReportRunnable design = engine.openReportDesign(report_design);
 
		design.
		
		
		//Create task to run the report - use the task to execute and run the report,
		IRunAndRenderTask task = engine.createRunAndRenderTask(design);

		IDataPreviewTask task1 = engine.createDataPreviewTask(design); 	
		
		//Set Render context to handle url and image locataions
		HTMLRenderContext renderContext =  new  HTMLRenderContext();
		renderContext.setImageDirectory("image");
		HashMap contextMap =  new  HashMap();
		contextMap.put( EngineConstants.APPCONTEXT_HTML_RENDER_CONTEXT, renderContext );
		task.setAppContext( contextMap );

		//Set rendering options - such as file or stream output,
		//output format, whether it is embeddable, etc
		HTMLRenderOption options =  new  HTMLRenderOption();

//		options.setOutputStream(System.out);
		options.setOutputFileName(out_file);
		options.setOutputFormat("html");
		task.setRenderOption(options);

		//run the report and destroy the engine
		 try  {
			task.run();
		}  catch  (EngineException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		engine.destroy();
	}
прекрасно пашет, и даже создает out_file по переданному report_design. Проблема в том, что я не знаю, как обрабатывать параметры программно, если они есть, т.е. внутри этого метода...............................
...
Рейтинг: 0 / 0
24.05.2006, 12:51
    #33748143
may_be
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
параметры для отчетов birt ПРОГРАММНО - в report engine api
такая же проблема - как программно задать условие по которому будут выбираться данные.
...
Рейтинг: 0 / 0
25.05.2006, 11:31
    #33750720
may_be
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
параметры для отчетов birt ПРОГРАММНО - в report engine api
в результате сделали немного по другому:

при создании формы отчета просто объявляется Report Parameter.
потом при выборе значений пишешь условия, с учетом параметров.
затем значение параметра передаётся на страницу при вызове отчета.
...
Рейтинг: 0 / 0
26.05.2006, 10:14
    #33753303
nonsense_name
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
параметры для отчетов birt ПРОГРАММНО - в report engine api
Если я тебя понял, то вы объявили параметры в .rtpdesign, и передаете их при вызове отчета из вебаппа.. Так вопрос-то был - как это сделать программно, т.е. в классе, не используя tomcat/webapp/birt-viewer, а используя ReportEngineAPI.
...
Рейтинг: 0 / 0
31.05.2006, 14:50
    #33763550
may_be
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
параметры для отчетов birt ПРОГРАММНО - в report engine api
вот тут про то как программно их передавать

но через параметры Data Set - у меня ничего не получилось.

получилось когда объявляешь параметр в Report Parameter в .rtpdesign, пишешь для Data Set скрипт(для beforeOpen()), в котором вместо "?" пишешь params["имя параметра"].
потом в коде в Map заносишь пару - "имя параметра - значение" в метод setParameterValues() для объекта класса IRunAndRenderTask передаёim этот Map и всё выбирается как надо.:)
...
Рейтинг: 0 / 0
31.05.2006, 15:25
    #33763667
N/A
N/A
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
параметры для отчетов birt ПРОГРАММНО - в report engine api
У меня это выглядит так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
...
ReportEngine engine =  null ;
...
engine =  new  ReportEngine(config);
IRunAndRenderTask task = engine.createRunAndRenderTask(report);
...
task.setParameterValue(paramName, textValue);
...
task.run();
...
engine.destroy();

Это то, что Вы просили?
...
Рейтинг: 0 / 0
18.10.2006, 19:05
    #34064838
nonsense_name
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
параметры для отчетов birt ПРОГРАММНО - в report engine api
Спасибо огромное :) возможно, это поможет
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
15.02.2012, 09:04
    #37662285
параметры для отчетов birt ПРОГРАММНО - в report engine api
nonsense_name,
Что должно лежать в "C:/birt-runtime-2_0_1/Report Engine";


У меня выдает ошибку
descriptionThe server encountered an internal error () that prevented it from fulfilling this request.
exception
java.lang.NoClassDefFoundError: org/eclipse/core/runtime/CoreException

На engine = new ReportEngine(config);
Использую birt-runtime-3_7_1

Причем в самый первый раз, файлик создался нормально, после этого начало отшибать.
Что не так?
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
24.12.2014, 15:50
    #38841826
barsuk2010
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
параметры для отчетов birt ПРОГРАММНО - в report engine api
у меня так работает
в процедуру передаю массивы названий и типов полей и параметров

void buildDataSet( ArrayList< String > cols, ArrayList< String > typecols, ElementFactory designFactory, ReportDesignHandle designHandle, String qry, String[] paramname, String[] paramvalues, String[] paramtype ) throws SemanticException {

OdaDataSetHandle dsHandle = designFactory.newOdaDataSet( "ds",
"org.eclipse.birt.report.data.oda.jdbc.JdbcSelectDataSet" );
dsHandle.setDataSource( "Data Source" );
// String par = "156";
if ( !(paramname == null))
{
for( int i=0; i < paramname.length; i++)
{
OdaDataSetParameter odaDataSetParameter=StructureFactory.createOdaDataSetParameter();
odaDataSetParameter.setName("param" + String.valueOf(i));

//Linked to report parameter
//odaDataSetParameter.setParamName("link to report");

if (paramtype[i].equals("Дата"))
{
odaDataSetParameter.setDataType("date");
odaDataSetParameter.setNativeDataType(93);
}
else if (paramtype[i].equals("Число"))
{
odaDataSetParameter.setDataType("integer");
odaDataSetParameter.setNativeDataType(4);
}
else
{
odaDataSetParameter.setDataType("string");
}
//odaDataSetParameter.setDataType("date"); //DesignChoiceConstants.PARAM_TYPE_INTEGER "date-time"
//odaDataSetParameter.setNativeDataType(93);
odaDataSetParameter.setPosition(i+1);
odaDataSetParameter.setIsOptional(true);
odaDataSetParameter.setAllowNull(false);
odaDataSetParameter.setIsInput(true);
//odaDataSetParameter.setExpressionProperty("DefaultValue",ExpressionType.CONSTANT);
if (paramtype[i].equals("Число")) // || paramtype[i].equals("Текст")
{
odaDataSetParameter.setDefaultValue(paramvalues[i]);
}
else
{
odaDataSetParameter.setDefaultValue("\""+ paramvalues[i] +"\""); //par paramvalues[i]
}


PropertyHandle odaDataSetParameterProp = dsHandle.getPropertyHandle(OdaDataSetHandle.PARAMETERS_PROP);
odaDataSetParameterProp.addItem(odaDataSetParameter);
}

// String qry = "Select first 100 id, firmid, mark from drink where id = ?";
for( int i=0; i < paramname.length; i++)
{
qry = qry.replace(":" + paramname[i], "?");
}
}
dsHandle.setQueryText( qry );

for( int i=0; i < cols.size(); i++)
{
ColumnHint resultHint = new ColumnHint();
resultHint.setProperty(ColumnHint.COLUMN_NAME_MEMBER, "NAMEFIELD"+(String)cols.get(i));
resultHint.setProperty("alias", "NAMEFIELD"+(String)cols.get(i));
dsHandle.getPropertyHandle(OdaDataSetHandle.COLUMN_HINTS_PROP).addItem(resultHint);
OdaResultSetColumn column = StructureFactory.createOdaResultSetColumn( );
column.setPosition(i+1);
column.setNativeName( "NAMEFIELD"+(String)cols.get(i) );
column.setColumnName( "NAMEFIELD"+(String)cols.get(i) );

if (typecols.get(i).equals("Дата"))
{
column.setDataType("date");
//odaDataSetParameter.setNativeDataType(93);
}
else if (typecols.get(i).equals("Число"))
{
column.setDataType("float");
// odaDataSetParameter.setNativeDataType(4);
}
else
{
column.setDataType("string");
}
OdaResultSetColumnHandle columnHandle = (OdaResultSetColumnHandle)dsHandle.getPropertyHandle( OdaDataSetHandle.RESULT_SET_PROP ).addItem(column );

//CellHandle cell = (CellHandle) tabledetail.getCells( ).get( i );
//DataItemHandle data = designFactory.newDataItem( "data_"+(String)cols.get(i) );
//data.setResultSetColumn( (String)cols.get(i));
//cell.getContent( ).add( data );
//cell.setStyleName("CellHeader");
}

//dsHandle.paramBindingsIterator().

designHandle.getDataSets( ).add( dsHandle );



}

}
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / параметры для отчетов birt ПРОГРАММНО - в report engine api / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]