MS Word报告的输出设置在“sub terminate”。终止时 - 使用“X”按钮退出表单,还会执行“子终止”。我怎样才能禁用它?
我正在处理一个旧案例,我不知道为什么输出是用 sub terminate 写的?
简单的回答:你不能。
有些代码部分总是被执行。对于任何 LotusScript-Container,这在加载时为“Sub Initialize”,在卸载时为“Sub Terminate”。
例如一个表单还有诸如“QueryOpen”、“PostOpen”、“QuerySave”、“PostSave”...等事件:你也不能阻止这些事件的执行。
现在,如果您的代码在 Sub Terminate 中,但您不想在按下窗口关闭“X”按钮时执行它,那么您需要在某处设置一个标志。如果缺少此标志:不要执行。
您可以选择全局变量、文档项值或环境变量来确定是否应执行代码:
我将展示一个带有全局变量的示例:
在(声明)中放置:
Dim executeTerminate as Boolean
在你的终止中你包装你现有的代码:
If executeTerminate Then
'- your code
End If
或者你退出(如果你不喜欢附加if的缩进:
If executeTerminate = False Then Exit Sub
现在只要单击“x”,什么都不会发生。
如果你有一个应该触发代码的按钮,然后在按钮内部使用它:
executeTerminate = True
那应该可以解决问题。如前所述,您还可以使用文档项或环境变量来解决问题:
'- in button
'- With item:
Call doc.Replaceitemvalue( "ExecuteTerminate" , "1" )
'- With Environment
Call session.SetEnvironmentVar( "ExecuteTerminate" , "1" )
'- in Terminate
'- item:
If doc.GetitemValue( "ExecuteTerminate" )(0) = "1" Then
'- don't forget to reset
Call doc.Replaceitemvalue( "ExecuteTerminate" , "" )
'- Environment:
executeTerminate = session.GetEnvironmentString( "ExecuteTerminate" )
'- don't forget to reset
Call session.SetEnvironmentVar( "ExecuteTerminate" , "" )
If executeTerminate = "1" Then