Net.Data 提供一大組內建函數,可幫助您簡化 Web 頁面的開發。 這些函數已經過 Net.Data 的定義,您不必再用 FUNCTION 區塊來定義。 您只要在巨集中可呼叫使用者定義函數的任何地方,呼叫這些函數即可。
您可以使用您用來呼叫使用者定義的函數 (Net.Data 函數呼叫) 的同一個方法, 來呼叫內建函數。 圖 7 顯示 Net.Data 函數與巨集檔的互動方式。
Net.Data 從 HTML 區塊內處理內建函數的函數呼叫。 Net.Data 會處理函數,然後在巨集檔案中的 HTML 區塊內傳回任何結果。
內建函數可採三種方式傳回其結果。 您可以從字首便可看出它是以何種方式傳回結果的:
有些內建函數沒有所屬類型。 若要判斷具有哪種類型的特殊內建函數, 請參閱Net.Data 參考手冊中的 Net.Data 內建函數章節。
下列段落將提供 Net.Data 內建函數的高階概觀。請使用這些函數來執行一般目的、算術、字串、字組或表格操作函數。此外,您可以使用持續函數來進行異動處理。 關於每一個函數的語法和範例說明, 請參閱 Net.Data 參考手冊。 這些函數中有一些要求變數在它們被使用前就被設定,方可使用它們,或須在特定上下文中使用它們。
此組函數可讓您改變資料或存取系統服務程式, 藉此協助您開發網頁。 您可以使用此組函數, 來查詢與設定環境變數,來使用 HTML 跳出碼 (escape code),以及從系統中取得其他有用的資訊。
例如,若要設定當發生特定狀況時,Net.Data 應跳出巨集,不處理巨集檔案的其餘部份, 請使用 DTW_EXIT 函數:
%HTML(cache_example) {
<html>
<head>
<title>這是頁面標題</title>
</head>
<body>
<center>
<h3>這是主要標題</h3>
<!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!>
<!Joe Smith 看到一篇非常短的頁面 !>
<!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!>
%IF (customer == "Joe Smith")
</body>
</html>
@DTW_EXIT()
%ENDIF
...
</body>
</html>
%}
DTW_URLESCSEQ 將會用它們的 escape 值置換 URL 中不容許的字元。例如,如果輸入變數 string1 等於 "Guys & Dolls",則 DTW_URLESCSEQ 會將輸出變數指定為值 "Guys%20%26%20Dolls"。
這些函數會執行算術運算,協助您計算或改變數字性資料。 除了標準的算數運算外,您也可以執行模數的除法, 指定結果的精確度,以及使用科學記數法。
例如,函數 DTW_POWER 會產生第一個參數的第二個參數次方並傳回結果, 如下列範例所示一般:
@DTW_rPOWER("2", "-3", result)
DTW_POWER 傳回 ".125"
這些函數可讓您處理字串中的字元。 您可以變更字串的大小寫, 插入或刪除字元,指定一個字串值給另一個變數, 以及其他有用的函數。
例如,您可以使用 DTW_ASSIGN 將輸入變數的值指定給輸出變數。您亦可以使用這個函數在巨集中變更變數。 在下列範例中,變數 RC 被指定為 zero。
@DTW_ASSIGN(RC, "0")
其他字串函數包括連接字串的 DTW_CONCAT 及在特定位置插入字串的 DTW_INSERT, 以及許多其他字串操作函數。
這些函數可讓您處理字串中的字組。 這些函數中的絕大部份,乃與字串函數的作用相同, 只不過其是以整個字組運作。 例如,可讓您計算字串中的字組數、除去字組、從字串中找出某個字組。
例如,使用 DTW_DELWORD 從字串中刪除設定的字數:
@DTW_DELWORD("Now is the time", "2", "2", result)
DTW_DELWORD 傳回字串 "Now time"。
其他字組函數包括傳回字元中的字元數的 DTW_WORDLENGTH 及傳回字串內字元位置的 DTW_WORDPOS。
您可以使用這些函數來產生報告或套表, 以便使用 Net.Data table 變數中的資料。 您也可以使用這些函數, 來取得與設定 Net.Data 表格變數中的值。 在表格變數中,乃含有一個陣列的值,以及其相關的直欄名稱。 這些函數方便您將整群的值傳給函數。
例如,DTW_TB_APPENDROW 會附加一列到表格中。在下列範例中, Net.Data 會附加 10 列到表格 myTable 中:
@DTW_TB_APPENDROW(myTable, "10")
此外,DTW_TB_DUMPH 會傳回以 <PRE></PRE> 標籤括住的巨集表格變數的內容, 且表格的每一列會顯示在不同行上。DTW_TB_CHECKBOX 則會從巨集表格變數中傳回一個或多個 HTML 核對框輸入標籤。
使用純本文檔介面 (FFI) 函數來開啟、讀取及操作純本文檔來源 (文字檔) 的資料, 以及在純本文檔中儲存資料。
例如,DTWF_APPEND 會將表格變數的內容寫到檔案的尾端,而 DTWF_DELETE 則會刪除檔案中的記錄。
此外,FFI 函數容許以 DTWF_CLOSE 與 DTWF_OPEN 鎖定的檔案。DTWF_OPEN 會鎖定檔案, 以便另一個處理無法讀取或更新檔案。當 Net.Data 完成該檔案時, DTWF_CLOSE 即會釋放它,以容許其他處理存取檔案。
使用 Web 登記函數來維護登記和其所包含之登錄。 Web 登記是一個由 Net.Data 維護密碼的檔案, 可讓您輕易地新增、取回與刪除登錄。
例如,DTWR_ADDENTRY 可新增登錄,而 DTWR_DELENTRY 則會刪除登錄。 DTWR_LISTSUB 會傳回關於 OUT 表格參數中的登記登錄的資訊, 而 DTWR_UPDATEENTRY 則會以新值取代設定的登記登錄的舊有值。
持續巨集函數會協助您定義哪些巨集區塊在單一異動內是持續的, 來支援 Net.Data 中異動的處理。 使用這些函數來定義異動的開頭與結尾、哪些 HTML 塊在整個異動中是持續的、 異動內變數的範圍,以及是否要確定或取消異動內的變更。
例如,DTW_ACCEPT 會識別異動的異動 handle,而 DTW_TERMINATE 則會識別異動中的最後一個 HTML 區塊。 DTW_RTVHANDLE 會對異動中的區塊建立唯一的異動 handle。在異動期間, 您可以使用 DTW_COMMIT 與 DTW_ROLLBACK,來起始確定與取消。