*
* Description :·%EditC() Example
*
* Syntex :
*
* %EditC(Non float numeric expression : edit code {:*CURSYM | *ASTFILL | currency symbol })
*
* Function :·Edit the numeric expression for given edit code & return edited string
*
* Notes :
*
* Zero Balance:·if a number having all zeros will be given,
* function will return single zero followed by
* 0s in decimal positions(if dec pos > 0)
* for eg.
* 000000 => 0
* 000 => 0
* 000.00 => .00
* without zero balance·a blank string will be returned
*
*=====================================================
*
D EditedStr S 20A
D IntVar S 10 4 Inz(001234.5600)
D ZeroNoDecPos S 10 0 Inz(00000000000)
D ZeroWithDecPos S 10 4 Inz(000000.0000)
D Date4Dig S 4 0 Inz(1234)
D Date8Dig S 8 0 Inz(01012001)
C
/Free
// X : Numeric to Char without supressing leading zeros
EditedStr = %EditC(IntVar : 'X' ) ;
Dsply EditedStr ; // 00100
//--------------------------------------------------
// No Sign - Edit code will not put any sign in string
//==================================================
// with commas & zero balances
// ---------------------------
EditedStr = %EditC(IntVar : '1') ;
Dsply EditedStr ; // 12,34.5600
EditedStr = %EditC(ZeroNoDecPos : '1') ;
Dsply EditedStr ; // 0
EditedStr = %EditC(ZeroWithDecPos : '1') ;
Dsply EditedStr ; // .0000
// commas only No zero balance
// ---------------------------
EditedStr = %EditC(ZeroNoDecPos : '2') ;
Dsply EditedStr ; // *Blanks
EditedStr = %EditC(ZeroWithDecPos : '2') ;
Dsply EditedStr ; // *Blanks
EditedStr = %EditC(IntVar : '2') ;
Dsply EditedStr ; // 1,234.5600
// zero balances only
// ---------------------------
EditedStr = %EditC(IntVar : '3') ;
Dsply EditedStr ; // 1234.5600
EditedStr = %EditC(ZeroNoDecPos : '3') ;
Dsply EditedStr ; // 0
EditedStr = %EditC(ZeroWithDecPos : '3') ;
Dsply EditedStr ; // .0000
// No commas or zero balance
// ---------------------------
EditedStr = %EditC(ZeroNoDecPos : '4') ;
Dsply EditedStr ; // *Blanks
EditedStr = %EditC(ZeroWithDecPos : '4') ;
Dsply EditedStr ; // *Blanks
EditedStr = %EditC(IntVar : '4') ;
Dsply EditedStr ; // 1234.5600
//--------------------------------------------------
// CR Sign - Currency sign will be placed in front
//==================================================
// with commas & zero balances
// ---------------------------
EditedStr = %EditC(IntVar : 'A' : *CurSym) ;
Dsply EditedStr ; // $1,234.5600
EditedStr = %EditC(IntVar : 'A' : '@') ;
Dsply EditedStr ; // @1,234.5600
EditedStr = %EditC(IntVar : 'A' : *AstFill) ;
Dsply EditedStr ; // **1,234.5600
EditedStr = %EditC(ZeroNoDecPos : 'A' : *CurSym) ;
Dsply EditedStr ; // $0
EditedStr = %EditC(ZeroWithDecPos : 'A' : *CurSym) ;
Dsply EditedStr ; // $.0000
// commas only No zero balance
// ---------------------------
EditedStr = %EditC(IntVar : 'B' : *CurSym) ;
Dsply EditedStr ; // $1,234.5600
EditedStr = %EditC(IntVar : 'B' : '@') ;
Dsply EditedStr ; // @1,234.5600
EditedStr = %EditC(ZeroNoDecPos : 'B' : *CurSym) ;
Dsply EditedStr ; // No Output
EditedStr = %EditC(ZeroWithDecPos : 'B' : *CurSym) ;
Dsply EditedStr ; // No Output
// zero balances only
// ---------------------------
EditedStr = %EditC(IntVar : 'C' : *CurSym) ;
Dsply EditedStr ; // $1234.5600
EditedStr = %EditC(IntVar : 'C' : '@') ;
Dsply EditedStr ; // @1234.5600
EditedStr = %EditC(ZeroNoDecPos : 'C' : *CurSym) ;
Dsply EditedStr ; // $0
EditedStr = %EditC(ZeroWithDecPos : 'C' : *CurSym) ;
Dsply EditedStr ; // $.0000
// No commas or zero balance
// ---------------------------
EditedStr = %EditC(IntVar : 'D' : *CurSym) ;
Dsply EditedStr ; // $1234.5600
EditedStr = %EditC(IntVar : 'D' : '@') ;
Dsply EditedStr ; // @1234.5600
EditedStr = %EditC(ZeroNoDecPos : 'D' : *CurSym) ;
Dsply EditedStr ; // No Output
EditedStr = %EditC(ZeroWithDecPos : 'D' : *CurSym) ;
Dsply EditedStr ; // No Output
//--------------------------------------------------
// -Sign(R) - '-' Sign at right
//==================================================
// with commas & zero balances
// ---------------------------
EditedStr = %EditC(IntVar : 'J') ;
Dsply EditedStr ; // 1,234.5600-
EditedStr = %EditC(ZeroNoDecPos : 'J') ;
Dsply EditedStr ; // 0-
// commas only No zero balance
// ---------------------------
EditedStr = %EditC(IntVar : 'K') ;
Dsply EditedStr ; // 1,234.5600-
EditedStr = %EditC(ZeroNoDecPos : 'K') ;
Dsply EditedStr ; // No Output
// zero balances only
// ---------------------------
EditedStr = %EditC(IntVar : 'L') ;
Dsply EditedStr ; // 1234.5600-
EditedStr = %EditC(ZeroNoDecPos : 'L') ;
Dsply EditedStr ; // 0-
// No commas or zero balance
// ---------------------------
EditedStr = %EditC(IntVar : 'M') ;
Dsply EditedStr ; // 1234.5600-
EditedStr = %EditC(ZeroNoDecPos : 'M') ;
Dsply EditedStr ; // No Output
//--------------------------------------------------
// -Sign(L) - '-' Sign at right
//==================================================
// with commas & zero balances
// ---------------------------
EditedStr = %EditC(0.120 : 'N') ;
Dsply EditedStr ; // -1,234.5600
EditedStr = %EditC(ZeroNoDecPos : 'N') ;
Dsply EditedStr ; // -0
// commas only No zero balance
// ---------------------------
EditedStr = %EditC(IntVar : 'O') ;
Dsply EditedStr ; // -1,234.5600
EditedStr = %EditC(ZeroNoDecPos : 'O') ;
Dsply EditedStr ; // No Output
// zero balances only
// ---------------------------
EditedStr = %EditC(IntVar : 'P') ;
Dsply EditedStr ; // -1234.5600
EditedStr = %EditC(ZeroNoDecPos : 'P') ;
Dsply EditedStr ; // -0
// No commas or zero balance
// ---------------------------
EditedStr = %EditC(IntVar : 'Q') ;
Dsply EditedStr ; // -1234.5600
EditedStr = %EditC(ZeroNoDecPos : 'Q') ;
Dsply EditedStr ; // No Output
//--------------------------------------------------
// Date Edit
//==================================================
EditedStr = %EditC(Date8Dig : 'Y') ;
Dsply EditedStr ; // 1/01/2001
EditedStr = %EditC(010112 : 'Y') ;
Dsply EditedStr ; // 1/01/12
//--------------------------------------------------
// Suppress leading zeros
//==================================================
EditedStr = %EditC(00123.40 : 'Z') ;
Dsply EditedStr ; // 12340
EditedStr = %EditC(00123.400 : 'Z') ;
Dsply EditedStr ; // 123400
/End-Free
C SetOn LR
No comments:
Post a Comment