使用不可编写脚本的窗口进行SAP电子表格导出

2020-08-15 18:31发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,

我有一个代码,用于从带有不可脚本化的"另存为"窗口的查询中导出电子表格。 该代码的概念由 answers.sap.com 用户提供。 我的代码有2个问题。 你能请教吗?

这是导出代码的一部分:

"导出到电子表格-导出带有记录的记录时,记录了前2行,并且在运行良好时,打开了无法编写脚本的"另存为"窗口

session.FindById(" wnd [0]/usr/cntlCONTAINER/shellcont/shell")。pressToolbarContextButton"&MB_EXPORT" session.FindById(" wnd [0]/usr/cntlCONTAINER/shellcont/shell")。SelectContextMenuItem"&XXL "

"启动异步过程

设置WshShell = CreateObject(" WScript.Shell")WshShell.Run" C:\ Users \ AAA.LOGON \ Documents \ AAA \ ScriptCA.vbs"

'-Begin ------------------------------------------------------------ ---------------------

设置wshShell = CreateObject(" WScript.Shell")

WScript.Sleep 500

循环直到wshShell.AppActivate("另存为")= True

wshShell.Sendkeys"%nNA_SQ00FBL5N_CA10.XML"

'wshShell.Sendkeys"%nNA_SQ00FBL5N_CA10.XML%f"

'-End -------------------------------------------- -----------------------

问题1是我不知道如何使宏按下"保存"按钮,您的建议对我不起作用。

问题2是我在同一个宏中运行3个查询,我想以不同的名称导出XML格式的所有3个文件,并且引用了3个脚本。 运行宏文件时,文件名是随机填充的,而不是根据脚本填充的。 在我看来,第一个文件名被填充两次,然后第二个文件名而不是第三个文件名出现,如果我有第四个查询,第三个文件名也将出现。

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,

我有一个代码,用于从带有不可脚本化的"另存为"窗口的查询中导出电子表格。 该代码的概念由 answers.sap.com 用户提供。 我的代码有2个问题。 你能请教吗?

这是导出代码的一部分:

"导出到电子表格-导出带有记录的记录时,记录了前2行,并且在运行良好时,打开了无法编写脚本的"另存为"窗口

session.FindById(" wnd [0]/usr/cntlCONTAINER/shellcont/shell")。pressToolbarContextButton"&MB_EXPORT" session.FindById(" wnd [0]/usr/cntlCONTAINER/shellcont/shell")。SelectContextMenuItem"&XXL "

"启动异步过程

设置WshShell = CreateObject(" WScript.Shell")WshShell.Run" C:\ Users \ AAA.LOGON \ Documents \ AAA \ ScriptCA.vbs"

'-Begin ------------------------------------------------------------ ---------------------

设置wshShell = CreateObject(" WScript.Shell")

WScript.Sleep 500

循环直到wshShell.AppActivate("另存为")= True

wshShell.Sendkeys"%nNA_SQ00FBL5N_CA10.XML"

'wshShell.Sendkeys"%nNA_SQ00FBL5N_CA10.XML%f"

'-End -------------------------------------------- -----------------------

问题1是我不知道如何使宏按下"保存"按钮,您的建议对我不起作用。

问题2是我在同一个宏中运行3个查询,我想以不同的名称导出XML格式的所有3个文件,并且引用了3个脚本。 运行宏文件时,文件名是随机填充的,而不是根据脚本填充的。 在我看来,第一个文件名被填充两次,然后第二个文件名而不是第三个文件名出现,如果我有第四个查询,第三个文件名也将出现。

付费偷看设置
发送
5条回答
小熊yu生菜
1楼-- · 2020-08-15 19:15

你好艾格尼丝,

欢迎使用SAP社区。


  1. wshShell.Sendkeys"%nNA_SQ00FBL5N_CA10.XML%f"行中。
    %f在打开的文件对话框中表示Öffnen。
    根据本地语言,您必须将其更改为快捷方式 保存按钮的形式,以德语%S

  2. 您并行启动3个脚本,所有3个脚本都等待标题为"另存为"的窗口。 现在,一个带有该标题的窗口打开,所有3个脚本在该窗口的文件名字段中并行写入。 您不能将这种方法用于这种要求,因为您没有标准来区分从哪个SAP会话打开哪个"另存为"对话框。
    也许可以检测到所有者,在这种情况下为"选择电子表格" 对话框,所有者,SAP会话。 我认为,最好按顺序而不是并行执行此工作流。

最好的问候
Stefan

半个程序猿
2楼-- · 2020-08-15 19:11

请使用CODE设置代码格式。

查看区别:

'导出到电子表格- 当我进行记录导出时,记录了前两行,
 ',并且在运行良好时,将打开无法编写脚本的"另存为"窗口

 session.FindById(" wnd [0]/usr/cntlCONTAINER/shellcont/shell")。pressToolbarContextButton"&MB_EXPORT"
 session.FindById(" wnd [0]/usr/cntlCONTAINER/shellcont/shell")。SelectContextMenuItem"&XXL"

 '开始异步过程

 设置WshShell = CreateObject(" WScript.Shell")WshShell.Run" C:\ Users \ AAA.LOGON \ Documents \ AAA \ ScriptCA.vbs"

 '-开始 -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - -  ------------------

 设置wshShell = CreateObject(" WScript.Shell")
 做
   WScript.Sleep 500
 循环直到wshShell.AppActivate("另存为")= True

 wshShell.Sendkeys"%nNA_SQ00FBL5N_CA10.XML"
 'wshShell.Sendkeys"%nNA_SQ00FBL5N_CA10.XML%f"

 '-结束 -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - -  -------------------- 
浮生未央
3楼-- · 2020-08-15 19:17

您好Stefan,

感谢您的帮助! 我正在重组代码。

再次感谢您,Ágnes

Aaron 3364
4楼-- · 2020-08-15 19:17

您好ÁgnesKezsmarki

很高兴听到这个消息。

最诚挚的问候
Stefan

me_for_i
5楼-- · 2020-08-15 18:59

请使用按钮/超链接COMMENT代替ANSWER,因为ANSWER保留提出解决方案的建议,因此Stefan有更好的机会 会自动收到有关您的评论的通知。

一周热门 更多>