水晶报表中,增加流水号的操作方法 希望得到的效果: 每次打开报表,流水号自动+1. 我要做一个押金单的报
发布网友
发布时间:2022-06-08 11:00
我来回答
共1个回答
热心网友
时间:2023-11-21 23:53
方法1:这个流水号最好放在押金单数据表里,字段设置为自增长长整数类型,Step=1,索引不重复,这样每增加一条押金单记录,这个流水号就会自动加一,打印报表时,从数据库取出这个流水号即可。非常方便。
例:采用SqlServer2005Express,其实别的数据库很类似,尤其是微软的几乎相同。
先建立流水表:
Create Table 押金单 (
流水号 int IDENTIFY PRIMARY KEY, --自增长整数类型,主键
金额 decimal(19,2) default 0, --默认为0
押款人 nvarchar(10) not null, --非空
押款时间 datetime default GetDate() --默认为取当前系统日期和时间
)
Go;--其实如果你不熟悉Sql语法,也可以用视窗设计界面来进行直观设计,无论是sqlserver还是Access,还是Foxpro还是别的数据库,都有类似的视窗设计界面。
每回创建新的押金单时那个流水号就会自动增一,不需要你再处理,数据库帮你做了。
在你用水晶报表打印押金单时,取出相应的记录即可。水晶报表的设计不用我说了,网上很多,拉数据还是推数据决定权在你。
方法2:将流水号记录进入文本文件,每次生成押金单报表时从文件取出这个号然后加一,将这个好传入对应的报表对象的TextObject对象,并保存流水号文件,这样做需要你经常检查这个文件以防止重复。
例:
创建一个文本文件,里面内容为最后的流水号文本,刚开始时可以是0,建立新的押金单时,读取这个文本的内容,转换为整数类型,加一,然后存回文本文件,同时,水晶报表对象假设为:rpt押金单,其中有一个文本框为流水号,名字为:TextLiushui,那么可以用报表的: rpt押金单.ReportDocument.ReportDifinition.ReportObjects["TextLiushui"].Text=[新流水号];这条语句为这个文本框赋值,剩下的工作你自己完成了。记住[rpt押金单]一定是初始化过后的报表对象!
这两个例子你可以试一试。