hur.cn - 华软网

 热门搜索

数据录入窗口的公用程序

  作者:未知    来源:网络    更新时间:2019/4/16
数据录入窗口的公用程序

----------------------------------------------------------------------------

----
转载   http://www.study01job.com/pb/book/  PB论坛  PB文章库 PB资料下载 PB案例

下载等等


数据录入窗口有很多公用程序,这里举行简单总结,然后读者能够思量运用继承、用户

对象等方式将这些公用内容封装起来,以便以后的开发中重用,进而提高软件开发

率。公用程序总结以下几点: 
 1、插入 
  通常提供一个命令按钮,在按钮的Clicked事件中编写以下剧本: 
   dw_1.ScrollToRow(dw_1.InsertRow(0)) 
   2、删除 
  通常提供一个命令按钮,在按钮的Clicked事件中编写以下剧本: 
   integer li_flag 
     long ll_CurRow 

     ll_CurRow = dw_1.GetRow(0) 
     if ll_CurRow < 1 then return 

      li_Flag = MessageBox('提醒','确实要删除当前数据?',Question!,YesNo!,2) 
      if li_Flag = 1 then 
         dw_1.DeleteRow(ll_CurRow) 
      end if 
   3、提供一个关闭按钮,在该按钮的Clicked事件上编写以下剧本: 
    Close(parent) 
    4、提供一个保存按钮,在该按钮的Clicked事件上编写以下剧本: 
    Long ll_Rows 

     ll_Rows = dw_1.ModifiedCount() + dw_1.DeletedCount() 
     if ll_Rows < 1 then return 
     if dw_1.Update() = 1 then 
         commit; 
         MessageBox('提醒','数据保存成功。保存了' + String(ll_Rows) + '条数据

。') 
     else 
         rollback; 
         MessageBox('提醒','数据毛病,情仔细检查。') 
       end if 
     5、在数据窗口控件dw_1的Constructor事件中编写以下剧本: 
      This.SetTransObject(SQLCA) 
        在DBError事件中编写以下剧本: 
       return 1 
          在ItemError事件中编写以下剧本: 
       return 1 
          在LoseFocus事件中编写以下剧本: 
       This.AcceptText() 
       6、在窗口的CloseQuery事件中编写以下剧本: 
       integer li_flag 
           long ll_Rows 

          dw_1.AcceptText() 
          ll_Rows = dw_1.ModifiedCount() + dw_1.DeletedCount() 
          if ll_Rows > 0  then 
li_flag = MessageBox('提醒','数据已经修改,是否保存?',& 
                           Question!,YesNoCancel!,1) 
choose case li_flag 
case 1//保存 
  if dw_1.Update() = 1 then 
          commit; 
          return 0 
    else 
          if MessageBox('提醒','数据毛病,不能保存。是否继'& 
                                               '续关闭?',Question!,YesNo!,2) 

= 1 then 
return 0 
           else 
rollback; 
return 1 
           end if 
    end if 
case 2//不保存 
rollback; 
return 0 
case 3//取消 
return 1 
end choose 
else 
return
------华软网友回答------
jf
------华软网友回复------
这个很罕见啊
------华软网友回复------
呵呵,普及教育啊
晚了
------华软网友回复------
JF
------华软网友回复------
^_^
------华软网友回复------
JF

------华软网友回复------
恩,是的,我也写过的,不过结构没有这么严谨啊
------华软网友回复------
T_T
------华软网友回复------
倘若是公用程序则必需思量一点,删除、保存前后经常有前置和后置条件,否则继承后经常要屏障祖先的代码才行。因此典型的写法应该以下:
if this.trigger event ue_before_update()=false then return false
//保存
if dw_active.update()=1 then
//保存成功后
if this.trigger event ue_after_update()=false then return false
....


------华软网友回复------
赞成楼上的观点,多加一点事件是很有利益的,至少在措置惩罚突发的需求的时候,能够有条路走
------华软网友回复------
支持      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。