Home » Archived » BIRT » HTML/PDF does not show up
HTML/PDF does not show up [message #71331] |
Fri, 02 September 2005 10:37  |
Eclipse User |
|
|
|
Originally posted by: Jenny.xxx.com
Hello,
I have run the servlet engine API.I have hardcoded the report design in
it[i gave the physical location - URL] . RIght now iam not passing any
parameters but iam just trying to open the desing in the browser when the
tomcat server runs.It is just downloading the page and trying to save it
in my local drive.But i want to open it in the browser instead as html or
PDF.
Appreciate help
Jen
INFO: building formatting object tree
Sep 2, 2005 9:22:35 AM org.apache.avalon.framework.logger.Jdk14Logger info
INFO: setting up fonts
Sep 2, 2005 9:22:35 AM org.apache.avalon.framework.logger.Jdk14Logger error
SEVERE: property - "text-transform" is not implemented yet.
Sep 2, 2005 9:22:35 AM org.apache.avalon.framework.logger.Jdk14Logger error
SEVERE: Error in letter-spacing property value 'normal':
org.apache.fop.fo.expr.PropertyException: No conversion defined
Sep 2, 2005 9:22:35 AM org.apache.avalon.framework.logger.Jdk14Logger error
SEVERE: property - "word-spacing" is not implemented yet.
Sep 2, 2005 9:22:35 AM org.apache.avalon.framework.logger.Jdk14Logger error
SEVERE: property - "text-transform" is not implemented yet.
Sep 2, 2005 9:22:35 AM org.apache.avalon.framework.logger.Jdk14Logger error
SEVERE: Error in letter-spacing property value 'normal':
org.apache.fop.fo.expr.PropertyException: No conversion defined
Sep 2, 2005 9:22:35 AM org.apache.avalon.framework.logger.Jdk14Logger error
SEVERE: property - "word-spacing" is not implemented yet.
Sep 2, 2005 9:22:35 AM org.apache.avalon.framework.logger.Jdk14Logger info
INFO: [1]
Sep 2, 2005 9:22:36 AM org.apache.avalon.framework.logger.Jdk14Logger info
INFO: Parsing of document complete, stopping renderer
Sep 2, 2005 9:22:36 AM org.eclipse.birt.data.engine.impl.DataEngineImpl
shutdown
INFO: Data engine shuts down
|
|
|
Re: HTML/PDF does not show up [message #71728 is a reply to message #71331] |
Fri, 02 September 2005 16:42   |
Eclipse User |
|
|
|
Originally posted by: Jenny.xxxxx.com
Hello Guys,
Here is the stuff on the server.....It is not displaying the images of
charts on the web browser.
INFO: Server startup in 44023 ms
Sep 2, 2005 3:33:50 PM org.eclipse.birt.core.util.BirtTimer logTimeTaken
INFO: Engine startup takes 7010 Milliseconds.
Sep 2, 2005 3:34:09 PM org.eclipse.birt.data.engine.impl.DataEngineImpl
<init>
INFO: Data Engine starts up
line 1 column 1 - Warning: inserting missing 'title' element
line 1 column 5 - Warning: <center> isn't allowed in <h3> elements
line 1 column 47 - Warning: replacing unexpected </b> by </u>
line 1 column 51 - Warning: replacing unexpected </u> by </b>
line 1 column 55 - Warning: discarding unexpected </center>
[INFO]: getProperty(...) - chart.instance
[INFO]: ChartReportItemQueryImpl: getReportQueries(...) - start
[INFO]: ChartReportItemQueryImpl: getReportQueries(...) - end
[INFO]: getProperty(...) - chart.instance
[INFO]: ChartReportItemQueryImpl: getReportQueries(...) - start
[INFO]: ChartReportItemQueryImpl: getReportQueries(...) - end
Sep 2, 2005 3:34:34 PM
org.eclipse.birt.report.engine.content.impl.MasterPageConten t
initSimpleMasterPage
INFO: The property HeaderHeight is not set. Use Default 1 cm.
Sep 2, 2005 3:34:34 PM
org.eclipse.birt.report.engine.content.impl.MasterPageConten t
initSimpleMasterPage
INFO: The property FooterHeight is not set. Use default 1 cm.
[INFO]: getProperty(...) - chart.instance
Sep 2, 2005 3:34:37 PM
org.eclipse.birt.report.data.oda.jdbc.JDBCDriverManager
loadDriverExtensions
INFO: Found JDBC driverinfo extension:
driverClass=sun.jdbc.odbc.JdbcOdbcDriver, connectionFactory=null
Sep 2, 2005 3:34:37 PM
org.eclipse.birt.report.data.oda.jdbc.JDBCDriverManager
loadDriverExtensions
INFO: Found JDBC driverinfo extension:
driverClass=org.apache.derby.jdbc.EmbeddedDriver, connectionFactory=null
Sep 2, 2005 3:34:37 PM
org.eclipse.birt.report.data.oda.jdbc.JDBCDriverManager
loadAndRegisterDriver
INFO: Loading JDBC driver class: net.sourceforge.jtds.jdbc.Driver
Sep 2, 2005 3:34:37 PM
org.eclipse.birt.report.data.oda.jdbc.JDBCDriverManager$Driv erClassLoader
getDriverHomeDir
INFO: JDBCDriverManager: drivers directory location:
C:\iopen\jakarta-tomcat-5.5.9\webapps\birt-viewer\WEB-INF\pl ugins\org.eclipse.birt.report.data.oda.jdbc\drivers
Sep 2, 2005 3:34:37 PM
org.eclipse.birt.report.data.oda.jdbc.JDBCDriverManager$Driv erClassLoader
refreshURLs
INFO: JDBCDriverManager: found JAR file jtds-1.0.3.jar.
URL=file:C:\iopen\jakarta-tomcat-5.5.9\webapps\birt-viewer\W EB-INF\plugins\org.eclipse.birt.report.data.oda.jdbc\drivers \jtds-1.0.3.jar
[INFO]: ChartReportItemGenerationImpl: onRowSets(...) - start
2004-05-01 00:00:00.0, 2000.0000,
2004-06-01 00:00:00.0, 8200.0000,
2004-07-01 00:00:00.0, 4000.0000,
2004-08-01 00:00:00.0, 3900.0000,
2004-09-01 00:00:00.0, 2100.0000,
2004-10-01 00:00:00.0, 800.0000,
2004-11-01 00:00:00.0, 1100.0000,
2004-12-01 00:00:00.0, 10000.0000,
2005-01-01 00:00:00.0, 1200.0000,
2005-02-01 00:00:00.0, 3500.0000,
2005-03-01 00:00:00.0, 1300.0000,
2005-04-01 00:00:00.0, 1600.0000,
2005-05-01 00:00:00.0, 1800.0000,
[INFO]: (ECLIPSE-ENV) Creating dsp
org.eclipse.birt.chart.datafeed.DataSetProcessorImpl
[INFO]: (ECLIPSE-ENV) Creating dsp
org.eclipse.birt.chart.datafeed.DataSetProcessorImpl
[INFO]: ChartReportItemPresentationImpl: onRowSets(...) - building chart
[INFO]: Writing to PNG file at
C:\iopen\jakarta-tomcat-5.5.9\Temp\chart61950.PNG
[INFO]: SWING Display Server: Sun Microsystems Inc. v1.4.2_04
[INFO]: (ECLIPSE-ENV) Creating display server ds.SWING as
org.eclipse.birt.chart.device.swing.SwingDisplayServer
[INFO]: (ECLIPSE-ENV) Creating device dv.PNG as
org.eclipse.birt.chart.device.image.PngRendererImpl
[INFO]: Presentation uses bounds
bo=org.eclipse.birt.chart.model.attribute.impl.BoundsImpl@17af46e (left:
0.0, top: 0.0, width: 500.0, height: 250.0)
[INFO]: (ECLIPSE-ENV) Creating series renderer
org.eclipse.birt.chart.render.Bar
[INFO]: Processing stacked info for axis
org.eclipse.birt.chart.model.component.impl.AxisImpl@186ed7a (type:
Linear, titlePosition: Left, gapWidth: <unset>, orientation: Vertical,
labelPosition: Left, staggered: <unset>, primaryAxis: true, categoryAxis:
<unset>, percent: false)
[INFO]: Time to compute plot (without axes) = 2,093 ms
[INFO]: ChartReportItemPresentationImpl: onRowSets(...) - rendering chart
[INFO]: Using graphics context
sun.java2d.SunGraphics2D[font=java.awt.Font[family=Dialog,na me=Dialog,style=plain,size=12],color=java.awt.Color[r=255,g= 255,b=255]]
[INFO]: org.eclipse.birt.chart.render.EmptyWithAxes: renderSeries() [1/2]
[INFO]: org.eclipse.birt.chart.render.Bar: renderSeries() [2/2]
[INFO]: Time to render everything = 1,783 ms
[INFO]: Using {0} image writer
{1}pngcom.sun.imageio.plugins.png.PNGImageWriter
[INFO]: ChartReportItemPresentationImpl: onRowSets(...) - end
[INFO]: ChartReportItemPresentationImpl: finish(...) - start
[INFO]: Successfully deleted temporary PNG file created at
C:\iopen\jakarta-tomcat-5.5.9\Temp\chart61950.PNG
[INFO]: ChartReportItemPresentationImpl: finish(...) - end
[INFO]: getProperty(...) - chart.instance
[INFO]: ChartReportItemGenerationImpl: onRowSets(...) - start
Dorsey , 9,
Trailmobile , 14,
Warranty, 17,
Great Dane, 121,
Utility, 211,
[INFO]: (ECLIPSE-ENV) Creating dsp
org.eclipse.birt.chart.datafeed.DataSetProcessorImpl
[INFO]: (ECLIPSE-ENV) Creating dsp
org.eclipse.birt.chart.datafeed.DataSetProcessorImpl
[INFO]: ChartReportItemPresentationImpl: onRowSets(...) - building chart
[INFO]: Writing to PNG file at
C:\iopen\jakarta-tomcat-5.5.9\Temp\chart61951.PNG
[INFO]: SWING Display Server: Sun Microsystems Inc. v1.4.2_04
[INFO]: (ECLIPSE-ENV) Creating display server ds.SWING as
org.eclipse.birt.chart.device.swing.SwingDisplayServer
[INFO]: (ECLIPSE-ENV) Creating device dv.PNG as
org.eclipse.birt.chart.device.image.PngRendererImpl
[INFO]: Presentation uses bounds
bo=org.eclipse.birt.chart.model.attribute.impl.BoundsImpl@b049a (left:
0.0, top: 0.0, width: 500.0, height: 250.0)
[INFO]: (ECLIPSE-ENV) Creating series renderer
org.eclipse.birt.chart.render.Bar
[INFO]: Processing stacked info for axis
org.eclipse.birt.chart.model.component.impl.AxisImpl@96e599 (type: Linear,
titlePosition: Left, gapWidth: <unset>, orientation: Vertical,
labelPosition: Left, staggered: <unset>, primaryAxis: true, categoryAxis:
<unset>, percent: false)
[INFO]: Time to compute plot (without axes) = 441 ms
[INFO]: ChartReportItemPresentationImpl: onRowSets(...) - rendering chart
[INFO]: Using graphics context
sun.java2d.SunGraphics2D[font=java.awt.Font[family=Dialog,na me=Dialog,style=plain,size=12],color=java.awt.Color[r=255,g= 255,b=255]]
[INFO]: org.eclipse.birt.chart.render.EmptyWithAxes: renderSeries() [1/2]
[INFO]: org.eclipse.birt.chart.render.Bar: renderSeries() [2/2]
[INFO]: Time to render everything = 741 ms
[INFO]: Using {0} image writer
{1}pngcom.sun.imageio.plugins.png.PNGImageWriter
[INFO]: ChartReportItemPresentationImpl: onRowSets(...) - end
[INFO]: ChartReportItemPresentationImpl: finish(...) - start
[INFO]: Successfully deleted temporary PNG file created at
C:\iopen\jakarta-tomcat-5.5.9\Temp\chart61951.PNG
[INFO]: ChartReportItemPresentationImpl: finish(...) - end
Sep 2, 2005 3:35:09 PM org.eclipse.birt.data.engine.impl.DataEngineImpl
shutdown
INFO: Data engine shuts down
--------------------------------------------------------web browser
page-------
K2 Slider Failures - To Date ----> this is the heading and rest of the
page is blank. what is going on ?
Any help appreciated.
Jen
|
|
|
Servlet code - Re: HTML/PDF does not show up [message #71748 is a reply to message #71728] |
Fri, 02 September 2005 16:45   |
Eclipse User |
|
|
|
Originally posted by: Jenny.xxxxx.com
Here is my servlet
---------------Servlet----------------------
/*
* Created on Sep 2, 2005
*
* TODO To change the template for this generated file go to
* Window - Preferences - Java - Code Style - Code Templates
*/
package com.Jen;
/*
* Created on Aug 25, 2005
*
* TODO To change the template for this generated file go to
* Window - Preferences - Java - Code Style - Code Templates
*/
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Locale;
import java.util.Map;
import org.eclipse.birt.report.engine.api.EngineConfig;
import org.eclipse.birt.report.engine.api.EngineException;
import org.eclipse.birt.report.engine.api.HTMLCompleteImageHandler;
import org.eclipse.birt.report.engine.api.HTMLEmitterConfig;
import org.eclipse.birt.report.engine.api.HTMLRenderOption;
import org.eclipse.birt.report.engine.api.IGetParameterDefinitionTa sk;
import org.eclipse.birt.report.engine.api.IParameterDefnBase;
import org.eclipse.birt.report.engine.api.IParameterGroupDefn;
import org.eclipse.birt.report.engine.api.IReportRunnable;
import org.eclipse.birt.report.engine.api.IRunAndRenderTask;
import org.eclipse.birt.report.engine.api.IScalarParameterDefn;
import org.eclipse.birt.report.engine.api.ReportEngine;
import org.eclipse.birt.report.engine.api.ReportParameterConverter;
/**
* @author BinkeyDoodle
*
* TODO To change the template for this generated type comment go to
* Window - Preferences - Java - Code Style - Code Templates
*/
public class RunReport extends HttpServlet
{
private ReportEngine engine = null;
/**
* Constructor of the object.
*/
public RunReport() {
super();
}
/**
* Destruction of the servlet. <br>
*/
public void destroy()
{
super.destroy(); // Just puts "destroy" string in log
// Put your code here
engine.destroy( );
}
/**
* The doGet method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to
get.
*
* @param request the request send by the client to the server
* @param response the response send by the server to the client
* @throws ServletException if an error occurred
* @throws IOException if an error occurred
*/
public void doGet(HttpServletRequest request, HttpServletResponse
response) throws ServletException, IOException
{
response.setContentType("text/html");
response.setContentType( "text/html;charset=utf-8" ); //$NON-NLS-1$
response.setHeader( "cache-control", "no-cache" ); //$NON-NLS-1$
//$NON-NLS-2$
HashMap params = new HashMap( );
//String OrderNo = request.getParameter("OrderNumber");
//Integer i = new Integer(10100);
//params.put("OrderNumber", OrderNo);
boolean showInfo = false;
String format = HTMLRenderOption.OUTPUT_FORMAT_HTML;
//String format = HTMLRenderOption.OUTPUT_FORMAT_PDF;
String reportName =
" C:\\iopen\\jakarta-tomcat-5.5.9\\webapps\\birt-viewer\\K2Sli der.rptdesign ";
run( reportName, response, params, format, showInfo );
// Get the parameters from the request object
//out.flush();
//out.close();
}
public void run( String name, HttpServletResponse response, HashMap
params, String format, boolean showInfo )
{
// Open the report design.
IReportRunnable report = null;
try
{
report = engine.openReportDesign( name );
}
catch ( EngineException e )
{
System.err.println( "Report " + name + " not found!\n" + e );
//engine.destroy( );
return;
}
catch(Exception e)
{
System.err.println( "Report " + name + " not found!\n" + e.getMessage()
);
e.printStackTrace();
//engine.destroy( );
return;
}
// Create a task to run the report and convert the output to HTML
// or PDF.
if ( format != null )
{
parseParams( engine, report, params );
IRunAndRenderTask task = engine.createRunAndRenderTask( report );
HTMLRenderOption options = new HTMLRenderOption( );
options.setOutputFormat( format );
String output = name.replaceFirst( ".rptdesign", "." + format );
//options.setOutputFileName( output );
ServletOutputStream servletOutputStream = null;
try
{
servletOutputStream = response.getOutputStream( );
}
catch(IOException ioe){}
options.setOutputStream( servletOutputStream );
task.setRenderOption( options );
task.setParameterValues( params );
// Run the report
try
{
task.run( );
}
catch ( EngineException e1 )
{
System.err.println( "Report " + name + " run failed.\n" );
System.err.println( e1.toString( ) );
e1.printStackTrace();
// Special handle since servlet output stream has been retrieved.
// Any include and forward throws exception.
// Better to move this error handle into engine.
//String message = "<html><body><font color=\"red\">" //$NON-NLS-1$
// + htmlEncode( e1.getLocalizedMessage( ) )
// +"</font></body></html>"; //$NON-NLS-1$
//servletOutputStream.write( message.getBytes( ) );
}
}
}
/**
* This function is used to encode an ordinary string that may contain
* characters or more than one consecutive spaces for appropriate HTML
display.
*
* @param s
* @return String
*/
public static final String htmlEncode( String s )
{
String sHtmlEncoded = ""; //$NON-NLS-1$
if ( s == null )
{
return null;
}
StringBuffer sbHtmlEncoded = new StringBuffer( );
final char chrarry[] = s.toCharArray( );
for ( int i = 0; i < chrarry.length; i++ )
{
char c = chrarry[i];
switch ( c )
{
case '\t':
sbHtmlEncoded.append( "	" ); //$NON-NLS-1$
break;
case '\n':
sbHtmlEncoded.append( "<br>" ); //$NON-NLS-1$
break;
case '\r':
sbHtmlEncoded.append( " " ); //$NON-NLS-1$
break;
case ' ':
sbHtmlEncoded.append( " " ); //$NON-NLS-1$
break;
case '"':
sbHtmlEncoded.append( """ ); //$NON-NLS-1$
break;
case '\'':
sbHtmlEncoded.append( "'" ); //$NON-NLS-1$
break;
case '<':
sbHtmlEncoded.append( "<" ); //$NON-NLS-1$
break;
case '>':
sbHtmlEncoded.append( ">" ); //$NON-NLS-1$
break;
case '`':
sbHtmlEncoded.append( "`" ); //$NON-NLS-1$
break;
case '&':
sbHtmlEncoded.append( "&" ); //$NON-NLS-1$
break;
default:
sbHtmlEncoded.append( c );
}
}
sHtmlEncoded = sbHtmlEncoded.toString( );
return sHtmlEncoded;
}
/**
* The doPost method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to
post.
*
* @param request the request send by the client to the server
* @param response the response send by the server to the client
* @throws ServletException if an error occurred
* @throws IOException if an error occurred
*/
public void doPost(HttpServletRequest request, HttpServletResponse
response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01
Transitional//EN\">");
out.println("<HTML>");
out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>");
out.println(" <BODY>");
out.print(" This is ");
out.print(this.getClass());
out.println(", using the POST method");
out.println(" </BODY>");
out.println("</HTML>");
out.flush();
out.close();
}
/**
* Initialization of the servlet. <br>
*
* @throws ServletException if an error occure
*/
public void init() throws ServletException
{
// Put your code here
// The EngineConfig is used to set up engine-wide configuration
// information.
EngineConfig config = new EngineConfig( );
// The Engine home is the location of the BIRT engine runtime.
// M3 Note: Use the report engine installed as part of the BIRT web app
// used to preview reports. Alter this path to the location of your
// Eclipse installation.
//config.setEngineHome( "c://Program
Files//eclipse//plugins//org.eclipse.birt.report.viewer_0.0. 1//birt//WEB-INF "
);
config.setEngineHome(" C:\\iopen\\jakarta-tomcat-5.5.9\\webapps\\birt-viewer\\WEB-I NF ");
// HTML reports can have embedded images or charts. Set up the
configuration
// required to write these into a directory in the output directory.
// The HTMLCompleteImageHandler is one provided by BIRT for this purpose.
// Your application can create a customized version to provide
alternative
// ways to handle images.
HTMLEmitterConfig hc = new HTMLEmitterConfig( );
HTMLCompleteImageHandler imageHandler = new HTMLCompleteImageHandler( );
hc.setImageHandler( imageHandler );
config.setEmitterConfiguration( HTMLRenderOption.OUTPUT_FORMAT_HTML, hc
);
// Create the report engine itself. This engine can be used to run
// multiple reports.
engine = new ReportEngine( config );
}
/**
* Prepare the report parameters from incoming request.
*
* @param request incoming http request
* @param paramDefns collection of report parameter definitions
* @return Hash map from parameter name to its current value
*/
private void parseParams( ReportEngine engine, IReportRunnable report,
HashMap values )
{
if ( values.isEmpty( ) )
return;
IGetParameterDefinitionTask task =
engine.createGetParameterDefinitionTask( report );
Collection params = task.getParameterDefns( false );
Iterator iter = values.keySet( ).iterator( );
while ( iter.hasNext( ) )
{
String name = (String) iter.next( );
IScalarParameterDefn found = null;
Iterator i2 = params.iterator( );
while ( i2.hasNext( ) )
{
IParameterDefnBase param = (IParameterDefnBase) i2.next( );
if ( param instanceof IParameterGroupDefn )
continue;
if ( param.getName( ).equals( name ) )
{
found = (IScalarParameterDefn) param;
break;
}
}
if ( found == null )
{
System.err.println( "Parameter " + name + " not found in the report."
);
continue;
}
String value = (String) values.get( name );
ReportParameterConverter cfgConverter = new ReportParameterConverter(
"", Locale.getDefault( ) );
Object obj = cfgConverter.parse( value, found.getDataType( ) );
values.put( name, obj );
//values.put( name, value );
}
}
}
|
|
|
Re: Servlet code - Re: HTML/PDF does not show up [message #72171 is a reply to message #71748] |
Mon, 05 September 2005 19:14   |
Eclipse User |
|
|
|
Originally posted by: Jenny.xxx.com
Hello !!!
Is there no way that i can figure out what my problem is ?
I am sure it is possible for you guys are you are experienced.
Help
Jenny
Jenny wrote:
> Here is my servlet
> ---------------Servlet----------------------
> /*
> * Created on Sep 2, 2005
> *
> * TODO To change the template for this generated file go to
> * Window - Preferences - Java - Code Style - Code Templates
> */
> package com.Jen;
> /*
> * Created on Aug 25, 2005
> *
> * TODO To change the template for this generated file go to
> * Window - Preferences - Java - Code Style - Code Templates
> */
> import java.io.IOException;
> import java.io.PrintWriter;
> import javax.servlet.ServletException;
> import javax.servlet.ServletOutputStream;
> import javax.servlet.http.HttpServlet;
> import javax.servlet.http.HttpServletRequest;
> import javax.servlet.http.HttpServletResponse;
> import java.util.Collection;
> import java.util.HashMap;
> import java.util.Iterator;
> import java.util.Locale;
> import java.util.Map;
> import org.eclipse.birt.report.engine.api.EngineConfig;
> import org.eclipse.birt.report.engine.api.EngineException;
> import org.eclipse.birt.report.engine.api.HTMLCompleteImageHandler;
> import org.eclipse.birt.report.engine.api.HTMLEmitterConfig;
> import org.eclipse.birt.report.engine.api.HTMLRenderOption;
> import org.eclipse.birt.report.engine.api.IGetParameterDefinitionTa sk;
> import org.eclipse.birt.report.engine.api.IParameterDefnBase;
> import org.eclipse.birt.report.engine.api.IParameterGroupDefn;
> import org.eclipse.birt.report.engine.api.IReportRunnable;
> import org.eclipse.birt.report.engine.api.IRunAndRenderTask;
> import org.eclipse.birt.report.engine.api.IScalarParameterDefn;
> import org.eclipse.birt.report.engine.api.ReportEngine;
> import org.eclipse.birt.report.engine.api.ReportParameterConverter;
> /**
> * @author BinkeyDoodle
> *
> * TODO To change the template for this generated type comment go to
> * Window - Preferences - Java - Code Style - Code Templates
> */
> public class RunReport extends HttpServlet
> {
> private ReportEngine engine = null;
> /**
> * Constructor of the object.
> */
> public RunReport() {
> super();
> }
> /**
> * Destruction of the servlet. <br>
> */
> public void destroy()
> {
> super.destroy(); // Just puts "destroy" string in log
> // Put your code here
> engine.destroy( );
> }
> /**
> * The doGet method of the servlet. <br>
> *
> * This method is called when a form has its tag value method equals to
> get.
> *
> * @param request the request send by the client to the server
> * @param response the response send by the server to the client
> * @throws ServletException if an error occurred
> * @throws IOException if an error occurred
> */
> public void doGet(HttpServletRequest request, HttpServletResponse
> response) throws ServletException, IOException
> {
> response.setContentType("text/html");
> response.setContentType( "text/html;charset=utf-8" ); //$NON-NLS-1$
> response.setHeader( "cache-control", "no-cache" ); //$NON-NLS-1$
> //$NON-NLS-2$
> HashMap params = new HashMap( );
> //String OrderNo = request.getParameter("OrderNumber");
> //Integer i = new Integer(10100);
> //params.put("OrderNumber", OrderNo);
> boolean showInfo = false;
> String format = HTMLRenderOption.OUTPUT_FORMAT_HTML;
> //String format = HTMLRenderOption.OUTPUT_FORMAT_PDF;
> String reportName =
> " C:\iopen\jakarta-tomcat-5.5.9\webapps\birt-viewer\K2Slider.r ptdesign ";
> run( reportName, response, params, format, showInfo );
> // Get the parameters from the request object
> //out.flush();
> //out.close();
> }
> public void run( String name, HttpServletResponse response, HashMap
> params, String format, boolean showInfo )
> {
> // Open the report design.
> IReportRunnable report = null;
> try
> {
> report = engine.openReportDesign( name );
> }
> catch ( EngineException e )
> {
> System.err.println( "Report " + name + " not found!n" + e );
> //engine.destroy( );
> return;
> }
> catch(Exception e)
> {
> System.err.println( "Report " + name + " not found!n" + e.getMessage()
> );
> e.printStackTrace();
> //engine.destroy( );
> return;
> }
> // Create a task to run the report and convert the output to HTML
> // or PDF.
> if ( format != null )
> {
> parseParams( engine, report, params );
> IRunAndRenderTask task = engine.createRunAndRenderTask( report );
> HTMLRenderOption options = new HTMLRenderOption( );
> options.setOutputFormat( format );
> String output = name.replaceFirst( ".rptdesign", "." + format );
> //options.setOutputFileName( output );
> ServletOutputStream servletOutputStream = null;
> try
> {
> servletOutputStream = response.getOutputStream( );
> }
> catch(IOException ioe){}
> options.setOutputStream( servletOutputStream );
> task.setRenderOption( options );
> task.setParameterValues( params );
> // Run the report
> try
> {
> task.run( );
> }
> catch ( EngineException e1 )
> {
> System.err.println( "Report " + name + " run failed.n" );
> System.err.println( e1.toString( ) );
> e1.printStackTrace();
> // Special handle since servlet output stream has been retrieved.
> // Any include and forward throws exception.
> // Better to move this error handle into engine.
> //String message = "<html><body><font color="red">" //$NON-NLS-1$
> // + htmlEncode( e1.getLocalizedMessage( ) )
> // +"</font></body></html>"; //$NON-NLS-1$
> //servletOutputStream.write( message.getBytes( ) );
> }
> }
> }
> /**
> * This function is used to encode an ordinary string that may contain
> * characters or more than one consecutive spaces for appropriate HTML
> display.
> *
> * @param s
> * @return String
> */
> public static final String htmlEncode( String s )
> {
> String sHtmlEncoded = ""; //$NON-NLS-1$
> if ( s == null )
> {
> return null;
> }
> StringBuffer sbHtmlEncoded = new StringBuffer( );
> final char chrarry[] = s.toCharArray( );
> for ( int i = 0; i < chrarry.length; i++ )
> {
> char c = chrarry[i];
> switch ( c )
> {
> case 't':
> sbHtmlEncoded.append( "	" ); //$NON-NLS-1$
> break;
> case 'n':
> sbHtmlEncoded.append( "<br>" ); //$NON-NLS-1$
> break;
> case 'r':
> sbHtmlEncoded.append( " " ); //$NON-NLS-1$
> break;
> case ' ':
> sbHtmlEncoded.append( " " ); //$NON-NLS-1$
> break;
> case '"':
> sbHtmlEncoded.append( """ ); //$NON-NLS-1$
> break;
> case ''':
> sbHtmlEncoded.append( "'" ); //$NON-NLS-1$
> break;
> case '<':
> sbHtmlEncoded.append( "<" ); //$NON-NLS-1$
> break;
> case '>':
> sbHtmlEncoded.append( ">" ); //$NON-NLS-1$
> break;
> case '`':
> sbHtmlEncoded.append( "`" ); //$NON-NLS-1$
> break;
> case '&':
> sbHtmlEncoded.append( "&" ); //$NON-NLS-1$
> break;
> default:
> sbHtmlEncoded.append( c );
> }
> }
> sHtmlEncoded = sbHtmlEncoded.toString( );
> return sHtmlEncoded;
> }
> /**
> * The doPost method of the servlet. <br>
> *
> * This method is called when a form has its tag value method equals to
> post.
> *
> * @param request the request send by the client to the server
> * @param response the response send by the server to the client
> * @throws ServletException if an error occurred
> * @throws IOException if an error occurred
> */
> public void doPost(HttpServletRequest request, HttpServletResponse
> response)
> throws ServletException, IOException {
> response.setContentType("text/html");
> PrintWriter out = response.getWriter();
> out.println("<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01
> Transitional//EN">");
> out.println("<HTML>");
> out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>");
> out.println(" <BODY>");
> out.print(" This is ");
> out.print(this.getClass());
> out.println(", using the POST method");
> out.println(" </BODY>");
> out.println("</HTML>");
> out.flush();
> out.close();
> }
> /**
> * Initialization of the servlet. <br>
> *
> * @throws ServletException if an error occure
> */
> public void init() throws ServletException
> {
> // Put your code here
> // The EngineConfig is used to set up engine-wide configuration
> // information.
> EngineConfig config = new EngineConfig( );
> // The Engine home is the location of the BIRT engine runtime.
> // M3 Note: Use the report engine installed as part of the BIRT web app
> // used to preview reports. Alter this path to the location of your
> // Eclipse installation.
> //config.setEngineHome( "c://Program
>
Files//eclipse//plugins//org.eclipse.birt.report.viewer_0.0. 1//birt//WEB-INF "
> );
>
config.setEngineHome("C:\iopen\jakarta-tomcat-5.5.9\webapps\birt-viewer\WEB-INF ");
> // HTML reports can have embedded images or charts. Set up the
> configuration
> // required to write these into a directory in the output directory.
> // The HTMLCompleteImageHandler is one provided by BIRT for this purpose.
> // Your application can create a customized version to provide
> alternative
> // ways to handle images.
> HTMLEmitterConfig hc = new HTMLEmitterConfig( );
> HTMLCompleteImageHandler imageHandler = new HTMLCompleteImageHandler( );
> hc.setImageHandler( imageHandler );
> config.setEmitterConfiguration( HTMLRenderOption.OUTPUT_FORMAT_HTML, hc
> );
> // Create the report engine itself. This engine can be used to run
> // multiple reports.
> engine = new ReportEngine( config );
> }
> /**
> * Prepare the report parameters from incoming request.
> *
> * @param request incoming http request
> * @param paramDefns collection of report parameter definitions
> * @return Hash map from parameter name to its current value
> */
> private void parseParams( ReportEngine engine, IReportRunnable report,
> HashMap values )
> {
> if ( values.isEmpty( ) )
> return;
> IGetParameterDefinitionTask task =
> engine.createGetParameterDefinitionTask( report );
> Collection params = task.getParameterDefns( false );
> Iterator iter = values.keySet( ).iterator( );
> while ( iter.hasNext( ) )
> {
> String name = (String) iter.next( );
> IScalarParameterDefn found = null;
> Iterator i2 = params.iterator( );
> while ( i2.hasNext( ) )
> {
> IParameterDefnBase param = (IParameterDefnBase) i2.next( );
> if ( param instanceof IParameterGroupDefn )
> continue;
> if ( param.getName( ).equals( name ) )
> {
> found = (IScalarParameterDefn) param;
> break;
> }
> }
> if ( found == null )
> {
> System.err.println( "Parameter " + name + " not found in the report."
> );
> continue;
> }
> String value = (String) values.get( name );
> ReportParameterConverter cfgConverter = new ReportParameterConverter(
> "", Locale.getDefault( ) );
> Object obj = cfgConverter.parse( value, found.getDataType( ) );
> values.put( name, obj );
> //values.put( name, value );
> }
> }
> }
|
|
| |
Re: Servlet code - Re: HTML/PDF does not show up [message #72701 is a reply to message #72171] |
Thu, 08 September 2005 11:41   |
Eclipse User |
|
|
|
Originally posted by: Jenny.xxxx.com
.............
Jenny wrote:
> Hello !!!
> Is there no way that i can figure out what my problem is ?
> I am sure it is possible for you guys are you are experienced.
> Help
> Jenny
> Jenny wrote:
>> Here is my servlet
>> ---------------Servlet----------------------
>> /*
>> * Created on Sep 2, 2005
>> *
>> * TODO To change the template for this generated file go to
>> * Window - Preferences - Java - Code Style - Code Templates
>> */
>> package com.Jen;
>> /*
>> * Created on Aug 25, 2005
>> *
>> * TODO To change the template for this generated file go to
>> * Window - Preferences - Java - Code Style - Code Templates
>> */
>> import java.io.IOException;
>> import java.io.PrintWriter;
>> import javax.servlet.ServletException;
>> import javax.servlet.ServletOutputStream;
>> import javax.servlet.http.HttpServlet;
>> import javax.servlet.http.HttpServletRequest;
>> import javax.servlet.http.HttpServletResponse;
>> import java.util.Collection;
>> import java.util.HashMap;
>> import java.util.Iterator;
>> import java.util.Locale;
>> import java.util.Map;
>> import org.eclipse.birt.report.engine.api.EngineConfig;
>> import org.eclipse.birt.report.engine.api.EngineException;
>> import org.eclipse.birt.report.engine.api.HTMLCompleteImageHandler;
>> import org.eclipse.birt.report.engine.api.HTMLEmitterConfig;
>> import org.eclipse.birt.report.engine.api.HTMLRenderOption;
>> import org.eclipse.birt.report.engine.api.IGetParameterDefinitionTa sk;
>> import org.eclipse.birt.report.engine.api.IParameterDefnBase;
>> import org.eclipse.birt.report.engine.api.IParameterGroupDefn;
>> import org.eclipse.birt.report.engine.api.IReportRunnable;
>> import org.eclipse.birt.report.engine.api.IRunAndRenderTask;
>> import org.eclipse.birt.report.engine.api.IScalarParameterDefn;
>> import org.eclipse.birt.report.engine.api.ReportEngine;
>> import org.eclipse.birt.report.engine.api.ReportParameterConverter;
>> /**
>> * @author BinkeyDoodle
>> *
>> * TODO To change the template for this generated type comment go to
>> * Window - Preferences - Java - Code Style - Code Templates
>> */
>> public class RunReport extends HttpServlet
>> {
>> private ReportEngine engine = null;
>> /**
>> * Constructor of the object.
>> */
>> public RunReport() {
>> super();
>> }
>> /**
>> * Destruction of the servlet. <br>
>> */
>> public void destroy()
>> {
>> super.destroy(); // Just puts "destroy" string in log
>> // Put your code here
>> engine.destroy( );
>> }
>> /**
>> * The doGet method of the servlet. <br>
>> *
>> * This method is called when a form has its tag value method equals to
>> get.
>> *
>> * @param request the request send by the client to the server
>> * @param response the response send by the server to the client
>> * @throws ServletException if an error occurred
>> * @throws IOException if an error occurred
>> */
>> public void doGet(HttpServletRequest request, HttpServletResponse
>> response) throws ServletException, IOException
>> {
>> response.setContentType("text/html");
>> response.setContentType( "text/html;charset=utf-8" ); //$NON-NLS-1$
>> response.setHeader( "cache-control", "no-cache" ); //$NON-NLS-1$
>> //$NON-NLS-2$
>> HashMap params = new HashMap( );
>> //String OrderNo = request.getParameter("OrderNumber");
>> //Integer i = new Integer(10100);
>> //params.put("OrderNumber", OrderNo);
>> boolean showInfo = false;
>> String format = HTMLRenderOption.OUTPUT_FORMAT_HTML;
>> //String format = HTMLRenderOption.OUTPUT_FORMAT_PDF;
>> String reportName =
>> " C:iopenjakarta-tomcat-5.5.9webappsbirt-viewerK2Slider.rptdes ign ";
>> run( reportName, response, params, format, showInfo );
>> // Get the parameters from the request object
>> //out.flush();
>> //out.close();
>> }
>> public void run( String name, HttpServletResponse response, HashMap
>> params, String format, boolean showInfo )
>> {
>> // Open the report design.
>> IReportRunnable report = null;
>> try
>> {
>> report = engine.openReportDesign( name );
>> }
>> catch ( EngineException e )
>> {
>> System.err.println( "Report " + name + " not found!n" + e );
>> //engine.destroy( );
>> return;
>> }
>> catch(Exception e)
>> {
>> System.err.println( "Report " + name + " not found!n" + e.getMessage()
>> );
>> e.printStackTrace();
>> //engine.destroy( );
>> return;
>> }
>> // Create a task to run the report and convert the output to HTML
>> // or PDF.
>> if ( format != null )
>> {
>> parseParams( engine, report, params );
>> IRunAndRenderTask task = engine.createRunAndRenderTask( report );
>> HTMLRenderOption options = new HTMLRenderOption( );
>> options.setOutputFormat( format );
>> String output = name.replaceFirst( ".rptdesign", "." + format );
>> //options.setOutputFileName( output );
>> ServletOutputStream servletOutputStream = null;
>> try
>> {
>> servletOutputStream = response.getOutputStream( );
>> }
>> catch(IOException ioe){}
>> options.setOutputStream( servletOutputStream );
>> task.setRenderOption( options );
>> task.setParameterValues( params );
>> // Run the report
>> try
>> {
>> task.run( );
>> }
>> catch ( EngineException e1 )
>> {
>> System.err.println( "Report " + name + " run failed.n" );
>> System.err.println( e1.toString( ) );
>> e1.printStackTrace();
>> // Special handle since servlet output stream has been retrieved.
>> // Any include and forward throws exception.
>> // Better to move this error handle into engine.
>> //String message = "<html><body><font color="red">" //$NON-NLS-1$
>> // + htmlEncode( e1.getLocalizedMessage( ) )
>> // +"</font></body></html>"; //$NON-NLS-1$
>> //servletOutputStream.write( message.getBytes( ) );
>> }
>> }
>> }
>> /**
>> * This function is used to encode an ordinary string that may contain
>> * characters or more than one consecutive spaces for appropriate HTML
>> display.
>> *
>> * @param s
>> * @return String
>> */
>> public static final String htmlEncode( String s )
>> {
>> String sHtmlEncoded = ""; //$NON-NLS-1$
>> if ( s == null )
>> {
>> return null;
>> }
>> StringBuffer sbHtmlEncoded = new StringBuffer( );
>> final char chrarry[] = s.toCharArray( );
>> for ( int i = 0; i < chrarry.length; i++ )
>> {
>> char c = chrarry[i];
>> switch ( c )
>> {
>> case 't':
>> sbHtmlEncoded.append( "	" ); //$NON-NLS-1$
>> break;
>> case 'n':
>> sbHtmlEncoded.append( "<br>" ); //$NON-NLS-1$
>> break;
>> case 'r':
>> sbHtmlEncoded.append( " " ); //$NON-NLS-1$
>> break;
>> case ' ':
>> sbHtmlEncoded.append( " " ); //$NON-NLS-1$
>> break;
>> case '"':
>> sbHtmlEncoded.append( """ ); //$NON-NLS-1$
>> break;
>> case ''':
>> sbHtmlEncoded.append( "'" ); //$NON-NLS-1$
>> break;
>> case '<':
>> sbHtmlEncoded.append( "<" ); //$NON-NLS-1$
>> break;
>> case '>':
>> sbHtmlEncoded.append( ">" ); //$NON-NLS-1$
>> break;
>> case '`':
>> sbHtmlEncoded.append( "`" ); //$NON-NLS-1$
>> break;
>> case '&':
>> sbHtmlEncoded.append( "&" ); //$NON-NLS-1$
>> break;
>> default:
>> sbHtmlEncoded.append( c );
>> }
>> }
>> sHtmlEncoded = sbHtmlEncoded.toString( );
>> return sHtmlEncoded;
>> }
>> /**
>> * The doPost method of the servlet. <br>
>> *
>> * This method is called when a form has its tag value method equals to
>> post.
>> *
>> * @param request the request send by the client to the server
>> * @param response the response send by the server to the client
>> * @throws ServletException if an error occurred
>> * @throws IOException if an error occurred
>> */
>> public void doPost(HttpServletRequest request, HttpServletResponse
>> response)
>> throws ServletException, IOException {
>> response.setContentType("text/html");
>> PrintWriter out = response.getWriter();
>> out.println("<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01
>> Transitional//EN">");
>> out.println("<HTML>");
>> out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>");
>> out.println(" <BODY>");
>> out.print(" This is ");
>> out.print(this.getClass());
>> out.println(", using the POST method");
>> out.println(" </BODY>");
>> out.println("</HTML>");
>> out.flush();
>> out.close();
>> }
>> /**
>> * Initialization of the servlet. <br>
>> *
>> * @throws ServletException if an error occure
>> */
>> public void init() throws ServletException
>> {
>> // Put your code here
>> // The EngineConfig is used to set up engine-wide configuration
>> // information.
>> EngineConfig config = new EngineConfig( );
>> // The Engine home is the location of the BIRT engine runtime.
>> // M3 Note: Use the report engine installed as part of the BIRT web app
>> // used to preview reports. Alter this path to the location of your
>> // Eclipse installation.
>> //config.setEngineHome( "c://Program
>>
>
Files//eclipse//plugins//org.eclipse.birt.report.viewer_0.0. 1//birt//WEB-INF "
>> );
>>
> config.setEngineHome("C:iopenjakarta-tomcat-5.5.9webappsbirt-viewerWEB-INF ");
>> // HTML reports can have embedded images or charts. Set up the
>> configuration
>> // required to write these into a directory in the output directory.
>> // The HTMLCompleteImageHandler is one provided by BIRT for this purpose.
>> // Your application can create a customized version to provide
>> alternative
>> // ways to handle images.
>> HTMLEmitterConfig hc = new HTMLEmitterConfig( );
>> HTMLCompleteImageHandler imageHandler = new HTMLCompleteImageHandler( );
>> hc.setImageHandler( imageHandler );
>> config.setEmitterConfiguration( HTMLRenderOption.OUTPUT_FORMAT_HTML, hc
>> );
>> // Create the report engine itself. This engine can be used to run
>> // multiple reports.
>> engine = new ReportEngine( config );
>> }
>> /**
>> * Prepare the report parameters from incoming request.
>> *
>> * @param request incoming http request
>> * @param paramDefns collection of report parameter definitions
>> * @return Hash map from parameter name to its current value
>> */
>> private void parseParams( ReportEngine engine, IReportRunnable report,
>> HashMap values )
>> {
>> if ( values.isEmpty( ) )
>> return;
>> IGetParameterDefinitionTask task =
>> engine.createGetParameterDefinitionTask( report );
>> Collection params = task.getParameterDefns( false );
>> Iterator iter = values.keySet( ).iterator( );
>> while ( iter.hasNext( ) )
>> {
>> String name = (String) iter.next( );
>> IScalarParameterDefn found = null;
>> Iterator i2 = params.iterator( );
>> while ( i2.hasNext( ) )
>> {
>> IParameterDefnBase param = (IParameterDefnBase) i2.next( );
>> if ( param instanceof IParameterGroupDefn )
>> continue;
>> if ( param.getName( ).equals( name ) )
>> {
>> found = (IScalarParameterDefn) param;
>> break;
>> }
>> }
>> if ( found == null )
>> {
>> System.err.println( "Parameter " + name + " not found in the report."
>> );
>> continue;
>> }
>> String value = (String) values.get( name );
>> ReportParameterConverter cfgConverter = new ReportParameterConverter(
>> "", Locale.getDefault( ) );
>> Object obj = cfgConverter.parse( value, found.getDataType( ) );
>> values.put( name, obj );
>> //values.put( name, value );
>> }
>> }
>> }
|
|
|
Re: Servlet code - Re: HTML/PDF does not show up [message #72928 is a reply to message #72207] |
Thu, 08 September 2005 23:38   |
Eclipse User |
|
|
|
Originally posted by: Jenny.xxxxx.com
Hello Frederic,
I tried with what you gave.
The Problem still persists. When i execute the chart report, i see a
picture on the browser, but the image is not showing up. when i looked at
the properties it points to
http://localhost:8080/ReportEngine.servlet/custom6. however i dont find
this file either on the server or the client machine temportary internet
files directory.
If i tried to save the chart on the server file system using the
options.setOutputfile(filename), i was able to see the chart with an
associated customx file in the directory.
Any help would be greatly appreciated.
Thanks
Jenny
Frederic Ferrant wrote:
> I personnaly use the following to get the task report forwarded to the
> servlet response stream...
> Unfortunately, I don't have time to check your servlet, but I give you
> the following, just in case it can help... Sorry if it doesn't. ;o)
> I'm not so experienced yet...
> --------
> HTMLRenderOptions options = new HTMLRenderOption();
> options.setOutputFormat(HTMLRenderOption.OUTPUT_FORMAT_PDF);
> ByteArrayOutputStream out = new ByteArrayOutputStream();
> options.setOutputStream(out);
> task.setRenderOption(options);
> task.run();
> response.setContentLength((int) out.toByteArray().length);
> response.getOutputStream().write(out.toByteArray());
> response.getOutputStream().flush();
> response.getOutputStream().close();
> task = null;
> --------
> On Mon, 5 Sep 2005 23:14:10 +0000 (UTC), Jenny@xxx.com (Jenny) wrote:
>>Hello !!!
>>
>>Is there no way that i can figure out what my problem is ?
>>I am sure it is possible for you guys are you are experienced.
>>
>>Help
>>Jenny
>>
|
|
|
Re: Servlet code - Re: HTML/PDF does not show up [message #73098 is a reply to message #72928] |
Fri, 09 September 2005 18:37   |
Eclipse User |
|
|
|
Originally posted by: Jenny.xxx.com
any one know what is going on ?
Please help
Jenny wrote:
> Hello Frederic,
> I tried with what you gave.
> The Problem still persists. When i execute the chart report, i see a
> picture on the browser, but the image is not showing up. when i looked at
> the properties it points to
> http://localhost:8080/ReportEngine.servlet/custom6. however i dont find
> this file either on the server or the client machine temportary internet
> files directory.
> If i tried to save the chart on the server file system using the
> options.setOutputfile(filename), i was able to see the chart with an
> associated customx file in the directory.
> Any help would be greatly appreciated.
> Thanks
> Jenny
> Frederic Ferrant wrote:
>> I personnaly use the following to get the task report forwarded to the
>> servlet response stream...
>> Unfortunately, I don't have time to check your servlet, but I give you
>> the following, just in case it can help... Sorry if it doesn't. ;o)
>> I'm not so experienced yet...
>> --------
>> HTMLRenderOptions options = new HTMLRenderOption();
>> options.setOutputFormat(HTMLRenderOption.OUTPUT_FORMAT_PDF);
>> ByteArrayOutputStream out = new ByteArrayOutputStream();
>> options.setOutputStream(out);
>> task.setRenderOption(options);
>> task.run();
>> response.setContentLength((int) out.toByteArray().length);
>> response.getOutputStream().write(out.toByteArray());
>> response.getOutputStream().flush();
>> response.getOutputStream().close();
>> task = null;
>> --------
>> On Mon, 5 Sep 2005 23:14:10 +0000 (UTC), Jenny@xxx.com (Jenny) wrote:
>>>Hello !!!
>>>
>>>Is there no way that i can figure out what my problem is ?
>>>I am sure it is possible for you guys are you are experienced.
>>>
>>>Help
>>>Jenny
>>>
|
|
| | | |
Goto Forum:
Current Time: Tue Jul 22 03:30:51 EDT 2025
Powered by FUDForum. Page generated in 0.06274 seconds
|