smartforms控制分页,统计合计数

来源:互联网 发布:如何找家教兼职知乎 编辑:程序博客网 时间:2024/05/18 01:34

今天做了一个表单的打印又多了解了些smartforms。

1.window的用处

如果一个smartforms要求任何时候都要打印表头表尾可以用table实现,但是table分页的时候根据之前的测试会有点小问题。这个时候可以表头表尾用windows,里面用一个模板。(这个时候通常是套打,把上边距和左边距弄好)这样表头和表尾就会固定好。而且只要有新的一页表头和表尾都会出现。

2.强制分页

套打要求如果超过11行则强制分页这是如何做到了?可以在smartforms里写代码去控制。首先当然要有一个统计行数的变量在全局定义里定义。如下图:

image

那每打印一行还要统计打印的行数,就要写代码控制了。在loop下可以插入代码,写上

  • G_CURRENTLINES = G_CURRENTLINES + 1.
  • G_PAGINATION = G_CURRENTLINES MOD 11.

就可以达到效果。但是注意里面输入参数要输入G_CURRENTLINES和G_PAGINATION否则会报错,这里不知道为什么这么麻烦。然后再加上一个判断如果G_PAGINATION为0则进行分页。如下图,创建一个”可选的”.

image

其实就是一个判断,在条件里面加上G_PAGINATION为0的判断条件。

image

条件为真时加上分页的命令即可。如下图,注意勾上转到新页

image

3.统计合计数

统计合计数当然也是先自定义一个变量来实现的,然后在遍历的时候进行累加,换页的时候清零。不过我却发现,如果有换页的时候合计数都是0!想了以后明白了,因为新建的window在模板的结点后,smartforms执行顺序是从上到下依次执行的,如果有分页,分页时因为清空了变量,所以又分页的情况下合计数都是0.所以求合计数的时候都再新建一个变量,用它来统计合计数。

4.小技巧

  • 4.1 smartforms在word2007里有时没显示格式,要按Ctr+Shift+Alt+S.就会出现格式的选择。
  • 4.2 上边距 + window.高度 <= 纸张.高度
  • 4.3 有时字体设置太大,或者一列的宽度较小会造成自动换行!如果把高度设置的低点的话,这时又不能自动换行,会把字符串截断的。
原创粉丝点击