你目前正处于脱机状态,正在等待 Internet 重新连接

你的浏览器不受支持

你需要更新你的浏览器才能使用该网站。

更新到 Internet Explorer 的最新版本

HOWTO:以编程方式更改 Microsoft Office InfoPath 2003 表单的默认视图

针对 Office 2003 的支持已终止

Microsoft 已于 2014 年 4 月 8 日终止了针对 Office 2003 的支持。该更改已影响到您的软件更新和安全选项。 了解这一措施对于您的含义以及如何继续保持受保护状态。

概要
Microsoft Office InfoPath 表单支持多个视图。其中一个视图是默认视图。当您在 InfoPath 中打开一个表单时,您打开的是该表单的默认视图。本文介绍如何以编程方式更改 InfoPath 表单的默认视图。

返回页首

创建新表单

  1. 启动 InfoPath 2003。
  2. 在“文件”菜单上,单击“设计表单”。
  3. 在“设计表单”任务窗格中,单击“新建空白表单”。
返回页首

创建 View 1

  1. 在空白表单的第一行中键入 This is View 1,然后在第二行中键入 Check to display View 2 when the form is opened
  2. 在“任务窗格”下拉菜单中,单击“控件”。
  3. 在“控件”任务窗格中,单击“复选框”。
  4. 将“复选框”文本更改为 View 2
返回页首

创建 View 2

  1. 在“任务窗格”下列菜单中,单击“视图”。

    “View 1”是表单的默认视图。
  2. 在任务窗格的“操作”部分中,单击“添加一个新视图”。
  3. 键入名称 View 2,然后单击“确定”。
  4. 在空白表单中,键入 This is View 2
返回页首

添加脚本

  1. 在“工具”菜单上,指向“脚本”,然后单击“Microsoft 脚本编辑器”。
  2. 向代码窗口中添加以下代码:
    function XDocument::OnLoad(eventObj){	//Pick the default view based on the value of element DefaultView	var objDefaultView = XDocument.DOM.selectSingleNode("//my:field1");	if ((objDefaultView != null) && (objDefaultView.text != ""))   	{		switch (objDefaultView.text)      		{         		case "false":				    XDocument.ViewInfos("View 1").IsDefault = true;            			break;         		case "true":            			XDocument.ViewInfos("View 2").IsDefault = true;            			break;      		}   	}}
  3. 保存该脚本,然后关闭 Microsoft 脚本编辑器。
  4. 将您的表单模板另存为 SwitchDefaultView.xsn,然后关闭该表单模板。
返回页首

试运行

  1. 在“文件”菜单上,单击“填写表单”。

    注意:请确保在此步骤中填写表单而不是预览表单。预览不会反映在 OnLoad 事件中对默认视图所做的任何编程更改。预览模式始终显示 InfoPath 设计器中当前选中的视图。
  2. 在任务窗格中,单击“切换默认视图”。

    该表单在 View 1(初始的默认视图)中打开。
  3. 单击“View 2”复选框。
  4. 将该表单另存为 SwitchDefaultViewForm.xml,然后关闭该表单。
  5. 在“文件”菜单上单击“打开”。
  6. 找到 SwitchDefaultViewForm.xml,然后单击“打开”。

    该表单在 View 2 中打开。
返回页首
属性

文章 ID:826997 - 上次审阅时间:10/04/2011 07:47:00 - 修订版本: 4.0

  • Microsoft Office InfoPath 2007
  • Microsoft Office InfoPath 2003
  • Microsoft Infopath 2010
  • kbhowto KB826997
反馈
document.write(" ='" + (window.location.protocol) + "//c.microsoft.com/ms.js'><\/script>");