回 帖 发 新 帖 刷新版面

主题:[转帖][转帖]数据录入窗口的公用程序

数据录入窗口的公用程序

--------------------------------------------------------------------------------
作者:郭宝利  来源:原创  日期:2004.06.16 


数据录入窗口有很多公用程序,这里进行简单总结,然后读者可以考虑使用继承、用户对象等方式将这些公用内容封装起来,以便以后的开发中重用,从而提高软件的开发效率。公用程序总结以下几点: 
 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 0 
end if 

 
http://www.study01job.com

回复列表 (共1个回复)

沙发

这个帖子对我有启发哦,所以顶,并谢谢哦!

我来回复

您尚未登录,请登录后再回复。点此登录或注册