View.ExecuteAction 方法
基于在该视图中选择的数据,针对表单的基础 XML 文档执行 Microsoft InfoPath 编辑命令。
命名空间: Microsoft.Office.Interop.InfoPath.SemiTrust
程序集: Microsoft.Office.Interop.InfoPath.SemiTrust(位于 Microsoft.Office.Interop.InfoPath.SemiTrust.dll 中)
语法
声明
Sub ExecuteAction ( _
bstrAction As String, _
varXmlToEdit As Object _
)
用法
Dim instance As View
Dim bstrAction As String
Dim varXmlToEdit As Object
instance.ExecuteAction(bstrAction, varXmlToEdit)
void ExecuteAction(
string bstrAction,
Object varXmlToEdit
)
参数
bstrAction
类型:System.String要执行的编辑操作的名称。
varXmlToEdit
类型:System.Object要对其应用编辑操作的域或组的名称。这等同于表单定义 (.xsf) 文件的 xmlToEdit 元素中 name 属性的值。
备注
ExecuteAction 方法用于基于在视图中选择的上下文,通过编程的方式对表单的基础 XML 文档执行内置的 InfoPath 编辑操作。
所执行的操作与单击相同的菜单或工具栏按钮时所使用的操作相同;即 .xsf 文件中的按钮元素有相应的 xmlToEdit 和 action 属性的操作。与使用按钮一样,操作将基于当前所选项:操作将作用于所选的上下文(如果所选项会导致按钮禁用,则 ExecuteAction 方法将无效)。
有可能先使用 SelectNodes 方法或 SelectText 方法设置所选项上下文,然后调用 ExecuteAction 方法操作该上下文。
在下列情况中,ExecuteAction 方法将返回错误:
bstrAction 参数不包含有效的编辑组件名称。
varXmlToEdit 参数与视图中定义的编辑组件不匹配。
特定的编辑操作需要 varXmlToEdit 参数。
编辑操作不适用于所选的上下文。
下表列出了可用于 ExecuteAction 方法的参数组合。
组合 |
说明 |
---|---|
"Copy" |
将所选数据复制到剪贴板。 |
"Paste" |
将数据从剪贴板复制到插入点处。 |
"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 方法。
重要
此成员只能由与当前打开的表单在相同域中运行的表单访问,或者由已授予跨域权限的表单访问。
示例
在以下示例中,ViewObject 对象的 ExecuteAction 方法用于删除所选数据并将其放置到剪贴板中:
thisXDocument.View.ExecuteAction("Cut", Type.Missing);
在以下示例中,ViewObject 对象的 ExecuteAction 方法用来基于所选上下文,使用 xCollection 编辑组件插入数据:
thisXDocument.View.ExecuteAction("xCollection::insert", "group1_1");