在VFP报表中实现每页打印指定记录数
VFP广泛应用于各企事业单位。我用它开发了一个构件检测信息管理系统,现在是我们日常工作中不可缺少的管理工具。开发经验很多,但我最想说的是报表中每页打印指定记录数的问题。
方法1
在VFP的报告生成器中,通过调整报告页面的页眉和页脚的高度来编辑报告和控制记录的数据打印在每一页上是一种相对简单和容易的方法。但是不同的电脑默认的纸张大小不同,或者同一种纸张类型的页边距设置不同,使得每页打印的记录数也不同。对于固定用户,固定打印机和纸张,没有问题,但是如果软件要在多台电脑上运行,或者要扩展到更广泛的用户,就要考虑不同打印机和纸张的问题。此时,可以通过下面的方法2和3来实现。
另外,有很多用户希望在表格中的记录数不是整页的情况下,在最后一页用空填充报表,只能通过以下两种方法实现。
方法2
以下过程假设报表中使用的表名是TEMP。数据文件
在报表设计器中:
1.删除报告中打印字段前面的所有别名前缀。
2.从数据环境中删除报表数据环境中的原始表。
3.将以下代码放入报告数据环境的Init中:
* - DetailNum是要在明细磁带中打印的记录数,可根据需要在此修改。
本地详细信息
DetailNum = 17
*-以下SQL语句消除了删除记录对分组字段的影响,并对数据进行了适当的排序。
select * from temps statable tmp1s when not deleted()& & & s按排序条件分组
SELECT int((recno()-1)/detail num)as group count,*;
来自Tmp1
sintosCURSOR Temp2
在TMP1中使用
*-为保持环境整洁,删除刚建立的临时过渡表。
删除文件TMP1.dbf
if文件(" TMP1.fpt ")
删除文件TMP1.fpt
结束条件
*-注意:您可以将上述代码中的DetailNum值设置为您希望为每个报告页面打印的记录数。
*-还可以在第一个SQL Select中设置sgroupsby子句,根据需要对数据进行排序。
4.在报表中添加一个分组,并将分组表达式设置为GroupCount(即上述第二个SQL Select语句中的第一个字段名称),并选中每个组在新页面上开始的复选框。
5.运行您的报告。
6.最后,应该注意的是,在运行报告之前应该设置正确的路径,以便VFP可以找到报告使用的表。
位律师回复
0条评论