如何以程式設計方式變更 InfoPath 表單的預設檢視

文章翻譯 文章翻譯
文章編號: 826997 - 檢視此文章適用的產品。
全部展開 | 全部摺疊

在此頁中

結論

Microsoft Office InfoPath 表單支援多個檢視。一個檢視是預設的檢視。當 Microsoft InfoPath 2010、 Microsoft Office InfoPath 2007 或 Microsoft Office InfoPath 2003 中開啟表單時,您會在預設檢視中開啟表單。本文包含如何以程式設計方式變更 [預設檢視的 InfoPath 表單的範例。

建立新的表單

  1. 啟動 InfoPath。
    • 為 InfoPath 設計工具 2010年:
      1. 按一下 [新增],按一下 [空白表單,然後再按一下 [設計表單]
    • InfoPath 2007:
      1. 按一下 [檔案] 功能表上的 [設計表單範本]。
      2. 按一下 [設計表單範本 工作窗格中的 [空白,然後按一下 [確定]
    • InfoPath 2003:
      1. 按一下 [檔案] 功能表上的 [設計表單]。
      2. 在 [設計表單] 工作窗格,請按一下 [新空白表單]。

建立檢視 1

為 InfoPath 2010:
  1. 空白表單上鍵入標題的 [這是檢視 1],然後輸入 [點線] 下的 [檢查顯示檢視 2 開啟表單時]。
  2. 按一下以在第二行開始將您的指標。
  3. 控制項,連按兩下 核取方塊
  4. 按一下 [儲存] 圖示。
InfoPath 2007 和 InfoPath 2003:
  1. 空白表單上鍵入第一列上的 [這是檢視 1 並鍵入 要顯示檢視 2 開啟表單時檢查 第二行。
  2. 按一下以在第二行開始將您的指標。
  3. 按一下 [工作窗格] 下拉功能表 控制項
  4. [控制項] 工作窗格中按一下 [核取方塊]。
  5. 按一下 [儲存] 圖示。

建立檢視 2

為 InfoPath 2010:
  1. 按一下 頁設計] 索引標籤,檢視 1 是預設的表單檢視畫面的通知。
  2. 在 [檢視] 區段中,按一下 [新檢視]。
  3. 輸入 檢視 2,名稱然後按一下 [確定]
  4. [標題鍵入 [這是檢視 2]。
InfoPath 2007 和 InfoPath 2003:
  1. 按一下 [工作窗格] 下拉功能表 的檢視

    檢視 1 是預設的表單檢視畫面。
  2. 按一下 [動作] 工作窗格部分中的 [新增新檢視]。
  3. 輸入 檢視 2,名稱然後按一下 [確定]
  4. 在空白表單上鍵入 [這是檢視 2]。

新增 「 指令碼

InfoPath 2007

在 InfoPath 2010 和 2007年,您必須設定您要使用的程式設計語言。InfoPath 2003 略過此程序,然後再使用 [新增指令碼 程序。

附註 這個範例使用 C# 程式設計語言。您可以使用 Visual Basic 或其他可用的選項。
設定程式語言
為 InfoPath 2010:

在 InfoPath 2010 中執行這個範例指令碼之前您必須變更為 C# 程式設計語言。要這麼做,請您執行下列步驟。

警告 下列步驟所述的 [移除的程式碼] 指令會將所有現有的程式碼移除目前的表單。因此,請勿使用此選項除非您確定要執行此動作。
  1. 按一下 [開發 o 人 h 員 ? 工 u 具 ?] 索引標籤。
  2. 程式碼] 區段中按一下 [語言],],然後再按一下以選取 程式]。如果停用 [表單範本程式碼語言] 方塊中,按一下 [移除程式碼 若要移除表單中的所有現有的程式碼]。如果 表單範本程式碼語言] 方塊是可用的前往下一個步驟。
  3. 在 [表單範本程式碼語言] 方塊按一下以選取 C#,然後再按一下 [確定]
InfoPath 2007:

在 InfoPath 2007 中執行這個範例指令碼之前您必須變更為 C# 程式設計語言。要這麼做,請您執行下列步驟:

警告 下列步驟所述的 [移除的程式碼] 指令會將所有現有的程式碼移除目前的表單。因此,請勿使用此選項除非您確定要執行此動作。
  1. 在 [工具] 功能表上按一下 [表單選項]。
  2. 在 [類別] 清單按一下 [程式]。如果停用 [表單範本程式碼語言] 方塊中,按一下 [移除程式碼 若要移除表單中的所有現有的程式碼]。如果 表單範本程式碼語言] 方塊是可用的前往下一個步驟。
  3. 在 [表單範本程式碼語言] 方塊按一下 [C#,然後按一下 [[確定]
新增指令碼
為 InfoPath 2010:

將指令碼加入至 載入事件。要這麼做,請您執行下列步驟:
  1. 在 [開發 o 人 h 員 ? 工 u 具 ?] 索引標籤上按一下 [載入事件]。Microsoft Visual Studio 工具應用程式會啟動。
  2. 在指示的位置中加入下列程式碼範例。
    {
                //Create an XPathNavigator object for the main DOM
                XPathNavigator xnDocument = this.MainDataSource.CreateNavigator();
    
                //Create an XPathNavigator object for field1 - the check box for switching the View
                XPathNavigator xnDefaultView = xnDocument.SelectSingleNode("/my:myFields/my:field1", this.NamespaceManager);
          
                //Make sure that the XPathNavigator object is not null or an empty string
                if ((xnDefaultView != null) && (xnDefaultView.Value != ""))
    
                {
                    //Switch to the appropriate View
                    switch (xnDefaultView.Value)
    
                    {
                        case "false":
                            e.SetDefaultView("View 1");
                            break;
    
                        case "true":
                            e.SetDefaultView("View 2");
                            break;
    
                    }
            }
    }
    
  3. 儲存所作變更,然後關閉應用程式的 [Visual Studio 工具。
  4. 將您的表單範本儲存成 SwitchDefaultView.xsn,然後關閉表單範本。
InfoPath 2007

將指令碼加入至載入事件。要這麼做,請您執行下列步驟:
  1. 在 [工具] 功能表上指向 [程式,然後按一下 [載入事件。Microsoft Visual Studio 工具應用程式會啟動。
  2. 加入下列程式碼範例 Age_OnValidate 事件
    {
                //Create an XPathNavigator object for the main DOM
                XPathNavigator xnDocument = this.MainDataSource.CreateNavigator();
    
                //Create an XPathNavigator object for field1 - the check box for switching the View
                XPathNavigator xnDefaultView = xnDocument.SelectSingleNode("/my:myFields/my:field1", this.NamespaceManager);
          
                //Make sure that the XPathNavigator object is not null or an empty string
                if ((xnDefaultView != null) && (xnDefaultView.Value != ""))
    
                {
                    //Switch to the appropriate View
                    switch (xnDefaultView.Value)
    
                    {
                        case "false":
                            e.SetDefaultView("View 1");
                            break;
    
                        case "true":
                            e.SetDefaultView("View 2");
                            break;
    
                    }
  3. 儲存所作變更,然後關閉應用程式的 [Visual Studio 工具。
  4. 將您的表單範本儲存成 SwitchDefaultView.xsn,然後關閉表單範本。

InfoPath 2003

如果要在 InfoPath 2003 中新增指令碼,請依照下列步驟執行:
  1. 在 [工具] 功能表上指向 [指令碼,然後按一下 [Microsoft Script 編輯器]。
  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,然後關閉表單範本。

測試指令碼

針對 InfoPath 2010
  1. 開啟 [Microsoft Office InfoPath 填入。
  2. 按一下 [尋找表單]、 瀏覽至 SwitchDefaultView.xsn]、 選取它,然後按一下 [開啟]。

    表單都會在檢視 1 (初始的預設檢視) 中開啟。
  3. 按一下以選取 [檢視 2 核取方塊。
  4. 將表單儲存為 SwitchDefaultViewForm.xml,然後關閉表單。
  5. 在 [檔案] 索引標籤上按一下 [關閉],然後再按一下 [開啟]。
  6. 找出 SwitchDefaultViewForm.xml,然後按一下 [開啟舊檔]。
表單都會在檢視 2 中開啟。

InfoPath 2007 和 InfoPath 2003:
  1. 按一下 [檔案] 功能表 填寫表單

    附註請確定您填寫表單的預覽表單而不是這個步驟中。預覽並不會反映在 OnLoad 事件中的 [預設] 檢視的任何程式化變更。預覽模式永遠會顯示目前在 InfoPath 設計工具中選取的檢視。
  2. 在 InfoPath 2007 按一下 [開啟表單] 下的 [SwitchDefaultView]。

    在 InfoPath 2003 中按一下 [工作窗格中的 [SwitchDefaultView]。

    表單都會在檢視 1 (初始的預設檢視) 中開啟。
  3. 按一下以選取 [檢視 2 核取方塊。
  4. 將表單儲存為 SwitchDefaultViewForm.xml,然後關閉表單。
  5. 在 [檔案] 功能表上, 按一下 [開啟舊檔]。
  6. 找出 SwitchDefaultViewForm.xml,然後按一下 [開啟舊檔]。
表單都會在檢視 2 中開啟。

屬性

文章編號: 826997 - 上次校閱: 2010年5月14日 - 版次: 4.0
這篇文章中的資訊適用於:
  • Microsoft Office InfoPath 2007
  • Microsoft Office InfoPath 2003
  • Microsoft Office InfoPath 2003, Service Pack 1 (SP1)
  • Microsoft Infopath 2010
關鍵字:?
kbmt kbhowto KB826997 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:826997
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com