View.ExecuteAction(String, Object) 方法

定义

根据视图中选择的数据,对表单的基础 XML 文档执行 Microsoft InfoPath 编辑命令。

public:
 void ExecuteAction(System::String ^ bstrAction, System::Object ^ varXmlToEdit);
public void ExecuteAction (string bstrAction, object varXmlToEdit);
abstract member ExecuteAction : string * obj -> unit
Public Sub ExecuteAction (bstrAction As String, varXmlToEdit As Object)

参数

bstrAction
String

要执行的编辑操作的名称。

varXmlToEdit
Object

要对其应用编辑操作的域或组的名称。 这等价于表单定义 (.xsf) 文件的 xmlToEdit 元素中 name 属性的值。

示例

在以下示例中,对象的 ExecuteAction 方法 ViewObject 用于删除所选数据并将其放在剪贴板上:

thisXDocument.View.<span class="label">ExecuteAction</span>("Cut", Type.Missing);

在以下示例中,对象的 ExecuteAction 方法 ViewObject 用于基于所选上下文使用 xCollection 编辑组件插入数据:

thisXDocument.View.<span class="label">ExecuteAction</span>("xCollection::insert", "group1_1");

注解

使用 ExecuteAction 方法,可以基于在视图中选择的上下文,以编程方式对表单的基础 XML 文档执行内置的 InfoPath 编辑操作。

所执行的操作与单击等效的菜单或工具栏按钮时所使用的操作相同;即 .xsf 文件中的每个按钮元素都有相应的 xmlToEditaction 属性。 与使用按钮一样,操作将基于当前所选项:操作将作用于所选的上下文(如果所选项会导致按钮被禁用,则 ExecuteAction 方法将无效)。

可以先使用 SelectNodes(IXMLDOMNode, Object, Object) 方法或 SelectText(IXMLDOMNode, Object) 方法设置选择上下文,然后调用 ExecuteAction 方法对该上下文进行操作。

在下列情况中,ExecuteAction 方法将返回错误:

  • 参数 bstrAction 不包含有效的编辑组件名称。
  • 参数 varXmlToEdit 与视图中定义的编辑组件不匹配。
  • varXmlToEdit参数是特定编辑操作所必需的。
  • 编辑操作不适用于所选的上下文。
  • 下表列出了可用于 ExecuteAction 方法的参数组合。
“复制”将所选数据复制到剪贴板。
“粘贴”将数据从剪贴板复制到插入点处。
“Cut”删除所选数据并将其复制到剪贴板。
“Delete”删除所选数据。
“xCollection::insert”, “xmlToEdit使用 xCollection 编辑组件,基于所选的上下文插入数据。 如果当前所选项位于 xCollection 的某个容器(由 .xsf 中 xCollection 的 xmlToEdit 元素指定)内,则将 fragmentToInsert 元素数据追加到该容器中。
“xCollection::insertBefore”, “xmlToEdit使用 xCollection 编辑组件,将数据插入所选上下文之前。 如果当前所选项位于 xCollection 的某项(由 .xsf 中 xCollection 的 xmlToEdit 元素指定)内,则将 fragmentToInsert 元素数据插入到该项之前。
“xCollection::insertAfter”, “xmlToEdit使用 xCollection 编辑组件,将数据插入到所选上下文之后。 如果当前所选项位于 xCollection 的某项(由 .xsf 中 xCollection 的 xmlToEdit 元素指定)内,则将 fragmentToInsert 元素数据插入到该项之后。
“xCollection::remove”, “xmlToEdit使用 xCollection 编辑组件从所选上下文中删除数据。 如果当前所选项位于 xCollection 的某项(由 .xsf 中 xCollection 的 xmlToEdit 元素指定)内,则删除该项。
“xCollection::removeAll”, “xmlToEdit使用 xCollection 编辑组件,删除所选上下文中包含的所有数据。 如果当前所选项位于 xCollection 的某个容器(由 .xsf 中 xCollection 的 xmlToEdit 元素指定)内,则该操作将删除该容器内的所有项。
“xReplace::replace”, “xmlToEdit使用 xReplace 编辑组件,替换所选上下文中的数据。 如果当前所选项位于 xReplace 的某项(由 .xsf 中 xReplace 的 xmlToEdit 元素指定)内,则使用 fragmentToInsert 元素数据替换该项。
“xOptional::insert”, “xmlToEdit使用 xOptional 编辑组件,基于所选上下文插入数据。 如果当前所选项位于 xOptional 的某个容器(由 .xsf 中 xOptional 的 xmlToEdit 元素指定)内,则将 fragmentToInsert 元素数据追加到该容器中。
“xOptional::remove”, “xmlToEdit使用 xOptional 编辑组件从所选上下文中删除数据。 如果当前所选项位于 xOptional 的某项(由 .xsf 中 xOptional 的 xmlToEdit 元素指定)内,则删除该项。

注意 在某些情况下,从 OnClick 为视图中的按钮调用 ExecuteAction 方法可能会导致错误。 这是因为单击该按钮时,所选上下文将变为按钮。 在这种情况下,最好在自定义任务窗格、工具栏或菜单上使用按钮 (或链接) 来调用 ExecuteAction 方法。

重要提示:此成员只能由与当前打开的窗体在同一域中运行的表单访问,或者由已授予跨域权限的表单访问。

适用于