DynamicUpdateCommand перестает работать после перезапуска QlikView - PullRequest
0 голосов
/ 20 октября 2011

Я использую 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и снова открыть его, он больше не работает. Даже если попытаться перезагрузить.

Я эмпирически понял, что , чтобы заставить его работать снова, мне нужно нажать кнопку "Сохранить" ,даже не меняя ничего ...

Как я могу решить эту маленькую проблему?Может быть, это связано с оперативной памятью и способом сохранения файла .qvw в файловую систему?

Большое спасибо!

Ответы [ 2 ]

0 голосов
/ 26 декабря 2012

Начиная с версии 11 Динамическое обновление можно выполнять как Действия, а не через макрос VB. Предпочтительно использовать Действия, когда это возможно. Однако иногда даже при использовании действия «Динамическое обновление» я замечал зависание, подобное тому, что вы описали. В итоге я добавил еще одно фиктивное действие сразу после динамического обновления (например, присвоение значения фиктивной переменной или добавление действия Selection -> Back для компенсации срабатывания OnSelect ).

0 голосов
/ 21 октября 2011

Без какого-либо другого решения я закончил с этим обходным решением, которое программно сохраняет документ при открытии документа:

  • Свойства документа ...> Триггеры> Триггеры событий документа> OnOpen> Добавить действие (я) ...> Добавить> Внешний> Запуск макроса> установить имя макроса = activtivateDynamicUpdateCommand
  • Инструменты> Редактировать модуль ...: добавьте эту подпрограмму:

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

Это работает, хотя предпочтительнее было бы лучшее решение.

...