Wednesday, 3 January 2018

%EDITC Example

      * 
      * 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