彩票走势图

如何用FASTREPORT实现WEB应用中自定义报表(三)

原创|其它|编辑:郝浩|2012-09-07 11:15:40.000|阅读 568 次

概述:如何用FASTREPORT实现WEB应用中自定义报表,WEB SERVER部分介绍

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

如何用FASTREPORT实现WEB应用中自定义报表(一)
如何用FASTREPORT实现WEB应用中自定义报表(二)

前面我们讲到FASTREPORT实现WEB应用中自定义报表,会用到REPORT SERVER、WEB SERVER、ACTIVEX三部分内容,现在就来说一下里面的WEB SERVER部分:

WEB SERVER

方案中WEB SERVER的作用主要是根据ACTIVEX的请求调用REPORT SERVER,并将REPORT SERVER生成的.zip文件发送给ACTIVEX。样例通过一个report.jsp文件来处理:ACTIVEX通过get请求report.jsp文件,report.jsp文件调用REPORT SERVER处理后,将.zip文件发送给ACTIVEX。

Report.jsp文件:

<%@ page import="…"%>
<%@page contentType=" APPLICATION/OCTET-STREAM" %>
<% try
{
String reqFileName = request.getParameter("rpFileName");
String reqMode = request.getParameter("mode");//d为设计报表,r为打印报表
String rpFileName = xxxx.getRpFileName(reqFileName); //根据请求的报表名获得实际的报表文件名,如请求订单报表,而订单报表实际对应的报表文件为order.frf。

String l_cmd="reportserver.exe "+reqMode+" "+ reqFileName;
Process l_ps=java.lang.Runtime.getRuntime().exec(l_cmd,null);
byte[] l_b=new byte[100];
while(l_ps.getInputStream().read(l_b,0,100)!=-1){ }//发送文件
String zipFileName = xxxx.getZipFileName(reqFileName); //获得压缩文件名
response.setHeader("Content-Disposition","attachment; filename=\"" +
zipFileName + "\"");
java.io.FileInputStream fileInputStream =
new java.io.FileInputStream(zipFileName);
int i;
while ((i=fileInputStream.read()) != -1) {
out.write(i);
}
fileInputStream.close();
out.close();
}

catch(Exception e)
{
……
}
%>

String l_cmd="reportserver.exe "+reqMode+" "+ reqFileName; 组成调用REPORT SERVER的命令串。while(l_ps.getInputStream().read(l_b,0,100)!=-1){ ; } 等待REPORT SERVER执行完成,否则,程序在启动REPORT SERVER后即执行下一行语句。发送文件的方式有多种,比如也可以由ACTIVEX通过ftp方式取得。  


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn

文章转载自:网络转载

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP