我已经有了一些方法,我正在使用Java和雅各布库连接到SAP GUI脚本引擎-不知何故,我无法再创建一个我想使用的方法。
我正在使用"PoojaGugu“https://github.com/PoojaGugu/SAP-GuiClient-Automation/blob/master/Java/library/src/main/java/com/library/generic/SAPGeneric.java来研究这个案例。
我已经尝试了复制一些方法,编辑其中的一些地方,尽管它不起作用。我不能给你提供例子。
所以让我们来看看真正的问题。我现在有相当多的VBA代码。我一直在摆弄Java --只是为了了解一些比在Excel中制作宏更好的东西。我正在使用VB连接到SAP脚本引擎,只是为了自动化我的一些工作。我不能使用Java和雅各布来创建一个合适的方法来具体地做这件事:
Set grid = session.FindById("wnd[0]/usr/cntlWC_INSP_CHAR/shellcont/shell")
grid.pressToolbarButton "&SORT_DSC"这就是它在我的Excel宏中的样子,它是工作的。要简化它:
session.FindById("wnd[0]/usr/cntlWC_INSP_CHAR/shellcont/shell").pressToolbarButton "&SORT_DSC"它正在按下SapGrid对象上id为&SORT_DSC的按钮。但是使用前面提到的示例,我可以为您提供一个在完全相同的“网格”作用域上的完全相同的显示(事务)上工作的方法:
*/SAPGuiGridSelectOrDeselectColumn
* Objective - to select or deselect the column in the grid
* parameter : partial id string , column name , SelectOrDeselect - Pass true to select column and false to Deselect the column
* created by Venkata Siva kumar
*/
public void SAPGuiGridSelectOrDeselectColumn(String idstr, String column, boolean SelectOrDeselect) throws Exception
{
String id = getSAPObjectIDHelperMethod(getSession(), "ID", idstr, "", "");
session = new ActiveXComponent(getSession().invoke("FindById",id).toDispatch());
if (SelectOrDeselect)
Dispatch.call(session, "selectColumn", column);
else
Dispatch.call(session, "deselectColumn", column);
}
/*SAPGuiGridSelectOrDeselectColumn这个是从同一页上的表中选择列。为了让您了解我在VBA中是如何做到这一点的:
grid.selectColumn "VARIANCE"其中“网格”是前面提到的路径/对象地址。它选择了一个名为"VARIANCE“的列,它的范围与我想要按下%SORT按钮的SapGuiGrid范围相同。这个方法是有效的。
我想让我的方法基于这个方法,单击我之前提到的按钮,但没有成功(老实说,不仅仅是那个方法)。我该如何继续呢?
发布于 2020-02-19 19:34:23
这是我想出来的:
ActiveXComponent guiShellObject= new ActiveXComponent(Session.invoke("findById", "wnd[0]/usr/cntlWC_INSP_CHAR/shellcont/shell").toDispatch());
guiShellObject.invoke("pressToolbarButton", "&SORT_DSC");这将取代:
session.FindById("wnd[0]/usr/cntlWC_INSP_CHAR/shellcont/shell").pressToolbarButton "&SORT_DSC"上面的例子是不言而喻的。我不知道该怎么做,直到我了解到我可以用invoke方法传递额外的参数,而不只是一个。
https://stackoverflow.com/questions/57030545
复制相似问题