顯示檔的 EDTCDE (編輯碼) 關鍵字

使用此欄位層次關鍵字,可編輯能夠輸出的數值欄位。

此關鍵字的格式為:

EDTCDE(edit-code [* |floating-currency-symbol])
視指定了哪些編輯碼,編輯包括對顯示的欄位外觀進行下列變更:
  • 抑制前導零。
  • 可以為欄位加上逗點及句點,以顯示小數位數,並將數字按三位數分成一組。
  • 可在數字右側加上減號或 CR 來顯示負值。
  • 零值可顯示為零或空白。
  • 可在有效位數左側顯示星號,提供星號保護。
  • 在最左邊有效位數的左側,可緊貼著顯示稱為浮動貨幣符號 的貨幣符號 (對應於系統值 QCURSYM)。若為固定貨幣符號,請使用 EDTWRD 關鍵字。
  • 可使用使用者定義的編輯碼進一步編輯欄位。

EDTCDE 涵蓋了大部分的編輯需求。當 EDTCDE 關鍵字不足以滿足需求時,請使用 EDTWRD。

同一個欄位不可同時指定 EDTCDE 及 EDTWRD。如果先前在資料庫檔案中定義的欄位已指定 EDTCDE, 您無需在顯示檔中,為該欄位指定 EDTCDE。您可以在位置 29 中指定 R,以參照先前定義的欄位。 顯示檔中會包括為參照欄位指定的編輯設定。不過,如果您同時為顯示檔欄位指定了長度、 資料類型或小數位數,顯示檔就不會包括對參照欄位指定的編輯設定, 並且您必須在顯示檔中重新指定編輯設定。

DFT 及 DFTVAL 關鍵字不能與 EDTCDE 關鍵字一起指定。

選項指示器對此關鍵字無效。

指定編輯碼及編輯字組的規則,在所有檔案類型中都相同。您可以指定兩種編輯碼: i5/OS® 編輯碼及使用者定義的編輯碼。

EDTCDE 關鍵字僅對位置 35 中為 Y 或空白的欄位 (資料類型/鍵盤移位) 有效。 使用此關鍵字時,會將位置 35 使用的預設值變更為 Y。

i5/OS 編輯碼

i5/OS 編輯碼包括:

1 至 4
A 至 D
J 至 Q
W 至 Z

註: System i® 硬體操作時帶有偏好符號 F,它相當於使用編輯碼 X。編輯碼 X 會使空白鍵盤移位 (位置 35) 預設為僅接受數值 (屬性 Y)。欄位的顯示長度是由鍵盤移位決定,而非由編輯碼 X 決定 (預設的僅接受數值 Y 屬性,可能為欄位新增 1 個位置供小數使用)。 如果 DATE 或 TIME 關鍵字指定了編輯碼 X,將不會顯示分隔字元。

選擇性地指定星號填入樣式或浮動貨幣符號

您可以使用編輯碼 1 至 4、A 至 D 及 J 至 Q,選擇性地指定星號填入樣式或浮動貨幣符號。

當指定星號填入樣式時,會針對每個抑制的零印出一個星號 (*)。 對於零平衡欄位,會將整個欄位列印為星號。

當指定浮動貨幣符號時,符號會出現在第一個有效位數的左側。 當使用編輯碼抑制零平衡時,不會在零平衡上列印符號 (指定的符號必須符合貨幣符號的系統值 (QCURSYM)。 當建立檔案時,符號必須相符。使用該檔案時,則無需相符)。

註: 如果在建立檔案之後變更編輯碼,則會使用建立檔案時所指定的編輯設定。 除非重建檔案,否則不會使用新的編輯碼。

下表彙總由 i5/OS 編輯碼所提供的功能。

表 1. i5/OS 編輯碼彙總表
編輯碼 顯示逗點1 顯示小數點1 為負值時顯示符號 QDECFMT 系統值的空白值 QDECFMT 系統值的 I 值 QDECFMT 系統值的 J 值 抑制前導零
1 無符號 .00 或 0 ,00 或 0 0,00 或 0
2 無符號 空白 空白 空白
3   無符號 .00 或 0 ,00 或 0 0,00 或 0
4   無符號 空白 空白 空白
A CR .00 或 0 ,00 或 0 0,00 或 0
B CR 空白 空白 空白
C   CR .00 或 0 ,00 或 0 0,00 或 0
D   CR 空白 空白 空白
J -(減號) .00 或 0 ,00 或 0 0,00 或 0
K -(減號) 空白 空白 空白
L   -(減號) .00 或 0 ,00 或 0 0,00 或 0
M   -(減號) 空白 空白 空白
N -(減號) .00 或 0 ,00 或 0 0,00 或 0
O -(減號) 空白 空白 空白
P   -(減號) .00 或 0 ,00 或 0 0,00 或 0
Q   -(減號) 空白 空白 空白
W2            
Y3            
Z4            
附註:
  1. QDECFMT 系統值決定小數點字元 (美式用法中的句點)、用於分隔成三位數一組的字元 (美式用法中的逗點) 以及零抑制的類型 (根據逗點及句點位置而定)。
  2. W 編輯碼會抑制五位數長度日期欄位最左側的零。也會抑制六至八位數長度欄位最左側的三個零。 W 編輯碼還可根據下列型樣,在月、日及年之間插入斜線 (/):
    • nn/nnn
    • nnnn/nn
    • nnnn/nnn
    • nnnn/nn/nn
  3. Y 編輯碼會抑制三至六位數長度或八位數長度日期欄位最左側的零。 也會抑制七個位置長度欄位最左側的兩個零。Y 編輯碼還可根據下列型樣,在月、日及年之間插入斜線 (/):
    • nn/n
    • nn/nn
    • nn/nn/n
    • nn/nn/nn
    • nnn/nn/nn
    • nn/nn/nnnn

    如果 DATE 關鍵字有指定 EDTCDE(Y),則在執行時間使用的分隔字元是工作屬性 DATSEP。 斜線 (/) 是預設的 DATSEP。

  4. Z 編輯碼會移除數值欄位的符號 (加號及減號)。在寫入欄位之前,會將單位位置的符號變為十六進位 F。

