Как использовать RE API для отчета о рождении в struts2, пытаясь отобразить отчет о рождении с нумерацией страниц (html JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Как использовать RE API для отчета о рождении в struts2, пытаясь отобразить отчет о рождении с нумерацией страниц (html

Сообщение Anonymous »


Я получаю отчет о рождении с помощью RE API, используя механизм birt в struts2, все работает нормально, но нумерация страниц
навигационная панель не отображается в отчетах. пожалуйста, дайте предложение с примером в Java.
У меня есть файл .rptdesign, который является исполняемым файлом. у меня нет файла типа IReportDocument. из-за чего «org.eclipse.birt.report.engine.api.EngineException: задача рендеринга не завершена». произошла ошибка. пытаюсь добиться нумерации страниц для отчета о рождении в struts2. пожалуйста, дайте ссылку с примером нумерации страниц в отчете о рождении.
код, который я использую, как указано ниже.

Код: Выделить всё

public class BirtEngine {
private static Logger LOGGER = LogManager.getLogger(BirtEngine.class);
private static IReportEngine birtEngine = null;
private static Properties configProps = new Properties();

public static synchronized IReportEngine getBirtEngine(ServletContext sc) {
if (birtEngine == null)
{
EngineConfig config = new EngineConfig();

config.getAppContext().put(EngineConstants.APPCONTEXT_CLASSLOADER_KEY, BirtEngine.class.getClassLoader());
config.setEngineHome("");
IPlatformContext context = new PlatformServletContext( sc );
config.setPlatformContext( context );
try
{
Platform.startup( config );
}
catch ( BirtException e )
{
LogUtils.error(BirtEngine.class, e);
}
IReportEngineFactory factory = (IReportEngineFactory) Platform
.createFactoryObject( IReportEngineFactory.EXTENSION_REPORT_ENGINE_FACTORY );
birtEngine = factory.createReportEngine( config );
}
return birtEngine;
}

public static synchronized void destroyBirtEngine() {
if (birtEngine == null) {
return;
}
birtEngine.destroy();
Platform.shutdown();
birtEngine = null;
}

public static IRenderOption getRenderOption(String format,ServletContext sc){
IRenderOption option =null;
if(format.equals("html")){
option = getHtmlRenderOptiopn(sc);
}else{
option= null;
}
return option;
}
private static HTMLRenderOption getHtmlRenderOptiopn(ServletContext sc){
HTMLRenderOption option = new HTMLRenderOption();

option.setHtmlPagination(true);

option.setOutputFormat(HTMLRenderOption.OUTPUT_FORMAT_HTML);
option.setImageHandler(new HTMLServerImageHandler());
option.setBaseImageURL(sc.getContextPath()+"/birt/images");
option.setImageDirectory(sc.getRealPath("birt")+"/images");
return option;
}
}

--------------------------------------------
public class RunBirt{
private IReportEngine birtReportEngine = null;
private static Logger logger = LoggerFactory.getLogger(RunBirt.class);
public String printReport(ServletContext sc,String reportFormat,Map reportParameter,String reportDesign) throws ServletException{
this.birtReportEngine = BirtEngine.getBirtEngine(sc);
IReportRunnable design;
try
{
//Open report design
design = birtReportEngine.openReportDesign( reportDesign );
//create task to run and render report
IRunAndRenderTask task = birtReportEngine.createRunAndRenderTask( design );
task.getAppContext().put(EngineConstants.APPCONTEXT_CLASSLOADER_KEY, RunBirt.class.getClassLoader());

IGetParameterDefinitionTask parameterDefinitionTask = birtReportEngine.createGetParameterDefinitionTask(design);
HashMap declaredParam = parameterDefinitionTask.getDefaultValues();
Set set = declaredParam.entrySet();
if(!reportParameter.isEmpty()){
for(Map.Entry entry:set){

task.setParameterValue(entry.getKey(), reportParameter.get(entry.getKey()) == null ? reportParameter.get(entry.getKey()) : reportParameter.get(entry.getKey()));
}
task.validateParameters();
}
//set output options
IRenderOption options = BirtEngine.getRenderOption(reportFormat,sc);
ByteArrayOutputStream oStream = new ByteArrayOutputStream();
options.setOutputStream(oStream);
task.setRenderOption(options);
//run report
task.run();
//Check if error(s) is generated by BIRT engine.
if(null!=task.getErrors() &&  task.getErrors().size()>0){System.out.println(task.getErrors());
logger.error(task.getErrors().toString());
task.close();
String errorMsg = Util.readFileContent("ErrorPage.html");

return errorMsg;

}
task.close();
return oStream.toString("UTF-8");
}catch (Exception e){
e.printStackTrace();
LogUtils.error(this.getClass(), e);
throw new ServletException( e );
}
}
}



Источник: https://stackoverflow.com/questions/781 ... irt-report
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»