当前位置: 代码迷 >> Lotus >> 请问Lotus中文档循环出错处理以及删除设计元素有关问题
  详细解决方案

请问Lotus中文档循环出错处理以及删除设计元素有关问题

热度:157   发布时间:2016-05-05 07:10:38.0
请教Lotus中文档循环出错处理以及删除设计元素问题

1.   多文档循环出错处理,要求一份文档出错的话自动转到下一份文档运行,不会出错中止:

set   doc=view.getfirstdocument
while   not   (doc   is   nothing)
          on   error   goto   ErrorHandle

          Expression   1;

          Expression   2;

          ......

nextdoc:
          set   doc=view.getnextdocument(doc)
wend

ExitPoint
          exit   sub
ErrorHandle:
          goto   nextdoc

以上的语句如果在循环中出错的话,第一个出错文档可以捕捉到,并自动转到下一份文档,但如果有第二份出错的话就会自动报错中止运行了,比如(Type   mismatch).   请问要如何处理,   我尝试过在   ErrorHandle   处加上一个
Error=True
Resume   Next
来代替   Goto   NextDoc,   但是这样好像在循环内部执行语句时每次都要判断一下Error是否为True,里面有机会出错的地方比较多,难道每次都要判断一下?有没有更好的办法呢?

2.   我们的系统里面有一些DB中的部分设计元素是从一个定制模板中继承的,   并不是自动从数据库的模板中继承(假设   DB的标准模板是DB   Temp,但是里面有些Script   Library   ,Agent   ,SubForm,   Form是从DB   Customization中继承的,DB   Temp中并不包含这些元素).我现在想把这些元素删除掉,我从定制的模板DB   Customization当中把元素删除,然后再刷新这些DB,怎么一个元素都没去掉呢?请问要如何处理,有一百多个DB哦,我可不想一个个去手动删除啊.


------解决方案--------------------
居然还在用 goto....

写一个代理批处理一下把
------解决方案--------------------
关于第一个问题,是否可以尝试用
Example: Resume statement

Sub ResumeSub()
On Error GoTo ErrHandler
' ...
Error 1 ' Intentionally raise an error.
Error 10
Error 100
' ...
Exit Sub

ErrHandler: ' Error-handling routine
Print "Error " & Err & " at line number " &Erl
Resume Next ' Resume the procedure.
End Sub
' The error-handling routine prints information about the
' current error. Then LotusScript resumes execution of the
' script at the statement following the statement that caused
' the current error.
------解决方案--------------------
set doc=view.getfirstdocument

在你定义的view中用视图选择公式筛选出会出错的文档,
这样循环体内根本就用不着判断
  相关解决方案