金桥科普  
设为首页 关于我们 邮箱登录
科普聚焦时代科技科普生活科学技术自然科学航空航天科技博览历史考古电脑IT
您现在的位置: 首页 >> 科普频道 >> 技巧实践 >> 文章详情
在PB中实现分段打印功能

张瑜 赛迪网-中国计算机报 2001-11-05

  在使用Powerbuilder进行应用程序的开发过程中,可使用Powerbuilder提供的函数Print()对数据窗口进行打印,但是在实际应用中,Print()函数提供的功能远不能满足用户的需要。本文将介绍如何在Powerbuilder中实现分段打印的技巧,从而满足应用程序特定功能的要求。

  有时,我们需要把数据窗口显示的数据按照一定的格式进行分页打印,而每页显示的 
数据是随机的,每页又需要分别汇总,所以每页的总和也不相等,我们可以用RowsDiscard()和RowsCopy()函数与Print()函数联合使用。

  例如对于某一数据窗口,我们需要按照每页打印5行,不足5行补空行,每页合计为当页总数。这时我们首先把显示的数据窗口命名为dw_1,接着另建一个隐含的数据窗口,格式和dw_1完全相同,并命名为dw_2,最后计算需要打印几页,具体程序如下:

  int n,mm

  //每页打印mm行

  mm = long(em_1.text)

  n = int(dw_1.rowcount()/mm) + 1

  //如果不足mm行,直接打印

  if dw_1.rowcount() < mm then

   dw_1.print()

   return

  end if

  //用FOR循环语句,循环n-1次:

  int m = 0

  for m = 0 to n - 1

   dw_2.reset()

   dw_2.rowsdiscard(1,dw_2.rowcount(),Primary!) 

   //删除dw_2中的数据

   //从数据窗口的主缓冲区拷贝mm行到dw_2

  dw_1.RowsCopy(mmm+1, (m+1)mm, Primary!, dw_2, 1, Primary!)

  //不足mm行补空行

  if dw_2.rowcount() > 0 and dw_2.rowcount() < mm then

  int ii,jj

  jj = dw_2.rowcount() 

  for ii = 1 to mm - jj 

  dw_2.InsertRow(0)

  dw_2.ScrollToRow(dw_2.RowCount())

   next

   end if

  //循环打印dw_2窗口

  dw_2.print()

  next

  利用以上代码,我们就可以实现按特定的格式进行分段打印的功能了。

  发表评论 写信给编辑 关闭窗口
同栏目内容
· 让你的电脑启动画面绚起来 2007-09-12
· 小技巧帮大忙 极点五笔 2007-09-05
· 如何提高迅雷的下载速度? 2007-09-03
· Vista小技巧 消除红眼 2007-09-03
· 千千静听实用小功能 2007-08-29
· 四大妙招帮你成功的隐藏文件 2007-08-20
相关内容
近期主推
我国首架自主产权飞机完成
·我国首架自主产权飞机完成
·机器人版"千手观音"惊艳亮相
·西藏发现青藏高原最大冰川群
·中日: "月亮女神"携手"嫦娥"
·行星大碰撞砸死恐龙催生人类
·美研制会飞汽车定价9万美元
近期热门
科学家解开中子星爆发之谜
·科学家解开中子星爆发之谜
·英海域惊现大龙虾为普通龙虾5倍
·新物种金蛙体表有剧毒
·我国嫦娥工程计划测量月球
·精神病药物可治多种癌症
·视觉震撼:来自海底的精灵
近期焦点
美国发现极其罕见的白化银鲛(图)
·美国发现极其罕见的白化银鲛(图)
·美国展出罕见连体双胎双头龟
·波罗的海发现罕见短吻真海豚
·能帮你做大扫除的机器人[组图]
·法老墓3000年前坚果保存完好
·广西发现罕见溶洞钟乳石有30万年
金桥科普是一个公益性栏目,内容由作者提供或摘自互联网,其目的是向广大网民普及科学技术知识。如果您发现本网站转载或摘编了您拥有著作权的作品,请通知我们(电话:023-63659911),我们立即删除。
关于我们 | 网站地图 | 用户注册 | 广告客户 | 招聘信息 | 业务信息
Copyright@2006-2009 JQInfo.com,WONDER. All Rights Reserved
重庆科技咨询中心.重庆网得信息技术有限公司.版权所有
Email:webmaster@jqinfo.com
重庆数据通信局提供网络带宽. 渝ICP备05002327号