0

DynamicUpdateCommand以这种方式在宏内部使用:

sub addOrder

  set choosen = ActiveDocument.Fields("NUMORD").GetPossibleValues

  for i = 0 to choosen.Count - 1
    set result = ActiveDocument.DynamicUpdateCommand("UPDATE * SET CHOOSE = 'S' WHERE NUMORD = '" & choosen.Item(i).text & "' " )

    if result = false then
      MsgBox result.ErrorMessage
    end if  
  next

end sub

动态数据更新已启用。

它可以工作,但是,当我关闭 QlikView 并重新打开它时,它就不再工作了。即使尝试重新加载。

我凭经验意识到,要让它再次工作,我需要点击“保存”按钮,即使没有改变任何东西......

我该如何解决这个小问题?也许它与 RAM 和将 .qvw 文件保存到文件系统的方式有关?

非常感谢!

4

2 回答 2

0

在没有任何其他解决方案的情况下,我以这种解决方法结束,它以编程方式在文档打开时保存文档:

  • 文档属性... > 触发器 > 文档事件触发器 > OnOpen > 添加操作... > 添加 > 外部 > 运行宏 > 设置宏名称 = reactivateDynamicUpdateCommand
  • 工具 > 编辑模块...:添加此子例程:

    sub reactivateDynamicUpdateCommand
       ' I know, it's weird
       '... but needed to reactivate DynamicUpdateCommand functionality after a restart
       ActiveDocument.Save
    end sub
    

它可以工作,但最好有更好的解决方案。

于 2011-10-21T13:35:21.193 回答
0

从版本 11 开始,动态更新可以作为操作完成,而不是通过 VB 宏。最好尽可能使用操作。但是,有时即使使用动态更新操作,我也注意到与您描述的类似的冻结。我最终在动态更新之后立即添加了一个虚拟操作(例如,为虚拟变量分配一个值或添加Selection -> Back操作以补偿触发OnSelect)。

于 2012-12-26T15:56:22.653 回答