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                              

                      或建立ENDPRINTPRG文件,内容为            

                               
  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                              

                    或建立GROCOUNTPRG文件,内容为            

                             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毫秒