小白领不小心点了关闭工作白费,码农小张决定为获姑娘芳心又开夜车

2021-10-08 16:47:17 浏览数 (1)

“啊”,突然一时尖叫,码农小张一听就知道是小丽,他连忙站了起来,跑过去一看,小丽看着小张,顿时就直接哇哇大哭,哭得那个梨花带雨,连妆都花了。小张好一阵哄,结果才发现原来是她没按保存,而是按了软件右上角的叉,结果软件也没有提醒,一天的工作白费了。看着小丽的样子,小张顿时心软了,于是说拍拍胸脯,我来搞定,以后不会再出现保存不提醒了。

小张晚上留了下来加班,小李跑过来跟小张说,今天下班的时候,一辆保时捷停到了公司的楼下。小张恩了一声,也没有当回事,继续挑灯夜战。

表单设为私有工作期

表单Load事件添加如下代码

代码语言:javascript复制
CURSORSETPROP("Buffering", 5)  &&开放式表缓冲
SET MULTILOCKS ON 
use ryxx in 0

表单的QUERYUNLOAD事件添加检测修改代码

代码语言:javascript复制
select ryxx
for gnCount = 1 TO FCOUNT( ) && 循环次数等于字段的数目

if GETFLDSTATE(FIELD(gnCount))>=2 && 显示各字段,具体看GETFLDSTATE()函数
  isNeedToSave=.t.
  exit && 当有某个字段被修改后,即退出判断
endif
endfor


if isNeedToSave
ans=messagebox("要保存所做的修改吗?",3 32,"询问")
do case
   case ans=6 && 选择是
     =tableupdate(.t.)
   case ans=7 && 选择否
     =tablerevert(.t.)
   case ans=2 && 选择取消
endcase
endif

主界面关闭应该也需要触发关闭提醒

最后的主程序关闭退出代码

Release Windows (TMPFORM[I].Name)发触发表单的QUERYUNLOAD事件

注:祺佑业务管理系统为主表单的caption,最后才能关。

代码语言:javascript复制
If _Screen.FormCount>0
  Dimension TMPFORM[_SCREEN.FORMCOUNT]
  For I=1 To _Screen.FormCount
    TMPFORM[I]=_Screen.Forms(I)
  Endfor

  For I=1 To _Screen.FormCount
    If Inlist(TMPFORM[I].Caption,"祺佑业务管理系统","Toolbar1","维护精灵")

    Else
      Release Windows (TMPFORM[I].Name)
  *    TMPFORM[I].RELEASE
      If  Vartype(TMPFORM[I])='O'
        Exit
      Endif
    Endif
  Endfor
Endif

If _Screen.FormCount<=2
  Close All
Else
  Return 0
Endif
ON ERROR 
Clear Event
Clear Dlls
Set Library To
Quit

连编测试成功! 小张看看自己涨红的眼睛,说值了,这个时候,他还在想小丽不会再出现保存不了的情况了。

写在最后面的话

加菲猫的VFP公众号接受投稿,一经采用,即有稿费,稿费暂定50元一篇。

加菲猫的vfp倡导用VFP极简混合开发,少写代码、快速出活,用VFP,但不局限于VFP,各种语言混合开发。

已经带领一百多名会员成功掌到VFP的黑科技,进入了移动互联网时代,接下来我们要进入物联网领域。

0 人点赞