如何在PowerDesigner自动签出模型时抑制MsgBox弹窗
解决PowerDesigner自动签出时DBMS无效弹窗的问题
核心思路
通过PowerDesigner内置的Application.Interactive属性禁用交互模式,让所有需要人工干预的弹窗自动执行取消操作,同时结合错误捕获逻辑跳过有问题的模型。
具体实现代码
Dim rc Set rc = RepositoryConnection Dim CurrentRepositoryModel Set CurrentRepositoryModel = rc.FindChildByPath("path/to/RepositoryModel", PdRMG.Cls_RepositoryModel) ' 禁用交互模式,自动取消所有需要人工确认的弹窗 Application.Interactive = False On Error Resume Next CurrentRepositoryModel.CheckOut() ' 捕获错误并处理 If Err.Number <> 0 Then Output "签出失败,跳过模型: " & CurrentRepositoryModel.Name & ",错误信息: " & Err.Description Err.Clear ' 清除错误状态,避免影响后续操作 Else Output "成功签出模型: " & CurrentRepositoryModel.Name End If ' 恢复交互模式(根据后续操作需求选择是否保留) Application.Interactive = True
关键说明
Application.Interactive = False会强制PowerDesigner在遇到用户交互请求时,自动执行默认的取消/跳过动作,完全规避弹窗。- 错误捕获逻辑需紧跟
CheckOut方法执行,这样无需等待人工关闭弹窗,就能直接捕获DBMS无效的错误并跳过对应模型。 - 操作完成后建议恢复
Interactive属性为True,避免影响后续可能需要人工交互的操作流程。
内容的提问来源于stack exchange,提问作者Lucas Maraal
相关产品推荐
相关产品推荐

