目录

报表属性

 报表属性

本菜单项的功能是用于设置报表的全局属性。

点击 属性-报表属性 ,或者选中报表首格,右键菜单-报表属性,打开“报表属性”编辑界面,可切换到相关的标签页,设置相关的报表属性。“报表属性”编辑界面如下图所示: 


 常规属性

在报表属性编辑界面中切换到“常规”标签页,设置报表的基本属性。

报表样式

报表样式有普通报表和行式报表两种。

普通报表:把报表中的单元格作为存储和计算的基本单位,比如我有一个3行3列的普通报表,那么在内存里把3*3=9个单元格作为9个对象存储和计算。

行式报表:把报表中的行作为存储和计算的基本单位,比如我有一个3行3列的行式报表,那么在内存中把3行作为3个对象来存储和计算,这种报表极大的提高了运算速度。

行式报表以“行”为单位来对报表中的数据进行处理所以它有运算速度快和处理数据量大的优点。相同时间内行式报表可处理的数据量跟普通报表相比可以大大提高,而且行式报表可以边计算边输出,数据量越大行式报表的优势就越突出。但并不是任何一个报表都是行式报表,只有满足以下特征的报表,才可以是行式报表:

  • 主格不同行

    例:下图所示主格不同行,属于行式报表


  • 无横向扩展

     例:下图所示单元格横向扩展不属于行式报表


     例:下图所示单元格纵向扩展属于行式报表


  • 无拉伸单元格

    例:如下图所示扩展时存在纵向拉伸单元格,不是行式报表


    例:如下图所示扩展时无拉伸单元格,是行式报表 


  • 按源格遍历法运算(源格不能循环引用)

    例如:下图所示的报表有一个累积奖金列。所谓的累积,就是从第一行起累加到当前行的数值之和。我们把F2格的表达式写成=E2+F2[-1]。在设计状态,只有一行单元格,E2格只有一个,扩展后变成了很多行,变成了很多个E2格,这就属于源格循环引用的一个例子,所以这个报表不属于行式报表。  


  • 无图注

    不包含任何类型的统计图。

  • 不支持隐藏行/列 


    设置为普通报表时的预览结果:


    设置为行式报表时的预览结果:


    可见,行式报表不支持隐藏行/列属性。

  • 不支持自动换行/尺寸调整方式

    行式报表不支持自动换行和尺寸调整方式属性。

  • 不支持行/列后分页


    把第二行设置为行后分页,第二列设置为列后分页。设置为普通报表时的预览结果:


    设置为行式报表时的预览结果:


    可见,行式报表不支持行/列后分页。    系统提供了属性-检查是否行式来帮助用户判断当前的报表是否是行式报表。

  • 行式报表有些时候检查不出来:凡是检查出是行式报表的,肯定是行式报表;凡是检查出不是行式报表的,也可能是行式报表。

数据提交方案

所谓提交方案,是指填报表提交时,哪些单元格的数据能够被提交到服务器上,凡是被提交到服务器的单元格数据,均可在填报预处理类里获得。

系统提供了要保存的单元格、要保存和可写单元格、全部单元格三种提交方案。

该属性主要用于填报预处理类里对数据合法性检查、用户角色权限的判断等。

  • 举例:

    如果选择要保存的单元格,则在填报预处理类里能得到需保存的单元格即设置了更新属性的单元格;

    如果选择要保存及可写单元格,则在填报预处理类里能得到所有可写的单元格;

    如果选择全部单元格,则在填报预处理类里能得到填报表所有的单元格。

填报类型

填报类型有仅供统计和可以填报两种。“仅供统计”主要针对的是普通报表,这种报表以汇总统计为主、以浏览打印输出为目的,不能填写,不能回存数据库。“可以填报”指填报或参数报表,填报报表指以客户端填写数据并回存提交为目的,报表的原始数据可以从数据库汇总出来,在客户端修改并回存数据库。参数报表是作为参数模板使用,以接受用户输入的参数为目的报表。

 报表单位

