設定表單範本偵測表單的連線狀態

重要:  本文係由機器翻譯而成,請參閱免責聲明。本文的英文版本請見這裡,以供參考。

如果您要設計表單範本的表單依賴網路連線至 [處理程序或傳回的資料,且您熟悉撰寫指令碼,您可以撰寫偵測到的網路連線狀態的表單範本為基礎的指令碼。您可以使用這個指令碼,有 Microsoft Office InfoPath 檢查新表單已連線至網路,以及表單將查詢傳送到外部資料來源之前,將可以連線至外部資料來源的表單。本文提供 Microsoft JScript Visual Basic Scripting Edition (VBScript) 的及範例決定如果表單範本為基礎的表單連線至網路,且如果這些表單可以連線到外部資料來源。

本文內容

概觀

JScript 範例

VBScript 範例

在表單範本中使用指令碼範例

概觀

若要判斷以表單範本為基礎之表單的網路連線狀態,您可以使用 Application 物件的 MachineOnlineState 屬性。接著使用同一個 Application 物件的 IsDestinationReachable 方法,來判斷表單是否可以找到外部資料來源。MachineOnlineState 屬性包含代表表單連線狀態的值。這個屬性的可能值如下:

說明

0

電腦並未連線到網路。如果電腦並未連線到網路,或者電腦的網路卡已停用,就可能出現這個屬性值。

1

電腦已連線到網路。如果電腦使用網路線連線到網路,這個值表示電腦位於網路中。如果電腦有可用的無線網路卡,這個值就表示正在使用無線網路卡。不過,電腦可能並未連線到無線網路。

2

電腦已連線到網路,但 Windows Internet Explorer 的設定為離線工作。將 Internet Explorer 設定為離線工作時,資料庫或 Web 服務的資料連線可能無法正常運作。

您已認定使用者的電腦已連線至網路之後,您可以使用IsDestinationReachable方法來決定表單可以與外部資料來源的通訊。這個方法所需的時間統一資源定位器 (URL) 或統一資源名稱 (urn)) 做為參數的外部資料來源,並傳回其中一個布林值為以下值 ︰

True    表單在網路上找到外部資料來源。

False    表單找不到外部資料來源。外部資料來源可能已離線,或仍在網路中但無法使用。

本文中的指令碼範例只會判斷表單是否連線到網路。在本文中,當使用者第一次開啟表單時會使用這些指令碼範例。不過,如果您想在執行任何動作之前先檢查網路連線,也都可以使用這個指令碼。例如,當使用者按一下表單中的特定按鈕來判斷外部資料來源的網路連線是否存在時,就可以使用這個指令碼。無論選擇何時使用這個指令碼,您都可以根據表單是否連線到網路,新增執行特定動作的指令碼。例如,當電腦離線或無法連線到外部資料來源時,您可以讓 InfoPath 顯示警告訊息,通知使用者無法使用外部資料來源。您可以自訂警告訊息的內容,告訴使用者在無法使用外部資料來源時要採取的行動。例如,您可以建議使用者稍後再嘗試填寫表單,或要求使用者連絡其支援服務。

頁面頂端

JScript 範例

var machineState = Application.MachineOnlineState;
var displayMessage = machineState;
switch(machineState)
{
case 0:
{
displayMessage = "The computer is not connected to a network.";
break;
}
case 1:
{
if (!Application.IsDestinationReachable("http://example"))
{
displayMessage = "The computer is connected to a network, "
+ "but the external data source is not "
+ "available. Contact the data source "
+ "administrator for more information.";
}
else
{
displayMessage = "The computer is connected to a network.";
}
break;
}
case 2:
{
displayMessage = "The computer is connected to a network, but "
+ "Internet Explorer is in offline mode. Some "
+ "data connections may not work until you "
+ "set Internet Explorer to online mode. To "
+ "switch to online mode, on the File menu in "
+ "Internet Explorer, click Work Offline.";
break;
}
default:
{
displayMessage = "An unknown error occurred: Error: "
+ machineState;
}
}
XDocument.UI.Alert(displayMessage);

頁面頂端

VBScript 範例

