How To Use Macro In Program.

*-----------------------------------------------------------------------
*
*  Company XXX Company Limited
*
*  ProgrameName:  ZZW_MACRO
*
*  Author: Lilo.Zhu
*
*  Date: 08/14/2007
*
*  Description: Study SAP In Program How To Use Macro
*
*-----------------------------------------------------------------------
REPORT  ZZW_MACRO 

Data: l_date type date.

Selection-Screen Begin Of Block B1 With Frame Title Text-001.
  Parameters: I_Date Type Date.
*              R_F1 RadioButton Group G1 Default 'X',
*              R_F2 RadioButton Group G1,
*              R_F3 RadioButton Group G1.
Selection-Screen End Of Block B1.

Selection-Screen Begin Of Block B2 With Frame Title Text-002.
  Parameters: R_F11 RadioButton Group G2 Default 'X',
              R_F22 RadioButton Group G2,
              R_F33 RadioButton Group G2.
Selection-Screen End Of Block B2.

*-----------------------------------------------------------------------
*  Define Macro
*-----------------------------------------------------------------------

Define Val_Date.
  Clear: %_Date1,
         %_Date2.

  %_Date1(4)    =  &1.  "Year
  %_Date1+4(2)  =  &2.  "Month
  %_Date1+6(2)  =  &3.  "Date

  %_Date2  =  %_Date1 -  1.
  %_Date2  =  %_Date2 +  1.

  If %_Date1 <> %_Date2.
    Sy-Subrc =  1.
  Else.
   Case &4.
     When 'YYYYMMDD'.
      CONCATENATE &1 &2 &3 into l_date.
     When 'DDMMYYYY'.
       CONCATENATE &3 &2 &1 into l_date.
     When 'MMDDYYYY'.
       Concatenate &2 &3 &1 into l_date.
   EndCase.
  EndIF.

End-Of-Definition.

Define  OutPut.
  Data: %_Date1 like Sy-Datum,
        %_Date2 like sy-Datum,
        %_Date3(8),
        %_Date4(8).

        Val_Date &1+0(4) &1+4(2) &1+6(2) &2.
End-Of-Definition.

*-----------------------------------------------------------------------
*  Initialization.
*-----------------------------------------------------------------------
Initialization.

*-----------------------------------------------------------------------
*  Start-Of-Selection
*-----------------------------------------------------------------------
Start-of-Selection.
   Data: X_Date(8),
         Flag(8).
    X_Date = I_date.

     IF R_F11 EQ 'X'.
       Flag = 'YYYYMMDD'.
     ElseIF R_F22 EQ 'X'.
       Flag = 'MMDDYYYY'.
     ElseIF R_F33 EQ 'X'.
       Flag = 'DDMMYYYY'.
     EndIf.
     Output  X_Date Flag.
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值