报表单位有毫米,像素,英寸三种。报表单位是用来设置报表中数值型属性的单位,比如统计表中上边距、下边距属性,我们在设置时只填入数字并没有填入单位,它使用的单位就是我们在这里设置的报表单位。报表设计器中数值型属性如果在填入数字时明确的指定了单位,那么它就使用指定的单位,如果只填入数字没有指定单位,它默认的是使用这里设置的报表单位。

图像最大尺寸

图像最大尺寸用于限定报表中所存在的图片文件或图片字段的大小。当报表中的图片大于所设定的大小时,系统会自动调用安装目录下\designer\logo\outsize.gif或项目发布目录下的\images\outsize.gif文件进行显示,替换原有的大图片。用户也可以通过替换outsize.gif来自定义图片大小超出限定时的替换图片。

显示比例

显示比例可调整设计报表和预览报表时的显示比例,但报表本身的大小不变,只是为了方便用户查看。系统提供了200%、150%、100%、75%、50%的显示比例选择项,用户也可以通过自定义选项框,自己设置显示比例。

例如:有一张报表用100%的显示比例需要借助于滚动条才能看到全部的报表内容,但用75%的显示比例不用滚动条就可看到全部的报表内容。如下图所示:

 


报表格数

报表格数主要用于报表引擎对内存中报表的并发控制。在报表设计器中有一个配置文件,里面包含了在内存中可以使用的最大格子数的参数设定,报表引擎在对报表进行运算前,先读取要计算的报表的“报表格数”属性,试算一下内存中并发报表的总格子数加上要计算的报表的“报表格数”,如果计算和超过了配置文件中的最大格子数,那么报表引擎就延迟计算此报表,否则就计算此报表。如果没有设置“报表格数”属性,那么报表引擎在对报表计算前要先解析报表中的表达式,得出报表的报表格数。例如有一个员工基本信息报表,如下图所示:


它有6列,扩展出来的行数为ds1.count()。我可以在报表属性中设置它的报表格数为:(ds1.count()+1)*6,如下图所示: 


员工基本信息报表计算后会占用 (ds1.count()+1)*6个单元格。报表引擎对员工基本信息报表计算前,先获取此报表的“报表格数”属性,然后用内存中并发执行的报表总格子数加上员工基本信息报表的“报表格数”,计算结果与配置文件中设置的内存最大格子数比较,如果大于最大格子数则延迟员工基本信息报表的计算,否则就立即计算。

● “报表格数”可以是整数值也可以是表达式,不需要等号开头。

提示信息

用途待定。

注释

制作报表的人可在此对该报表做些说明和注释,以方便其他人,或日后自己查看。

● 举例:

某张报表是员工信息查询的填报表,可以在注释编辑框里输入“预览时在参数值里输入要查询员工的编号,即可查询出该员工的详细信息”,这样初次打开这张报表时,查看注释信息后就明白该报表的意图了。

 打印属性