Dim machineState, displayMessage, returnValue
machineState = Application.MachineOnlineState
displayMessage = machineState
returnValue = False
Select Case machineState
Case 0
displayMessage = "The computer is not connected to a network."
Case 1
returnValue = Application.IsDestinationReachable("http://example")
If returnValue = False Then
displayMessage = "The computer is connected to a network, but "
displayMessage = displayMessage + "the external data source is "
displayMessage = displayMessage + "not available. Contact the "
displayMessage = displayMessage + "data source administrator "
displayMessage = displayMessage + "for more information."
Else
displayMessage = "The computer is connected to a network."
End If
Case 2
displayMessage = "The computer is connected to a network, but "
displayMessage = displayMessage + "Internet Explorer is in "
displayMessage = displayMessage + "offline mode. Some data "
displayMessage = displayMessage + "connections may not work "
displayMessage = displayMessage + "until you set Internet "
displayMessage = displayMessage + "Explorer to online mode. "
displayMessage = displayMessage + "To switch to online mode, "
displayMessage = displayMessage + "on the File menu in "
displayMessage = displayMessage + "Internet Explorer, click "
displayMessage = displayMessage + "Work Offline."
Case Else
displayMessage = "An unknown error occurred: Error: "
displayMessage = displayMessage + machineState + "."
End Select
XDocument.UI.Alert(displayMessage)

頁面頂端

在表單範本中使用指令碼範例

如果您要先測試指令碼範例,然後才用於表單範本中,您可以使用下列程序來建立空白表單範本,接著從本文複製其中一個指令碼範例到 OnLoad 事件。每當使用者根據這個表單範本建立新表單時,便會執行 OnLoad 事件中的指令碼。然後您可以在電腦連線到網路、中斷網路連線,以及連線到網路但 Internet Explorer 設定為離線模式等情況下,預覽表單範本以測試指令碼範例。

  1. 複製本主題先前列出的其中一個指令碼範例,然後貼到文字編輯器中 (例如 Microsoft 記事本)。

    附註: 複製文字編輯器指令碼範例,您將其新增至表單範本之前,可避免超文字標記語言 (HTML) 格式化標記出現在 [指令碼。

  2. 在 InfoPath 中,按一下 [檔案] 功能表上的 [設計表單範本]

  3. [設計新的] 底下,按一下 [設計表單範本] 對話方塊中的 [表單範本],然後按一下 [空白],再按一下 [確定]

  4. 根據預設,新的表單範本會設定為使用 JScript 做為指令碼語言。若要使用 VBScript 做為指令碼語言,請變更表單範本的指令碼語言。

    作法

    1. 按一下 [工具] 功能表上的 [表單選項]。

    2. 按一下 [類別] 清單中的 [程式設計]

    3. [程式設計語言] 底下的 [表單範本程式碼語言] 清單中,按一下 [VBScript],然後按一下 [確定]

  5. [工具] 功能表上,指向 [程式設計],然後按一下 [On Load 事件]。Microsoft Script Editor 啟動時,游標會放在 OnLoad 事件上。

  6. 在 Microsoft Script Editor 的 OnLoad 事件中,將 // Write your code here (JScript) 或 ' Write your code here (VBScript) 文字取代為先前複製到文字編輯器的指令碼範例。

  7. 配合環境需求修改指令碼範例。例如,您可以修改訊息並將 http://example 變更為外部資料來源的 URL 或 URN。

  8. 在 Microsoft Script Editor 中,按一下 [檔案] 功能表上的 [儲存]

  9. 若要測試變更,請按一下 [標準] 工具列上的 [預覽],或按 CTRL+SHIFT+B。

頁面頂端

附註: 機器翻譯免責聲明︰本文係以電腦系統翻譯而成,未經人為介入。Microsoft 提供此等機器翻譯旨在協助非英語系使用者輕鬆閱讀 Microsoft 產品、服務及技術相關內容。基於本文乃由機器翻譯而成,因此文中可能出現詞辭、語法、文法上之錯誤。

擴展您的技能
探索訓練
優先取得新功能
加入 Office 測試人員

這項資訊有幫助嗎?

感謝您的意見反應!

感謝您的意見反應! 我們將協助您與其中一位 Office 支援專員連絡以深入了解您的意見。

×