Skip to Content
0
Former Member
Dec 07, 2009 at 12:15 PM

programmatically create report

72 Views

Is it possible to programmatically create a report without a database definition and then add a fake table structure to match a resultset structure?

Lets say i have a join query of two tables such as "select Field1, Field2 from Table1 inner join Table2 on Table1.Key=Table2.key"

i'd like to do something like that


myResulSet=stmt.executeQuery("select Field1, Field2 from Table1 inner join Table2 on Table1.Key=Table2.key");

ReportClientDocument RCD = new ReportClientDocument();
RCD.setReportAppServer(ReportClientDocument.inprocConnectionString);

//Opens a saved blank report
RCD.open("/report/blank_report.rpt", 0);

// Grab the resultfield controller
ResultFieldController RFC = RCD.getDataDefController().getResultFieldController();

Fields F=new Fields();

DBField F1=new DBField();
DBField F2=new DBField();
		
F1.setTableAlias("Table1");
F2.setTableAlias("Table1");
		
F1.setName("Field1");
F2.setName("Field2");
				
F.add(F1);
F.add(F2);

//add fields to the report
RFC.add(Fields);

String tableAlias = RCD.getDatabaseController().getDatabase().getTables().getTable(0).getAlias();
RCD.getDatabaseController().setDataSource(myResulSet, tableAlias , tableAlias);

Has anyone ever done something like this?

Edited by: dehian2 on Dec 7, 2009 2:10 PM