在报表属性编辑界面中切换到“打印”标签页,设置报表的打印信息。如下图所示:


  • 类型

    纸张类型指报表打印或导出时的缺省纸张大小。此属性只在分页方式为“按纸张大小分页”时才起作用。除了标准纸张大小外,还提供了自定义纸张大小的方式,可在自定义纸张高,自定义纸张宽属性里自定义。

    尺寸单位:


    尺寸换算公式:(1 毫米×72)/25.4=1 像素72像素=1 英寸

  • 方向

    报表打印或导出时的缺省纸张方向。分为纵向和横向。默认为纵向,当报表是短宽型的,就可以将纸张方向设置为横向。

  • 自定义纸张高

    当纸张尺寸为自定义时,系统读取自定义纸张高属性作为打印时的纸张高度。

  • 宽度

    当纸张类型为自定义时,系统读取自定义纸张宽属性作为打印时的纸张宽度。

  • 页边距


    上边:报表打印或导出时的缺省上边距。下边:报表打印或导出时的缺省下边距。左边:报表打印或导出时的缺省左边距。右边:报表打印或导出时的缺省右边距

  • 打印缩放

    缩放模式:设置报表打印时的缩放模式,系统提供了与纸张等高/不缩放/与纸张等宽三种缩放模式。

    与纸张等高:指将报表按纸张高缩放。不缩放:指将报表原样展现。与纸张等宽:指将报表按纸张宽度缩放。

  • 布局行数/布局列数

    布局行数:如果报表是按照行数分页的,那么一张打印纸上可能打印多页报表,该参数设定一张打印纸上纵向可以打印几排报表。

    布局列数:如果报表是按照行数分页的,那么一张打印纸上可能打印多页报表,该参数设定一张打印纸上横向可以打印几排报表。

    对于卡片式报表,可以在一张打印纸上布局多页报表,这样打印出来的报表不但美观,而且可以任意切割。

    • 举例:

      把“纸张”组框中的【方向】设为:“横向”,将其他组框中的【布局行数】设为:3,【布局列数】设为:2,如图 


      切换到“分页”标签页,在【分页方式】下拉框中选择“按行分页”, 将【每页行数】设为:6。其打印预览效果如下图所示:


  • 打印次序

    如果报表是按行数分页的,那么一张打印纸上可能打印多页报表,打印次序用于设定多页报表在打印纸上先横向排还是先纵向排。

  • 水平对齐

    水平对齐用于设置打印时报表在纸张上的水平对齐方式,有居中、靠左和靠右三种选择

  • 垂直对齐

    垂直对齐用于设置打印时报表在纸张上的垂直对齐方式,有居中、靠上和靠下三种选择。

  • 打印背景图

    当报表中插入背景图后,预览时可以看到背景图,但不一定希望打印出来。通过该属性可以设置背景图是否打印。

  • 虚拟打印机

    虚拟打印机是为报表导出为text文件后进行打印服务的。当报表导出为text文件后,如果要打印这个text文件就涉及到字符终端的打印,这种打印没有图形化的界面让用户来配置打印机,只能用命令来配置。如果每次打印都要求用户用命令来设置打印参数,就会给用户的打印操作带来极大的不方便,为此我们提出了虚拟打印机的概念。用户在报表属性中选择了一个虚拟打印机,那么此虚拟打印机的配置信息就保存到了报表头中,当报表导出为text文件时,此虚拟打印机的配置也导出到text文件中,以后打印此text文件时直接用打印命令打印即可,不用再设置打印机的配置参数了,极大的方便了用户对text文件的打印。

    要使用虚拟打印机,首先需要编辑一个文本文件,文件名为printer.ini。文件内容结构如下图所示:


    上图printer.ini文件中[LQ1600]、[LQ1601]、[LQ1602]、[LQ1603]指的是打印机的型号,FF=12和SelectCharSet-27 82 ? 指的是打印机的配置参数。可以同时编辑多个节点,即编辑多个虚拟打印机的配置。然后把编辑好的printer.ini文件放在报表设计器的安装目录->designer->classes文件夹下。如下图所示:


    重新启动报表设计器,让printer.ini文件生效。点击 属性-报表属性,切换到打印标签页,这时虚拟打印机下拉框中就列出了你在printer.ini文件中配置的打印机型号,如下图所示:


    用户选择了虚拟打印机的型号后,此虚拟打印机的型号及相关的配置信息就保存到了当前报表头中,当报表导出为text文件后,打印配置信息就保存到了text文件中,要对text文件打印,直接用打印命令即可,不需要选择打印机型号及配置打印机参数了。

 分页属性

