首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 冲浪宝典 > 网络资源 > 在PB中实现分段打印功能
【标  题】:在PB中实现分段打印功能
【关键字】:打印,PB,PB
【来  源】:网络

在PB中实现分段打印功能

  在使用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(mmm+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

  利用以上代码,我们就可以实现按特定的格式进行分段打印的功能了。
PB中表的修改对数据窗口和报表的影响的解决办法:【上一篇】
PowerBuilder中实现数据窗口打印预览通用方法:【下一篇】
【相关文章】
  • PB中表的修改对数据窗口和报表的影响的解决办法
  • 在PB中如何控制DATAWINDOW列的修改属性
  • PB中的数据窗口自动刷新技术
  • 利用PB动态创建数据窗口
  • 在PB中使用VC++编制的DLL
  • PB6 + Sql Anywhere5 应用程序如何脱离开发环境运行
  • PB8.0应用程序编译发布技术研究
  • 升级到PB9.0的10个理由
  • PB所支持的Oracle 的版本
  • 不同版本的PB所需要的运行时动态链接库
  • 【随机文章】
  • 谈谈软件从业学习方向
  • DevExpress的基本换肤
  • 人来疯技术文档之vsftp配置大全
  • VI 使用手册
  • OctaGate SiteTimer-做页面加载时间测试的工具
  • 喋血洛杉矶心得二
  • Windows远程内核漏洞注入
  • ASP.NET 2.0 新特性
  • ganglia安装
  • 数码板+Illustrator 绘制新潮时装秀(1)
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 软讯网络 All Rigths Reserved.