Joined: 14 Jan 2008 Posts: 1260 Location: South Carolina, USA
Unless I'm missing something, I believe you answered your own question. Prefix the variable with as many X's as needed and suffix it with the last three digits.
Move the account-number to a display PIC X field and perform this editing.
Joined: 20 Oct 2006 Posts: 4457 Location: porcelain throne
Well, first, since replacement/insertion editing does not allow for the 'x' (or 'X') char, I would simply make my account display field a group item,
subdefined into number of x's and 999.
Code:
05 ACCOUNT-DISPLAY.
10 FILLER PIC X(13).
88 ACCT-LEN-6 VALUE ' XXX'.
88 ACCT-LEN-7 VALUE ' XXXX'.
88 ACCT-LEN-8 VALUE ' XXXXX'.
88 ACCT-LEN-9 VALUE ' XXXXXX'.
88 ACCT-LEN-10 VALUE ' XXXXXXX'.
88 ACCT-LEN-11 VALUE ' XXXXXXXX'.
88 ACCT-LEN-12 VALUE ' XXXXXXXXX'.
88 ACCT-LEN-13 VALUE ' XXXXXXXXXX'.
88 ACCT-LEN-14 VALUE ' XXXXXXXXXXX'.
88 ACCT-LEN-15 VALUE ' XXXXXXXXXXXX'.
88 ACCT-LEN-16 VALUE 'XXXXXXXXXXXXX'.
10 DISPLAY-LAST-3 PIC 9(3).
MOVE ACCOUNT-NUMBER TO DISPLAY-LAST-3
EVALUATE LENGTH OF ACCOUNT-NUMBER
WHEN 16
SET ACCT-LEN-16 TO TRUE
WHEN 15
SET ACCT-LEN-15 TO TRUE
WHEN 14
SET ACCT-LEN-14 TO TRUE
WHEN 13
SET ACCT-LEN-13 TO TRUE
WHEN 12
SET ACCT-LEN-12 TO TRUE
WHEN 11
SET ACCT-LEN-11 TO TRUE
WHEN 10
SET ACCT-LEN-10 TO TRUE
WHEN 9
SET ACCT-LEN-9 TO TRUE
WHEN 8
SET ACCT-LEN-8 TO TRUE
WHEN 7
SET ACCT-LEN-7 TO TRUE
WHEN OTHER
SET ACCT-LEN-6 TO TRUE
END-EVALUATE