在报表属性编辑界面中切换到“分页”标签页,设置报表的分页打印信息。如下图所示:

 


  • 纵向分页时打印方式

    纵向分页时打印方式用于设置报表纵向分页时页眉页脚和标题的打印情况。

    页眉页脚和标题都可以选择“每页都打印” 和“仅首页打印”两种情况。

    1、 每页都打印

    有时不同的人可能查看同一个报表的不同页,同一个报表的不同页不一起存放,为了使每一个用户查看报表时都能了解报表的页眉页脚和标题信息,我们就需要在每页上都打印页眉页脚和标题,这时只需在“纵向分页时打印方式”组框中的【页眉页脚】下拉框中选择“每页都打印”,在【标题】下拉框中选择“每页都打印”就可实现。

    预览后打印我们发现,第一页显示了页眉页脚和标题,第二页也显示了页眉页脚和标题,其打印预览效果如下图所示:


    2、仅首页打印

    有时我们把打印出来的报表页装订在一起存放,所以只想在第一页打印页眉页脚和标题,其他页就不打印了,这时只需在“纵向分页时打印方式”组框中的【页眉页脚】下拉框中选择“仅首页打印”,在【标题】下拉框中选择“仅首页打印”就可实现。

    预览后打印我们发现,第一页显示了页眉页脚和标题,而第二页页眉页脚和标题就被隐藏了,其打印预览效果如下图所示:


  • 横向分页时打印方式

    有时候一条记录包含的字段很多,一页纸的宽度装不下一条记录,我们一般设置为横向分页。横向分页时的打印方式是用来设置报表横向分页时页眉页脚和标题的打印情况。

    横向分页时页眉页脚和标题都可以选择“每页都打印”、“仅首页打印”、“每页打印切分部分”和“仅首页打印切分部分”四种情况。

    1、每页都打印

    有时候横向分页时打印出来的多页报表分开存放,用户只查看自己感兴趣的那些页,这时为了让每一个用户都查看到页眉页脚和标题信息,就需要在每一页报表中都打印上页眉页脚和标题。在横向分页时打印方式组框中的【页眉页脚】下拉框中选择“每页都打印”, 【标题】下拉框中选择“每页都打印”,即可实现在每一页报表中都打印页眉页脚和标题。其打印预览效果如下图所示:


    2、仅首页打印

    有时用户要求横向分页时仅首页打印页眉页脚和标题,其他页就不打印了。在横向分页时打印方式组框中的【页眉页脚】下拉框中选择“仅首页打印”, 【标题】下拉框中选择“仅首页打印”,即可实现仅在首页报表中打印页眉页脚和标题。其打印预览效果如下图所示: 


    3、每页打印切分部分

    有时用户要求横向分页时每页打印切分部分,然后把打印出来的每一页横向粘贴起来,形成一个完整的报表,这时就需要使用横向分页的“每页打印切分部分”。在横向分页时打印方式组框中的【页眉页脚】下拉框中选择“每页打印切分部分”, 【标题】下拉框中选择“每页打印切分部分”,其打印预览效果如下图所示:


    4、仅首页打印切分部分

    有时用户要求横向分页时仅首页打印切分部分,其他页不打印,这时就需要使用横向分页的“仅首页打印切分部分”。在横向分页时打印方式组框中的【页眉页脚】下拉框中选择“仅首页打印切分部分”, 【标题】下拉框中选择“仅首页打印切分部分”,其打印预览效果如下图所示:


  • 表头表尾打印方式

    表头表尾打印方式用于设置报表打印时表头表尾的打印情况。

    表头表尾的打印方式分为行和列两类,行可以设置报表头和报表尾的打印,它分为仅首页打印和每页都打印两种。列可以设置左表头和右表头的打印,它也分为仅首页打印和每页都打印两种。

    1、仅首页打印

    有的用户要求仅在第一页显示表头表尾,其他的页就不显示了,比如报表的宽度大于打印纸的宽度,我仅在第一页打印表头表尾,其他页不打印,报表打印完成后我把两页横向粘在一起共享第一页的表头表尾。如果在行上设置为仅首页打印,则报表头/报表尾区域仅首页打印;如果是在列上设置仅首页打印,则左表头仅在首页打印,右表头仅在最后一页打印。将【表头表尾打印方式】中的【行】设为“仅首页打印”,【列】设为“仅首页打印”。其打印预览效果如下图所示:


    2、每页都打印

    有的用户为了方便在每一页都能看到表头表尾信息,他们要求每页都显示表头表尾。将【表头表尾打印方式】中的【行】设为“每页都打印”,【列】设为“每页都打印”。其打印预览效果如下图所示


  • 分页方式

    报表的分页方式有按纸分页、按行分页、不分页三种。

    1、 按纸张分页

    按纸张分页指按设定的打印纸类型自动进行分页,超出纸张的部分会在下一页打印,这种分页方式适用于用户对一页纸上打印几条记录没有要求。其打印预览效果如下图所示:


    2、按行分页

    有时用户要求在一张纸上固定打印指定行数的记录,我们可以使用按行数分页来实现。按行分页是指按设定的每页显示的数据行数自动进行分页,超出设定的行数的数据在下一页打印。我们将【分页】中的【分页方式】设为“按行分页”,在【每页行数】编辑框中输入15,则每页打印15行的按行数分页效果如下所示:


    [注意] 注意

    如果报表选择了按行分页,则该报表不允许进行缩放打印

    3、补足空行

    如果最后一页的数据较少,则打印出来的最后一页明显比前几页会短一些,如果有客户需要数据不足一页时用空白行来补足,我们可以设置补足空行来实现。比如有下图所示的报表:


    在A5单元格输入表达式:=to(1,15-ds1.count()%15)

    选中A5单元格,将右侧属性栏中的【可视】属性去掉,如图:


    我们将【分页】中的【分页方式】设为“按行分页”,在【每页行数】编辑框中输入15,每页打印15行的按行数分页中最后一页数据不足15行,则用空白行补足。其打印预览效果如下图所示:


    4、不分页

    有时为了便于查看所有的报表信息,用户要求把报表中的所有信息打印在一页纸上,我们可以使用不分页来达到这个目的。套打的时候,将需要套打的票据扫描成图片,插入到报表设计的界面上,然后依照底图进行报表描绘,打印时报表信息连同底图一起打印,这时为了保证打印出来的报表不错位也要使用不分页。我们将【分页】中的【分页方式】设为“不分页”。 其打印预览效果如下图所示: 


  • 每页行数

    如果“分页方式”是按行分页则可以在此设定每页显示数据的行数。该行数为数据区行数。

  • 分栏数

    分栏数用于设置报表打印或导出时的缺省纵向分栏数。我们常常会遇到一些列数很少行数很多的报表,这种报表窄窄长长,打印在一张A4纸上,横向留出大片空白,不但浪费纸张而且不美观,不方便用户查阅。分栏可以在打印纸上横向布局多列报表,这样既美观又节约纸张,还方便浏览报表。分栏后,表头会在每栏中重复,但是报表的标题可以只出现一次。

    将【分页】中的【分栏数】设为:3,其打印预览效果如下图所示:


 导出属性