使用者定義的編輯碼

編輯碼 5 至 9 是使用者定義的編輯碼。使用者定義的編輯碼可以比 i5/OS 編輯碼執行更多的編輯。 例如,您可能需要編輯包括連字號 (如電話號碼) 或多個小數點的數字。 您可以使用使用者定義的編輯碼,來處理這些功能。這些編輯碼稱為 QEDIT5、QEDIT6、QEDIT7、QEDIT8 及 QEDIT9,並且可以在 DDS 或高階語言程式中,以數字 (5、6、7、8 或 9) 來參照它們。

使用者定義的編輯碼是一種 i5/OS 物件, 必須在建立顯示檔之前,就已經存在。它是使用「建立編輯說明 (CRTEDTD)」指令建立的。 建立指定使用者定義之編輯碼的顯示檔時,會從先前建立的編輯說明中擷取編輯資訊。 若在建立顯示檔之後變更使用者定義的編輯碼,除非重建顯示檔,否則不會影響顯示檔。

下表顯示編輯碼、未編輯的原始資料及已編輯的輸出。 零抑制及小數字元是由系統值 QDECFMT 決定。日期分隔字元則由工作屬性 DATSEP 決定。 在此圖例中,假設 QDECFMT 等於 x (空白),DATSEP 等於 / (斜線)。

表 2. 有效的編輯碼、原始資料及已編輯的輸出
編輯碼 具有兩個小數位數的正數 沒有小數位數的正數 具有三個小數位數的負數1 沒有小數位數的負數1 具有兩個小數位數的零平衡1 沒有小數位數的零平衡1
未編輯 1234567 1234567 xxxx.125– 125– xxxxxx xxxxxx
1 12,345.67 1,234,567 .125 125 .00 0
2 12,345.67 1,234,567 .125 125    
3 12345.67 1234567 .125 125 .00 0
4 12345.67 1234567 .125 125    
A 12,345.67 1,234,567 .125CR 125CR .00 0
B 12,345.67 1,234,567 .125CR 125CR    
C 12345.67 1234567 .125CR 125CR .00 0
D 12345.67 1234567 .125CR 125CR    
J 12,345.67 1,234,567 .125- 125- .00 0
K 12,345.67 1,234,567 .125- 125-    
L 12345.67 1234567 .125- 125- .00 0
M 12345.67 1234567 .125- 125-    
N 12,345.67 1,234,567 -.125 -125 .00 0
O 12,345.67 1,234,567 -.125 -125    
P 12345.67 1234567 -.125 -125 .00 0
Q 12345.67 1234567 -.125 -125
W2 1234/567 1234/567 0/125 0/125 0/000 0/000
Y3 123/45/67 123/45/67 0/01/25 0/01/25 0/00/00 0/00/00
Z4 1234567 1234567 125 125    
附註:
  1. X 代表空白。
  2. W 編輯碼會抑制五位數長度日期欄位最左側的零。也會抑制六至八位數長度欄位最左側的三個零。 如需詳細資訊,請參閱表 1 的第二個註腳。
  3. Y 編輯碼會抑制三至六位數長度或八位數長度日期欄位最左側的零。 也會抑制七個位置長度欄位最左側的兩個零。如需詳細資訊,請參閱表 1 的第三個註腳。
  4. Z 編輯碼會移除符號 (加號或減號),並抑制前導零。

範例

下列範例顯示如何指定 EDTCDE 關鍵字。

|...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
00010A            PRICE          5  2   1 10EDTCDE(J)
00020A            SALES          7  2   2 10EDTCDE(K $)
00030A            SALARY         8  2   3 10EDTCDE(1 *)
     A
因為指定了 J 編輯碼,所以 PRICE 的顯示長度是 7, 使欄位包含 1 個小數點以及結尾減號。它編輯為:
ddd.dd-
其中的 d 代表數字。
SALES 的顯示長度是 11,因為指定了 K 編輯碼及浮動貨幣符號。 它編輯為:
$dd,ddd.dd-
SALARY 的顯示長度是 10, 因為編輯碼 1 指定了星號填入樣式。它編輯為:
ddd,ddd.dd
相關概念
僅接受數值 (Y)
相關資訊
系統值