Software 版 (精华区)
发信人: checcy (老巴夺), 信区: Software
标 题: Visual FoxPro报表事件的应用
发信站: 哈工大紫丁香 (Fri Apr 3 23:57:44 1998), 转信
Visual FoxPro报表事件的应用
在VisualFoxPro中有一类不太引人注意的事件—
—报表带区事件,在报表设计器中每一带区都有两类事件
,入口事件和出口事件。
1使用方法
进入报表设计器,双击报表带区分隔条,打开报
表带区对话框,在“On Entry”输入触发进入带区事件的
函数名,在“ On Exit”输入触发离开带区事件的函数名
,注意这两个输入框,只能输入方法名或函数名,其他语
句 Visual
FoxPro会忽略。
2举例说明
例1:在每页报表的尾部常常要求打印某些信息
,如制表人,制表时间,每页小计等。用报表设计器非常
容易做到,在页注脚带区设置相应的控件即可。问题是在
报表的最后一页,常常不会满页,这样最后打印的数据与
页注脚之间存在一段空白,很不美观,特别是数据使用了
分隔线时更觉别扭。下面利用报表带区事件把最后一页页
注脚带区的内容移到细节带区之后。打开过程文件,新增
下列函数:
FUNCTION
EndPrint()
EndPrint=T
EndFunction
或建立ENDPRINTPRG文件,内容为
EndPrint=T
打开报表设计器,设计好各带区,或打开已有的
报表文件,当然页注脚带区应有内容,否则,下面的做法
毫无意义。全选页注脚带区各控件,复制到剪贴板,在“
Report”菜单下选“Title/Summary”菜单项,在出现的
窗口中选“Summary band”后,单击“OK”。把剪贴板的
内容粘贴到总结带区,调整好位置,这时用打印预览可见
最后一页数据后,紧接着输出页注脚,它们之间不存在空
白,但页尾出现重复数据,退出预览,新增报表变量EndP
rint,初始值为F,报表输出后释放。双击总结带区
分隔条,在“Summary”对话框的“On Exit”中键入EndP
rint(),退出后,分别双击注脚带区各控件,在弹出的对
话框中单击“Print When”后,在“Print Only When Ex
pression is True”中输入EndPrint=F,单击“OK”
即可。
例2:Visual FoxPro报表设计器的数据分组功能
非常强大和灵活,但分组的数量(组数)无法直接得到,
例如以客户名分组数据,各客户的相关项数和合计金额以
及全部客户的总计金额都容易得到,但客户的数量却无法
直接统计。下面利用报表带区事件统计分组组数。打开过
程文件,新增下列函数:
FUNCTION
GroCount()
GroCount=GroCount+1
EndFunction
或建立GROCOUNTPRG文件,内容为
GroCount=GroCount+1
打开报表设计器,设计好各带区,或打开已有的
报表文件。新增报表变量 GroCount,初始值为0,报表输
出后释放。双击注脚带区分隔条,在弹出的对话框的“On
Exit”中键入GroCount(),退出对话框,在“Report”
菜单下选“Title/Summary”项,在打开的对话框中选“S
ummary band”复选框,单击“OK”。在总结带区添加客
户数标签控件和字段控件,输入字段控件表达式为GroCou
nt,调整好大小和位置即可。
(广东 李伟明)
--
*********************************
Chengyan Che - Software Freelancer
Harbin, P.R.China
mailto: checcy@public.hr.hl.cn
ICQ: 5116726
--
☆ 来源:.哈工大紫丁香 bbs.hit.edu.cn.[FROM: checcy@public.hr.hl.]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.935毫秒