在报表属性编辑界面中切换到“导出”标签页,设置报表导出为pdf文件和excel文件时,该文件的密码和权限。如下图所示: 


  • PDF

    设置报表导出为pdf文件时,该文件的密码和权限。

    用户密码:查看导出的pdf文件时用户需要输入的密码,此类用户只能浏览pdf文件。

    主密码:编辑导出的pdf文件时用户需要输入的密码。

    权限:可以给导出的PDF文件设置权限,在相应权限前打上对勾就可以了。

  • Excel


    文档密码:打开该excel文档时须输入的密码。

    不导出隐藏行/不导出隐藏列:设置隐藏的行或列是否导出。

    导出超链接:设置隐超链接是否导出。

    单页Excel是否设定分页符:在单页导出的Excel中,是否按照和报表相同的分页位置设定Excel中的分页符,使Excel中有相类似的分页效果。

 背景图

在报表属性编辑界面中切换到“背景图”标签页,设置报表的背景图。如下图所示: 


  • 显示方式

    选择背景图在web端的显示方式,显示方式有不显示、每页显示两种。

  • 配置类型

    配置类型分为URL与自定义类两种。如果用户在报表中使用的背景图是一个图片文件,就选择配置类型为“URL”, 如果用户在报表中使用的背景图是自己写的一个Java类画的图就选择配置类型为“自定义类”。

  • URL或类名

    URL或类名:与“配置类型”选项相对应,URL可以是绝对路径名,也可以是相对路径名。如果是相对路径,在WEB 应用中发布,相对于应用根目录,在设计器中不可用相对路径。背景图的用途很广泛,可以用于套打时的底图描绘,也可以用于背景水印等等。

 子报表

