2、如果没能正确安装SQL服务器,也会导致数据库连接不上;安装好数据库后,如果SQL服务管理器没有启动,则要去服务那里开启。
3、因权限问题导致数据库不能连接,解决方法是检测计算机的安全保护限制、SQLServer安全设置、 *** 作系统的安全限。
4、网络连接存在故障。
1、输入数据源名称,选择 JDBC Driver,在输入 JDBC URL 时,可以点击"Wizard"按钮,它会根据你选的 JDBC Driver 配置好你的 URL,不过得修改 IP 地址以及 DatabaseName,输入数据库名、用户名、密码。点击"Test"按钮,确定连接情况,然后保存。$F{} 是用来标明这是数据库字段。$F{WINDOWS_NAME}、$F{NUMBER}、$F{vname}、$F{SP_NAME} 和 $F{SP_TYPE} 是数据库里的字段,也是我要在模板里用到的字段。对于 $F{NUMBER}、$F{vname}、$F{SP_NAME} 和 $F{SP_TYPE} 这四个字段,虽然放在其他域也可以显示出结果,比如:pageHeader 域、columnHeader 域、columnFooter 域等等,但是因为会有多列的数据要显示,所以必须放到"detail"域中。
2、配置模板的查询语句,以及字段、变量和参数。
首先输入查询语句,如"select * from v_baseinfo_statbanjiereport",点击"Read fields"按钮,会查询出该表的所有字段名
如果您要有条件的查询,那么就在后面添加 Where 语句,如"select * from v_baseinfo_statbanjiereport where DEPT_NAME=$P{orgname} and END_SP_DAY=$P{etime}",点击"Save query to report"按钮保存。
这里要注意的是,您可以直接把参数写入 Where 语句中,象这样"where DEPT_NAME='中国' and END_SP_DAY='2004-11-23'";但是从 java 程序或者 jsp 页面传过来的参数是中文字符的话,您就必须做编码转换或者用英文字符、数字来代替;还有像日期参数"2004-11-23",jasperreports 好象解析不了,如果你把 SQL 语句改成" select * from v_baseinfo_statbanjiereport where DEPT_NAME='$P{orgname}' and END_SP_DAY='$P{etime}'",那么又会抛出异常,因为 Jasperreport 会先把 SQL 语句设置成预编译语句"select * from v_baseinfo_statbanjiereport where DEPT_NAME= ? and END_SP_DAY= ?",所以 SQL 语句中用到参数的时候,除了其特定的"$P{}"符号外,不能有别的标点符号,传进去的参数值也尽量不要带标点符号,所以日期格式得改成"20041123"。
当这些全部做完后,点击"Save"按钮,就会生成一个 XML 文件,再点击"Compile"按钮,就会生成一个后缀名为 jasper 的文件。
现在可以预览一下模板的效果,先选择菜单项"Build"的子菜单项"PDF preview"、"HTML preview"、"JAVA 2D preview"、"Excel preview"、"CSV preview"和"JRViewer preview"中的一项(对这些项显示工具的配置在菜单项 Tools\Options.. 下的 External programs), 再点击"Execute report";如果你想带数据预览,还得先激活一下刚配置的数据源,选中菜单栏"Build"下的子菜单栏"Set active connection",会d出一编辑框,选中一个数据源名称,点击"OK"。
此时我们就要引入一个 jsp 页面,假设是 pdf.jsp,那么下面就是 pdf.jsp 的代码:
<%@ page import="dori.jasper.engine.*" %>
<%@ page import="java.util.*" %>
<%@ page import="java.io.*" %>
<%@ page import="java.sql.*" %>
<%
File reportFile
= new File(application.getRealPath("/reports/ribanjietongji.jasper"))
Map parameters = new HashMap()
parameters.put("orgname", "zhongguo")
parameters.put("etime", "20041123")
Connection conn=null
// 以下忽略得到数据库连接过程
// ……
byte[] bytes =
JasperRunManager.runReportToPdf(
reportFile.getPath(),
parameters,
conn
)
response.setContentType("application/pdf")
response.setContentLength(bytes.length)
ServletOutputStream ouputStream = response.getOutputStream()
ouputStream.write(bytes, 0, bytes.length)
ouputStream.flush()
ouputStream.close()
%>
程序里面要和大家说明的就是,"/reports/test.jasper"这个路径是相对于你这个 jsp 页面的,比如你的 jsp 页面保存在 D:\\..\ROOT\ 目录下,那么你就必须在这个目录下建一个 report 目录,然后把你做好的报表模板文件放到该目录下来。
Map parameters = new HashMap()
parameters.put("orgname", "zhongguo")
parameters.put("etime", "20041123")
"orgname"和"etime"必须和模板时定义的参数名称一致。
【C++库】PDF类库 PoDoFo
http://podofo.sourceforge.net/
PoDoFo 是一个用来 *** 作 PDF 文件格式的 C++ 类库。它还包含一些小工具用来解析、修改和创建 PDF 文档。
Xpdf
http://www.foolabs.com/xpdf/download.html
Xpdf是一个开放源代码的PDF档案浏览器,Xpdf 可解码LZW压缩格式并阅读加密的PDF文件。
PDF生成工具 Poppler
http://poppler.freedesktop.org/
Poppler 是一个用来生成 PDF 的C++类库,从xpdf 继承而来。它使用了很多先进的类库例如 freetype 和 cairois 来达到更好的输出效果,同时也提供了一组命令行工具包。
JagPDF
http://www.jagpdf.com/
JagPDF 提供给 C/C++ 和 Python 编程语言用来生成 PDF 文档的库。
libHaru
http://libharu.org/wiki/Downloads
开源的PDF库
CLibPDF
http://hpux.connect.org.uk/hppd/hpux/Shells/ClibPDF-2.02/
ClibPDF是C函数库,可以直接生成PDF文件, 不需要Adobe Acrobat等工具支持.
------------------------------------------------------------------------
【JAVA库】
PDF *** 作类库 iText
http://www.lowagie.com/iText/
iText是一个能够快速产生PDF文件的java类库。iText的java类对于那些要产生包含文本,表格,图形的只读文档是很有用的。它的类库尤其与java Servlet有很好的给合。使用iText与PDF能够使你正确的控制Servlet的输出。
PDFBox
http://www.pdfbox.org/
非常强悍的PDF生成和解析Java类库
jpedal
http://www.jpedal.org/
jpedal是开源纯Java的PDF文档解析库,可以用来读取PDF文档中的文字、图形。
JasperReports
http://jasperforge.org/plugins/project/project_home.php?group_id=102
JasperReports是一个基于Java的开源报表工具,它可以在Java环境下像其它IDE报表工具一样来制作报表。JasperReports 支持PDF、HTML、XLS、CSV和XML文件输出格式。JasperReports是当前Java开发者最常用的报表工具。
Fourfive
http://sourceforge.net/projects/fourfive
Fourfive是一个领先的开源Web报表解决方案,使用XML作为它的配置文件。支持集群、负载平衡、动态发布、PDF, Excel, LDAP,图表、过滤器、排序、布局定制、门户、JasperReports、Velocity模板、兼容Internet Explorer, Netscape, Mozilla, Opera。
FOP
http://xmlgraphics.apache.org/fop/
FOP是由James Tauber发起的一个开源项目,原先的版本是利用xsl-fo将xml文件转换成pdf文件。但最新的版本它可以将xml文件转换成pdf,mif,pcl,txt等多种格式以及直接输出到打印机,并且支持使用SVG描述图形。
JFreeReport
http://sourceforge.net/projects/jfreereport/
JFreeReport是一个用来生成报表的Java类库。它为Java应用程序提供一个灵活的打印功能并支持输出到打印机和PDF, Excel, HTML和XHTML, PlainText, XML和CSV文件中。
YaHP
http://www.allcolor.org/YaHPConverter/
YaHP是一个能够把html文档转换成pdf文档的Java开源包。
PDFjet
http://pdfjet.com/os/edition.html
PDFjet是一个用于动态生成PDF文档的Java类库。支持绘制点、线、方框、圆、贝塞尔曲线(Bezier Curves) 、多边形、星形、复杂路径和形状。支持unicode,文本间距调整,嵌入超链接等。它同时有Java和.NET两个版本。
vPDF
http://sourceforge.net/projects/vpdf/
一个将RTF文档转成PDF文档的工具
【.NET组件】
--------------------------------------------------
iTextSharp
http://itextsharp.sourceforge.net/
iTextSharp 是用来生成 PDF 文档的 C# 组件
PDFsharp
http://www.pdfsharp.com/
PDFsharp is a C# library that easily creates PDF documents on the fly. The same GDI+ like drawing routines can be used to create PDF documents, draw on the screen, or send output to any printer. PDFsharp can also modify, merge, and split existing PDF files or incorporate pages from existing PDF files into new PDF documents.
Report.NET
http://report.sourceforge.net/
Report.NET 是一个功能强大且易用的用来生成 PDF 文档的 C# 组件
---------------------------------------------------------------------
【PHP】
Php Pdf Factory
http://sourceforge.net/projects/pdf-factory/
一个PHP的PDF *** 作库。
TCPDF
http://www.tecnick.com/public/code/cp_dpage.php?aiocp_dp=tcpdf
TCPDF是一个用于快速生成PDF文件的PHP5函数包。TCPDF基于FPDF进行扩展和改进。支持UTF-8,Unicode,HTML和XHTML。
HTML2PDF
http://html2fpdf.sourceforge.net/
HTML2PDF能够把一个HTML文本转换成一个打印机友好的PDF文件。这个PHP脚本构建在FPDFPHP脚本之上。
cPdfWriter
http://www.palos.ro/index.php?page=opensource_active
cPdfWriter是一个能够输出PDF文档的PHP5 class。基于TCPDF,FPDF和其它相关脚本。
FPDF
http://www.fpdf.org/
FPDF这个PHP Class允许你采用纯PHP(更确切地说就是不需要使用PDFlib)来生成PDF文件。它所具有的特点包括:可选择的unit大小,页面格式和页边 距;页眉和页脚管理;自动分页;自动换行与文本自动对齐;支持JPEG与PNG图片格式;支持着色和文件超链接;支持TrueType,Type1与 encoding;支持页面压缩。...
------------------------------------------------------------------------
【Python和Ruby】
Prawn
http://prawn.majesticseacreature.com/
Prawn: 用Ruby生成PDF更简捷
ReportLab
http://www.reportlab.org/
Reportlab是用python开发的生成pdf的工具包,它是一个开源软件。
PDF生成工具 pyPdf
PyPDF这是一个用于构建PDF的纯Python工具包
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)