动网论坛,站长建站首选,国内使用量最多的论坛软件 动网论坛官方技术讨论区 站长工具 申请属于您自己的免费论坛
首页 | 新闻资讯 | 网站运营 | 网络编程 | 数据库 | 服务器 | 网页设计 | 图像媒体 | 网络应用 | 搜索优化 | 资源下载 | 动网主机 | DVBOX
    本站内  互联网 ASP论坛  ASP.Net论坛  PHP论坛
   程序开发 → 阅读文章

 PB6中报表输出的技巧二则

作者来源: 
阅读 数 292 人次 , 2006-4-26 11:20:00 

报表在日常事物处理中占十分重要的地位,用户往往需要将数据库中的内容以不同的格式输出。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
规格 Gg00 Gg1 Gg2 Gg3
型号 Xh001 Xh1 Xh2 Xh3
报价 100.00

101.00

102.00 103.00
Aaa

  三、实现方法

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

  方法1:

  1. 按图一,创建一Freeform格式的datawindow(dw_1),将project中所需的内容选出,设置其Argument为xmbh。其格式即不含灰底中内容的图一。
  2. 创建一Label格式的datawindow(dw_2),将manufacture中所需的内容选出,同样设置其Argument为xmbh;双击该datawindow的空白区域,打开属性对话框,主要设置Definition属性页:
    (1) Label项: 设置Label的宽度、高度、每页的Label个数;
    (2) Margins项:指定Label的上、下、左、右以及Label与Label之间的间距;
    (3) Arrange项:Label 的安排方式:从左到右或从上至下
  3. 打开dw_1,插入一Nested Report控件,选择Report为dw_2。按图一灰底区域的位置与大小调整Report,同时设置该Report的General、Arguments属性页,设置General属性页的Border为None,指定Arguments页中的Expression为xmbh列(这是为了避免预览或打印时出现“Special Retrieval”对话框)。
  4. 调整dw_2中的Column 的高度、宽度、大小以及Column与Column的间距,直至满意为止。(为了调试方便,最好将dw_2中Column的Border设置为None)
  5. 最后,直接预览或打印dw_1即可!
  注:Label格式datawindow的边框无法修改,以至在dw_1预览时仍可看到dw_2的顶部与底部不规则的边框,但并不影响打印效果。要解决这个问题也并不难,只需在dw_1中插入二个与底色同色的矩形,分别放置在图一灰色区域的顶部与底部,并将它们至于dw_2之上,然后将dw_1中的表格线“Bring to Front”。

  方法2:

  1. 按图一,创建一Freeform格式的datawindow(dw_1),将project中所需的内容选出,设置其Argument为xmbh。其格式即不含灰底中内容的图一。
  2. 再创建一Freeform格式的datawindow(dw_2),将manufature中所需的内容选出,设置其Argument为xmbh。注意:要将xjcx列选出,为了不显示和打印该列,可将其foreground color设为与底色同色(不能在datawindow中将该列删除)。
  3. 打开dw_1,插入三个Nested Report控件,Report 都选择dw_2。按图一灰底区域的位置与大小调整三个Report,同时设置Report的General、Arguments属性页,设置General属性页的Border为None,指定Arguments页中的Expression为xmbh列。另外,对每一个Report分别设置其Criteria属性页,依次指定xjcx列的criteria值为1,2,3。
  4. 调整dw_2中的Column 的高度、宽度、大小以及Column与Column的间距,直至满意为止。
  5. 最后,直接预览或打印dw_1即可!
  上面的两种方法是笔者对(图一)这种类型的报表输出的总结和概括,也可以说是一点技巧,希望能对大家有所帮助。
  
 
 收藏本文  打印本文  论坛讨论  关闭窗口
· 上一篇:在TreeView控件中实现自动查寻
· 下一篇:PB中关于动态工资项目问题的解决办法
· J2ME 2D小游戏入门之加入子弹群
· 如何成为一个好的系统分析员
· PB中实现图片按钮mousemove事件
· 极限建模方法简介
· Ted Neward预言2006技术趋势 称Ajax的光环不再


关于本站 | 联系我们 | 业务合作 | 客户案例 | 诚聘英才 | 广告合作 | 收藏本站
海口动网先锋网络科技有限公司版权所有
Copyright © 2000 - 2006 Cndw.Com
中华人民共和国电信与信息服务业务经营许可证编号 琼 ICP 020077