在报表属性编辑界面中切换到“子报表”标签页,定义在报表中插入的子报表。如下图所示: 


点击【增加】按钮,在子报表列表框中自动添加一个子报表。

  • 名称

    定义子报表的名字,我们在用到子报表的地方就用这个名称来表示子报表。

  • URL类型

    设置子报表的路径类型,有相对路径、绝对路径和url三种。

    1、 相对路径

    相对路径在设计器中,是相对于【配置】->【选项】中的应用资源路径;web 发布时,是相对于reportConfig.xml 里配置的reportFileHome属性中的报表文件路径。相对于“应用资源”的路径,如下图所示: 


    2、绝对路径

    绝对路径是指你的子报表在硬盘上真正的路径。在“URL类型”列中选择“绝对路径”,双击“URL”编辑框,弹出“打开”对话框,如下图所示:


    选择子报表所在的位置,点击【打开】按钮子报表的绝对路径就会自动的填入“URL”编辑框中。

    3、URL

    当以流文件的形式返回子报表时就会用URL来表示子报表。比如你的子报表是发布在某一服务器上的,你就会用以http开头的子报表的URL路径来定位子报表。

 流水号

在报表属性编辑界面中切换到“流水号”标签页,定义逐渐递增的流水号变量。流水号是一种特殊的自动计算。它按照一定的递增或者递减规则,在当前值的基础上进行递增或者递减计算。

[注意] 注意

流水号只能在行式填报中使用。

流水号的定义界面如下图所示:


点击【增加】按钮在流水号列表中增加一个流水号变量。选中流水号列表中的一个流水号变量,点击【删除】按钮可以删除选中的流水号变量。

  • 名称

    名称即为流水号变量名。

    ● 流水号变量名不要与发布报表的JSP文件中javascript变量名或HTML元素ID相同。

  • 类型

    流水号的数据类型。

  • 初值表达式

    初值表达式可以定义流水号变量的初始值或缺省值。

    1、流水号变量的初始值

    流水号在刚开始有一个初值,即第一次计算前的当前值,以后就把每一次计算出的新值作为当前值。

    在此设置后的流水号变量名,可以在需要用到流水号的单元格,点右键菜单-填报属性,打开数据填报窗口,在流水号编辑框中,利用此流水号变量名编辑javascript表达式,比如:++xuehao,意思是将xuehao的值加1,然后使用xuehao变量的当前值为本单元格的流水号。如下图所示:


    2、流水号变量的缺省值

    新添加、插入的行往往有缺省值,因为行式填报表单元格的表达式要用于取出已经录入的数据进行修改,不能写缺省值表达式。如果把缺省值写进自动计算属性里,那么自动计算时会把原有的旧行也一起计算了,无法智能判断谁是新行。因此,可以使用流水号为新行赋缺省值。

    ● 流水号不一定非得递增或者递减,它还可以不变。

    例如:有一个报表,传入当前用户名作为参数,需要在每条新增记录的操作员字段里缺省写入当前用户名。做法如下:

    第一步:定义流水号的初值var1,初值表达式为arg1,这里假设arg1就是当前用户名参数。

    第二步:在行式报表的操作员字段的填报属性里,流水号一栏中写入var1,如下图所示: 


    第三步:点击【确定】按钮,保存后在网页上发布,添加新行,即可看到效果。

    ● 初值表达式可以是常数、字符串(用双引号引起来)或润乾报表的表达式(不用等号开头)。