打印固定行的问题?

lotuscsdn 2002-12-04 07:08:43
用以下的方法,我在trailer group aa段加了分组合计以后。它补入的行是加在最下行的,能否有解决方法
关于数据窗口每页打印固定行的问题:
  1.增加一个计算列,此计算列必须放在Detail段的Expression中输入:
  ceiling(getrow()/20)
  //这里20还可以用全局函数取代,这样可以允许用户任意设置每页打印多少行。
  2.定义分组,选择选单“Rows->Create Group...”,并按计算列字段分组。最后一定将“check box-->New Page On Group Break”选中。
  3.将此计算列设为不可视。
  另外,如果需要最后一页不足补空行。也很简单,程序如下:
  long ll_pagerow = 10
  //每页打印行数
  long ll_count, ll_row
  ll_count = dw_report.retrieve(...) //取得现有报表的总行数
  ll_count = ll_pagerow - mod(ll_count, ll_pagerow)
  If ll_count < ll_pagerow Then
  for ll_row = 1 to ll_count
  dw_print.insertrow(0) //补足空行
  next
  end If
...全文
28 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
winwhere 2002-12-05
  • 打赏
  • 举报
回复
是不是要重新create一下。再试
winwhere 2002-12-04
  • 打赏
  • 举报
回复
就以上的问题,我又重新试了一下,确实有这样的问题出现,即:
“它补入的行是加在最下行的”,即在 trailer group 后面,

但如果将空的行插在数据库里,然后同原有的数据一同retrieve出来,则不会出现这样的问题,还有,如果你用了流芳的打印预览程序,则在打印预览下也不会出现这样的问题。

不知道是怎么回事,高人出来指点一下呀。

winwhere 2002-12-04
  • 打赏
  • 举报
回复
这里有几个地方要注意:
1.ll_pagerow 必须和 在数据窗口中设置的 行数 一致,所以,ll_pagerow 必须也等于 20;
2.ceiling(getrow()/20) 这一句我好象只能设在 数据窗口的表达式中,我用

ids_print.Modify("printrow.Expression = 'cell(getrow()/" + string(gl_row) + ")'" )这样来修改 计算列的表达式,不起作用,不知道什么地方有错误。

3.保证没有隐藏在超出打印范围的列和文字;
4.但即使这样做了,有时还会出现插在尾部的情况,但大部分时候不会出现。
balloonman2002 2002-12-04
  • 打赏
  • 举报
回复
上述方法是在DETAIL区加一个计算列,然后按此计算列分组,不知楼主是不是这样,你说的“在trailer group aa段加了分组合计”是什么意思呢?“补入的行是加在最下行”又是什么意思呢?
dotnba 2002-12-04
  • 打赏
  • 举报
回复
?
不明白
888888888888 2002-12-04
  • 打赏
  • 举报
回复
关注

609

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder DataWindow
社区管理员
  • DataWindow社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