正如您在下面的脚本中看到的,我正在尝试使用SendKeys发送 Ctrl + Shift + S 来显示所有工作表和QlikView中的对象,但它不起作用。但是,如果我发送一些其他键,如" ^ s" ( Ctrl + S )然后它工作正常。
Set objShell = CreateObject("Wscript.Shell")
Set Qv = CreateObject("QlikTech.QlikView")
Qv.OpenDoc "C:\Program Files\QlikView\Examples\Documents\Executive Dashboard.qvw"
set QvDoc = Qv.ActiveDocument
Wscript.Sleep 1000
objShell.AppActivate QvDoc.GetApplication.GetProcessId
objShell.SendKeys "^+s"
答案 0 :(得分:1)
在这种特殊情况下,“显示所有表格和对象”选项(由隐藏的组合键 Ctrl + Shift + S )实际上是一个用户权限,并构成整个文档安全性的一部分,而像save这样的东西通常不是用户权限。
由于文档安全性非常重要,我相信QlikTech禁止对该设置进行写访问。这意味着它只能通过COM读取。然而,由于您只是传递组合键,因此可能看起来不清楚为什么其中任何一个会影响您。但是,当您通过COM实例化QlikView时,我相信QlikView应用程序检测到这一点,因此会自动禁用任何可能改变文档用户权限的组合键。
另一个原因可能是QlikView文档在用户模式而不是管理模式下运行,因此这也会禁止更改用户权限,因此可能需要检查SECTION ACCESS
文档。
另一种方法是使用指向变量的条件来控制隐藏工作表的可见性,然后使用Windows脚本更改变量以显示隐藏工作表。 可以在此处找到有关此解决方案和其他讨论的进一步阅读:http://community.qlik.com/thread/36719#155925