ireport实用技巧:中文字体设置、自动换行与动态SQL实例

需积分: 10 4 下载量 117 浏览量 更新于2024-11-01 收藏 203KB DOC 举报
本文档主要介绍了iReport的一些实用技巧和知识点,针对中文处理、PDF输出和动态SQL的运用。以下是详细内容: 1. **解决中文字体问题**: 在iReport中,用户可以通过创建自定义字体来处理中文显示。首先,打开格式化菜单,选择报表字型,添加新的自定义字体,如“宋体”,并设置PDFfontname为“STSong-Light”和PDFEncoding为“UniGB-UCS2-H”。这样,以后修改字体时可以直接选用自定义字体,无需每次都手动调整。 2. **自动换行功能**: 长文本字段的自动换行是通过设置TextField属性实现的。选中字段后,勾选“Stretchwith overflow”选项,并在Common属性中选择“Relativetotallestobject”,确保内容不会被截断。 3. **动态SQL的使用**: 报表中的数据可通过动态SQL根据条件查询。创建一个String类型的参数,例如$P!{SQLSTR},并在SQL查询器中使用,与常规参数传递方式有所不同,这里只需像传递其他参数一样即可。 4. **字段隐藏条件**: 为了控制字段只在特定条件下打印,可以设置PrintWhenExpression,使用布尔表达式如`new java.lang.Boolean($F{ic_shopid}.trim().equals("DV"))`,这样只有当ic_shopid字段的值等于"DV"时,该字段才会显示。 5. **PDF输出至打印机**: 提供了一个方法`public void print()`,用于将PDF报表结果直接输出到打印机。首先,保存报表到本地文件(如 "./tmp.pdf"),然后通过`System.getProperty("os.name")`获取操作系统名称,根据不同OS执行不同的打印命令,如Java的`java.awt.print.PrinterJob`或使用第三方库如Apache PDFBox进行打印操作。 这些技巧可以帮助iReport用户更高效地设计和生成符合需求的报表,尤其是在处理中文字符、动态数据展示和精确控制打印内容方面。理解并熟练运用这些知识点,可以提升报表生成的灵活性和用户体验。