Wednesday, 3 January 2018

%DEC Example

      * 
      * Description :·%Dec() Example
      *
      * Syntex      :
      *
      * %Dec(Numeric/Character Expression { : Precision : Decimal Places })
      * %Dec(date/Time/TimeStamp { : Format })
      *
      * Output      :·Packed Decimal Value of first parameter
      *==========================================================
      *
     D ZonedDec        S              2S 1 Inz(1.1)
     D PackedDec       S              2P 1
     D DateUSA         S               D   Inz(D'2010-11-12')
     D PackedDate      S              8  0
     D Time            S               T   Inz(T'10.11.12')
     D PackedTime      S              8  0
     D TimeStamp       S               Z   Inz(Z'2001-02-03-04.05.06.070809')
     D PackedTimeStmp  S             20  0

     C
      /Free
        // ------------------------------------------------------
        // Numeric or Character Expression
        // ======================================================

           PackedDec = %Dec(ZonedDec : 2 : 1) ;
           Dsply %Char(PackedDec) ;             // 1.1

           PackedDec = %Dec('1.2' : 2 : 1) ;
           Dsply %Char(PackedDec) ;             // 1.2

           PackedDec = %Dec('+1.3' : 2 : 1) ;
           Dsply %Char(PackedDec) ;             // 1.3

           PackedDec = %Dec('1.4+' : 2 : 1) ;
           Dsply %Char(PackedDec) ;             // 1.4

           PackedDec = %Dec('1,5' : 2 : 1) ;
           Dsply %Char(PackedDec) ;             // 1.5
        // ------------------------------------------------------
        // Date/Time/TimeStamp Expression
        // ======================================================

           PackedDate = %Dec(DateUSA) ;
           Dsply %Char(PackedDate) ;            // 20101112

           PackedDate = %Dec(DateUSA : *USA) ;
           Dsply %Char(PackedDate) ;            // 11122010

           PackedTime = %Dec(Time) ;
           Dsply %Char(PackedTime) ;            // 101112

           PackedTime = %Dec(Time : *HMS) ;
           Dsply %Char(PackedTime) ;            // 101112

           PackedTimeStmp = %Dec(TimeStamp) ;
           Dsply %Char(PackedTimeStmp) ;        // 20010203040506070809

           PackedTimeStmp = %Dec(Z'2001-02-03-04.05.06') ;
           Dsply %Char(PackedTimeStmp) ;        // 20010203040506000000

      /End-Free
     C                   SetOn                                        LR

No comments:

Post a Comment