数据库

本类阅读TOP10

·SQL语句导入导出大全
·SQL Server日期计算
·SQL语句导入导出大全
·SQL to Excel 的应用
·Oracle中password file的作用及说明
·MS SQLServer OLEDB分布式事务无法启动的一般解决方案
·sqlserver2000数据库置疑的解决方法
·一个比较实用的大数据量分页存储过程
·如何在正运行 SQL Server 7.0 的服务器之间传输登录和密码
·SQL中两台服务器间使用连接服务器

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
报表输出的技巧二则

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

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

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

project(xmbhggxhpsyj……)

manufacture(xmbhcsmcxjcxggxhbj……)

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

三、实现方法

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

方法1

按图一,创建一Freeform格式的datawindowdw_1),将project中所需的内容选出,设置其Argumentxmbh。其格式即不含灰底中内容的图一。

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

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

(2) Margins项:指定Label的上、下、左、右以及LabelLabel之间的间距;

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

 打开dw_1,插入一Nested

 Report控件,选择Reportdw_2。按图一灰底区域的位置与大小调整Report,同时设置该ReportGeneralArguments属性页,设置General属性页的BorderNone,指定Arguments页中的Expressionxmbh列(这是为了避免预览或打印时出现“Special

Retrieval”对话框)。

调整dw_2中的Column

的高度、宽度、大小以及ColumnColumn的间距,直至满意为止。(为了调试方便,最好将dw_2ColumnBorder设置为None

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

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

to Front”。

方法2

按图一,创建一Freeform格式的datawindowdw_1),将project中所需的内容选出,设置其Argumentxmbh。其格式即不含灰底中内容的图一。

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

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

打开dw_1,插入三个Nested Report控件,Report

都选择dw_2。按图一灰底区域的位置与大小调整三个Report,同时设置ReportGeneralArguments属性页,设置General属性页的BorderNone,指定Arguments页中的Expressionxmbh列。另外,对每一个Report分别设置其Criteria属性页,依次指定xjcx列的criteria值为123

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

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

上面的两种方法是笔者对(图一)这种类型的报表输出的总结和概括,也可以说是一点技巧,希望能对大家有所帮助。


相关文章

相关软件