infopath 任务窗格介绍与技巧
一、介绍
1、复杂的表单会让用户在填写时感到迷惑。占位符文本、视图、条件格式和规则有助于使填写表单更为容易,但这些功能都没有提供对表单工作原理的概述。
可以创建一个自定义任务窗格并将它添加到表单模板中,让用户更易于正确地理解和填写基于表单模板的表单。
要点 自定义任务窗格在与浏览器兼容的表单模板 (与浏览器兼容的表单模板:InfoPath 中使用特定兼容模式设计的一种表单模板。在将与浏览器兼容的表单模板发布到运行 InfoPath Forms Services 的服务器上时,该模板受到浏览器的支持。)中不受支持。如果要使用自定义任务窗格,则只能使用 InfoPath 来填写表单模板。
2、自定义任务窗格是用户填写表单时在 Microsoft Office InfoPath 任务窗格 (任务窗格:Office 程序中提供常用命令的窗口。它的位置适宜,尺寸又小,您可以一边使用这些命令,一边继续处理文件。)中显示的一个网页。
可以指定一个网页作为表单模板的默认自定义任务窗格。如果需要,可以将更多网页作为资源文件 (资源文件:在 InfoPath 外部创建的文件,如 .html、.xml 或 .xsd 文件,该文件已添加到表单模板中以支持表单功能。)添加到表单模板中,然后使用超链接来连接这些网页。当用户填写基于表单模板的表单时,他们可以在自定义任务窗格中浏览这些网页。
注释 只有 HTML (HTML:万维网文档所用的标准标记语言。HTML 使用标记来指定 Web 浏览器对文字和图形等网页元素的显示方式以及对用户操作的响应方式。) 会呈现在自定义任务窗格中。
提示 可以使用 Microsoft Office Word 为自定义任务窗格创建内容,然后将其另存为网页。大多数 Word 格式会保留。
在为自定义任务窗格创建内容后,可以对自定义任务窗格执行以下两种操作之一:
- 将自定义任务窗格添加到表单模板中 如果您预计不会经常更新或者根本不更新自定义任务窗格的内容,则应将 HTML 文件添加到表单模板中。这样即使在用户脱机填写表单时,他们也可以查看自定义任务窗格。
- 从表单模板链接到自定义任务窗格 如果计划频繁地更新自定义任务窗格的内容,并且不希望在每次更新内容时都重新发布表单模板,则应将 HTML 文件存储在其他位置。然后,可以从表单模板链接到内容。在想要更新自定义任务窗格时,您可以修改 HTML 文件或者将其替换为新的。
注释 填写基于表单模板的表单的用户必须能够访问您存储 HTML 文件的位置。另外,如果该位置与表单模板不在同一个域中,用户将在他们开始填写表单时看到一则警告。
创建自定义任务窗格
- 为自定义任务窗格编写内容,然后将其另存为网页。如果您使用 Word 编写内容,请将文件另存为筛选过的网页。
- 在设计模式 (设计模式:InfoPath 设计环境,可以在其中创建或修改表单模板。)中打开表单模板。
- 在“工具”菜单上,单击“表单选项”。
- 在“表单选项”对话框中的“类别”下,单击“编程”。
- 选中“启用自定义任务窗格”复选框。
- 要将自定义任务窗格添加到表单模板中以使表单可以在脱机时填写,请执行下列操作:
- 单击“资源文件”。
- 在“资源文件”对话框中,单击“添加”。
- 在“添加文件”对话框中,找到要添加的文件,然后双击该文件。
- 重复前两个步骤,直到添加完需要的所有资源文件。如果使用多个网页,请确保将它们全部添加。
- 添加完资源文件后,在“资源文件”对话框中单击“确定”。
- 在“任务窗格名称”框中,输入自定义任务窗格的名称。该名称将显示在任务窗格上面。
- 在“任务窗格位置”框中,请执行下列操作之一:
- 如果将网页放到 Web 服务器上,请输入该网页的 URL。
- 如果将网页作为资源添加,请单击箭头,然后从列表中选择网页。如果有多个资源文件,请选择所需文件作为默认文件。
- 单击“确定”。
- 要测试所做的更改,请单击“常用”工具栏上的“预览”,或者按 Ctrl+Shift+B。
自定义任务窗格应该显示在表单旁边。
二、技巧
1、任务窗格作为网页的载体,可以自定义显示内容也可以显示指定URL网址。
2、infopath表单中可以动态改变网页代码,然后网页也可以反过来调用表单内脚本。
3、任务窗格主要用途:选择商品等基础数据、显示统计报表、执行网页任务。
核心代码如下:
1、当前活动窗体标题:
Application.ActiveWindow.Caption = "员工信息";
2、窗格网页中调用infopath脚本并传参数过去:
<input type=submit value=查找客户 onclick='window.external.XDocument.Extension.dj(wd.value);'>
<a href='#'onclick=window.external.XDocument.Extension.dj('" + dataNodes[i].selectSingleNode("my客户单位").text + "');return false;>" + dataNodes[i].selectSingleNode("my客户单位").text + "</a>
3、得到窗格对象
objTaskPane = XDocument.View.Window.TaskPanes(0);
4、显示窗格
objTaskPane.Visible = true;
5、编辑窗格网页
objTaskPane.HTMLDocument.body.innerHTML = "html";
objTaskPane.HTMLDocument.body.innerText = "txt";
6、工具栏
var objCommandBars = Application.ActiveWindow.CommandBars;
objCommandBars.FindControl(1,748).Enabled = false; //另存为
objCommandBars("Menu Bar").Enabled = false; //菜单栏
objCommandBars("Standard").Enabled = false; //标准工具栏
objCommandBars("Formatting").Enabled = false; //格式工具栏
7、询问对话框
XDocument.UI.Confirm("Do you wish to continue?", 4);
按钮
xdOKCancel 1 OK and Cancel buttons are displayed.
xdYesNoCancel 3 Yes, No, and Cancel buttons are displayed.
xdYesNo 4 Yes and No buttons are displayed
结果
xdOK 1 The OK button was clicked.
xdCancel 2 The Cancel button was clicked.
xdYes 6 The Yes button was clicked.
xdNo 7 The No button was clicked.
8、获取表单DOM对象
窗格中得到:window.external.XDocument
模式窗口中得到:if (typeof window.dialogArguments == "object")gobjXDocument = window.dialogArguments;
9、视图上对控件操作
XDocument.View.ExecuteAction("xCollection::insert", "group1_1");
XDocument.View.ExecuteAction("Cut");
控件得到焦点
objXMLNode = XDocument.DOM.selectSingleNode("/employees/employee/name");
XDocument.View.SelectText(objXMLNode);
10、打网URL网页
objTaskPane = XDocument.View.Window.TaskPanes(0);
objTaskPane.Navigate("http://www.baidu.com");

浙公网安备 33010602011771号