首页 > 开发 > 综合 > 正文

报表输出的技巧二则

2024-07-21 02:09:02
字体:
来源:转载
供稿:网友

报表在日常事物处理中占十分重要的地位,用户往往需要将数据库中的内容以不同的格式输出。powerbuilder提供了具有多种显示风格的datawindow控件,只要加以灵活的运用,就能做出不同风格的报表。本文结合笔者的实际开发经验,以一个报表的两种实现方法为例,谈谈报表输出的一点技巧。

一、 数据库中的两个table:project(项目)、manufacture(询价厂商)。其结构如下:

project(xmbh,gg,xh,psyj……)

manufacture(xmbh,csmc,xjcx,gg,xh,bj……)

project表中的内容:

xmbh       gg   xh       psyj

001  gg001       xh001       aaa

manufacture表中的内容:

xmbh       csmc       xjcx       gg   xh   bj

001  厂商1       1     gg1       xh1 100.00

001  厂商2       2     gg2       xh2 101.00

001  厂商3       3     gg3       xh3 102.00

二、 输出的报表格式:(实际报表中字的颜色均为黑色,底色均为白色)

项目编号       001

       我方要求 厂商1       厂商2       厂商3

规格       gg001     gg1 gg2 gg3

型号       xh001     xh1 xh2 xh3

报价              100.00       101.00       102.00

评审意见         aaa

三、实现方法

从图一中可以看出,该报表中包含project与manufacture两个table的记录,并且要求将manufacture中的记录以列的形式输出。具体实现方法如下:

方法1:

按图一,创建一freeform格式的datawindow(dw_1),将project中所需的内容选出,设置其argument为xmbh。其格式即不含灰底中内容的图一。

创建一label格式的datawindow(dw_2),将manufacture中所需的内容选出,同样设置其argument为xmbh;双击该datawindow的空白区域,打开属性对话框,主要设置definition属性页:

(1) label项: 设置label的宽度、高度、每页的label个数;

(2) margins项:指定label的上、下、左、右以及label与label之间的间距;

(3) arrange项:label 的安排方式:从左到右或从上至下

 打开dw_1,插入一nested

 report控件,选择report为dw_2。按图一灰底区域的位置与大小调整report,同时设置该report的general、arguments属性页,设置general属性页的border为none,指定arguments页中的expression为xmbh列(这是为了避免预览或打印时出现“special

retrieval”对话框)。

调整dw_2中的column

的高度、宽度、大小以及column与column的间距,直至满意为止。(为了调试方便,最好将dw_2中column的border设置为none)

最后,直接预览或打印dw_1即可!

注:label格式datawindow的边框无法修改,以至在dw_1预览时仍可看到dw_2的顶部与底部不规则的边框,但并不影响打印效果。要解决这个问题也并不难,只需在dw_1中插入二个与底色同色的矩形,分别放置在图一灰色区域的顶部与底部,并将它们至于dw_2之上,然后将dw_1中的表格线“bring

to front”。

方法2:

按图一,创建一freeform格式的datawindow(dw_1),将project中所需的内容选出,设置其argument为xmbh。其格式即不含灰底中内容的图一。

再创建一freeform格式的datawindow(dw_2),将manufature中所需的内容选出,设置其argument为xmbh。注意:要将xjcx列选出,为了不显示和打印该列,可将其foreground

color设为与底色同色(不能在datawindow中将该列删除)。

打开dw_1,插入三个nested report控件,report

都选择dw_2。按图一灰底区域的位置与大小调整三个report,同时设置report的general、arguments属性页,设置general属性页的border为none,指定arguments页中的expression为xmbh列。另外,对每一个report分别设置其criteria属性页,依次指定xjcx列的criteria值为1,2,3。

调整dw_2中的column 的高度、宽度、大小以及column与column的间距,直至满意为止。

最后,直接预览或打印dw_1即可!
上面的两种方法是笔者对(图一)这种类型的报表输出的总结和概括,也可以说是一点技巧,希望能对大家有所帮助。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表