QlikView 重新启动后 DynamicUpdateCommand 停止工作

发布于 2024-12-10 21:26:15 字数 650 浏览 0 评论 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 文件保存到文件系统的方式有关?

非常感谢!

I'm using DynamicUpdateCommand inside a macro in this way:

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

Dinamic Data Update is enabled.

It works, but, when I close QlikView and reopen it, it doesn't work anymore. Even if try reloading.

I empirically realized that to make it work again I need to click the "Save" button, even without changing anything...

How can I solve this little issue? Maybe is it connected with RAM and way of saving .qvw file to the file system?

Many thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

在风中等你 2024-12-17 21:26:15

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

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

    子 reactivateDynamicUpdateCommand
       ’我知道,这很奇怪
       '...但需要在重新启动后重新激活 DynamicUpdateCommand 功能
       ActiveDocument.保存
    结束子
    

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

Without any other solution I ended with this workaround, which saves the document programmatically on document opening:

  • Document Properties... > Triggers > Document Event Triggers > OnOpen > Add Action(s)... > Add > External > Run macro > set Macro name = reactivateDynamicUpdateCommand
  • Tools > Edit Module...: add this subroutine:

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

It works, though a better solution would be preferred.

等往事风中吹 2024-12-17 21:26:15

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

Starting from version 11 Dynamic Update can be done as Actions rather than through VB macro. It is preferable to use Actions when possible. However, sometimes even using Dynamic Update action I noticed freezes similar to what you described. I ended up adding one more dummy action right after Dynamic Update (e.g. assigning a value to dummy variable or adding Selection -> Back action to compensate triggering OnSelect).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文