Sunday, 3 November 2013

ABAP Syntax - I




*&---------------------------------------------------------------------*
*& Report  ZGEN_AUTONO
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT ZGEN_AUTONO.

  
DATA:   QTY TYPE INRI-QUANTITY,
          RC 
TYPE INRI-RETURNCODE,
          NBR
(10TYPE C,
          TYR 
TYPE ZHYEAR,
          TMPI 
TYPE C.

  
CALL FUNCTION 'NUMBER_GET_NEXT'
    
EXPORTING
      NR_RANGE_NR             
'01'
      OBJECT                  
'NR2'
*      QUANTITY                = '1'
      SUBOBJECT               
'4500'
     TOYEAR                  
'2013'
*     IGNORE_BUFFER           = ' '
    
IMPORTING
      
NUMBER                  NBR
      QUANTITY                
QTY
      RETURNCODE              
RC
    
EXCEPTIONS
      INTERVAL_NOT_FOUND      
1
      NUMBER_RANGE_NOT_INTERN 
2
      OBJECT_NOT_FOUND        
3
      QUANTITY_IS_0           
4
      QUANTITY_IS_NOT_1       
5
      INTERVAL_OVERFLOW       
6
      BUFFER_OVERFLOW         
7
      
OTHERS                  8.

  
IF SY-SUBRC <> 0.
    TMPI 
SY-SUBRC.
    
MESSAGE TMPI TYPE 'S'.
    
"MESSAGE 'TRIP NUMBER EXHAUSTED. PLEASE MAINTAIN' TYPE 'I'.
    
LEAVE PROGRAM.
  
ENDIF.

*  TYR = SY-DATUM+0(4).
*  GS_TRK-WERKS = 1010.
*  CONCATENATE GS_TRK-WERKS TYR NBR INTO GS_TRK-INUTN.
WRITE:/ NBR.




ALV


DATAIT_FCAT TYPE SLIS_T_FIELDCAT_ALV,
      WA_FCAT 
TYPE LINE OF SLIS_T_FIELDCAT_ALV.
DATA prg_name TYPE sy-repid.
DATA :seqnr TYPE i VALUE 0,
      
count TYPE i VALUE 0.

SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
SELECT-OPTIONSS_PCDAT FOR ZF_TRHR-PCDAT,
                S_TRINO 
FOR ZF_TRHR-TRINO,
                S_SOURC 
FOR ZF_TRHR-SOURC.
SELECTION-SCREEN END OF BLOCK B1.

TYPES:  BEGIN OF GTY_TRDT,
        INUTN 
TYPE ZF_TRHR-INUTN,
        WAGNO 
TYPE ZF_TRDT-WAGNO,
        NETWT 
TYPE ZF_TRDT-NETWT,
        USTAT 
TYPE ZF_TRDT-USTAT,
        ERDAT 
TYPE ZF_TRDT-ERDAT,
  
END OF GTY_TRDT.


DATAITAB TYPE TABLE OF GTY_ITAB,
      WA 
TYPE GTY_ITAB.

SELECT
  INUTN
  TRINO
  PCDAT
  SOURC
  NOWAG
  
FROM ZF_TRHR
  
INTO TABLE ITAB
  
WHERE TRINO IN S_TRINO
  
AND PCDAT IN S_PCDAT
  
AND SOURC IN S_SOURC.

  MESSAGE I001(ZF).
  SORT ITAB BY INUTN DESCENDING PCDAT DESCENDING.
  


SELECT
        INUTN
        WAGNO
        NETWT
        USTAT
        ERDAT
       
FROM ZF_TRDT
       
INTO TABLE IT_TRDT
       
FOR ALL ENTRIES IN ITAB
       
WHERE INUTN EQ ITAB-INUTN.

DELETE IT_TRDT WHERE USTAT NE 'X'.
MODIFY ITAB FROM WA INDEX TABIX TRANSPORTING TRI BAL NETWT.

DELETE ADJACENT DUPLICATES FROM IT_TRDT COMPARING INUTN ERDAT.

READ TABLE IT_TMP INTO WA_TMP WITH KEY INUTN WA_TRDT-INUTN
     ERDAT 
WA_TRDT-ERDAT.

APPEND WA_TMP TO IT_TMP.

REFRESH ITAB1.
LOOP AT ITAB INTO WA WHERE BAL GT 0.
    
MOVE-CORRESPONDING WA TO WA1.
    
APPEND WA1 TO ITAB1.
ENDLOOP.

DELETE ITAB WHERE BAL GT 0.

ITAB2[] ITAB1[].
DELETE ITAB2 WHERE INUTN NE WA1-INUTN.

PERFORM fill_catalog USING seqnr 'SLNO' 'SlNo'.
PERFORM fill_catalog USING seqnr 'INUTN' 'INUTN'.

  prg_name sy-repid.

  
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    
EXPORTING
*     I_INTERFACE_CHECK        = ' '
*     I_BYPASSING_BUFFER       = ' '
*     I_BUFFER_ACTIVE          = ' '
      i_callback_program       
prg_name
*     i_callback_pf_status_set = 'SET_PF_STATUS'
*     i_callback_user_command  = 'USER_COMMAND'
*     I_CALLBACK_TOP_OF_PAGE   = ' '
*     IS_LAYOUT                =
      it_fieldcat              
it_fcat
      I_DEFAULT                
'X'
      i_save                   
'X'
*     IS_VARIANT               =
    
TABLES
      t_outtab                 
ITAB
    
EXCEPTIONS
      program_error            
1
      
OTHERS                   2.
  
IF sy-subrc <> 0.
* Implement suitable error handling here
  
ENDIF.

FORM FILL_CATALOG  USING    P_SEQNR
                            
VALUE(P_0029)
                            
VALUE(P_0030).

  
CLEAR wa_fcat.
  wa_fcat
-col_pos p_seqnr.
  wa_fcat
-fieldname p_0029.
  wa_fcat
-seltext_m p_0030.
  
ADD TO seqnr.

  
IF wa_fcat-fieldname+0(1) = 'O'.
    wa_fcat
-emphasize 'X'.
  
ENDIF.
  
ADD TO seqnr.
  
APPEND wa_fcat TO it_fcat.

ENDFORM.   

INCLUDE ZF_WAGON_TIPPLING_DAYWISEF02.

TYPES BEGIN OF TY_RLTRHR.  "  Rail Trip Header Table
        
INCLUDE TYPE ZF_TRHR.
TYPES END OF TY_RLTRHR.










SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.

SELECT-OPTIONS S_TRINO  FOR  ZF_TRHR-TRINO," MATCHCODE OBJECT ZF_INUTN ,
                 S_PCDAT  
FOR  ZF_TRHR-PCDAT.
PARAMETERS :     P_WERKS  LIKE ZF_TRHR-WERKS OBLIGATORY MODIF ID M1.


SELECTION-SCREEN END OF BLOCK B1.
INITIALIZATION.
AT SELECTION-SCREEN OUTPUT.

GET PARAMETER ID 'WRK' FIELD P_WERKS.
  
LOOP AT SCREEN.
    
IF SCREEN-NAME 'P_WERKS'.
      
SCREEN-INPUT '0'.
      
MODIFY SCREEN .
    
ENDIF.
ENDLOOP.

AT SELECTION-SCREEN.
  
AUTHORITY-CHECK OBJECT 'M_BEST_WRK'
       
ID 'WERKS'     FIELD   P_WERKS
       
ID 'ACTVT'     FIELD '76'.
  
IF SY-SUBRC <> 0.
    
MESSAGE E138(ZF)."'No Authorization' TYPE 'E'.
  
ENDIF.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_TRINO-LOW.
  
PERFORM F4_TRINO.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_TRINO-HIGH.
  
PERFORM F4_TRINO.

START-OF-SELECTION.

*------------------------------------------------------------------*
*     select statment                                              *
*------------------------------------------------------------------*

  
SELECT  FROM ZF_TRHR               " Rail Trip Header Table
            
INTO TABLE I_RLTRHR
            
WHERE TRINO  IN  S_TRINO
            
AND   WERKS  EQ  P_WERKS
            
AND   PCDAT IN   S_PCDAT.

    CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
      
EXPORTING
        FORMNAME           
'ZWB_RELMEMO'
*       VARIANT            = ' '
*       DIRECT_CALL        = ' '
      
IMPORTING
        FM_NAME            
WRK_NAME
      
EXCEPTIONS
        NO_FORM            
1
        NO_FUNCTION_MODULE 
2
        
OTHERS             3.
    
IF SY-SUBRC <> 0.
      
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
              
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    
ENDIF.


    
CALL FUNCTION WRK_NAME "'/1BCDWB/SF00000549'
      
EXPORTING

          P_WERKS                     
=  P_WERKS
*     p_crtby                     =  p_crtby

        
TABLES
        I_RLTRHR                     
I_RLTRHR
        I_RLTRDT                     
I_RLTRDT.


    
IF SY-SUBRC <> 0.
      
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
              
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    
ENDIF.

MESSAGE E899(MMWITH 'No Records Found' .

DATAIT_TRHR TYPE TABLE OF GTY_TRHR,
      WA_TRHR 
TYPE GTY_TRHR.

FORM F4_TRINO .
  
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
       
EXPORTING
*   DDIC_STRUCTURE         = ' '
         RETFIELD               
'TRINO'
*   PVALKEY                = ' '
        DYNPPROG               
SY-CPROG
        DYNPNR                 
SY-DYNNR
        DYNPROFIELD            
=  'S_TRINO'
*   STEPL                  = 0
*   WINDOW_TITLE           =
*   VALUE                  = ' '
    VALUE_ORG              
'S'
*   MULTIPLE_CHOICE        = ' '
*   DISPLAY                = ' '
*   CALLBACK_PROGRAM       = ' '
*   CALLBACK_FORM          = ' '
*   CALLBACK_METHOD        =
*   MARK_TAB               =
* IMPORTING
*   USER_RESET             =
       
TABLES
         VALUE_TAB              
IT_TRHR
*   FIELD_TAB              =
*   RETURN_TAB             =
*   DYNPFLD_MAPPING        =
* EXCEPTIONS
*   PARAMETER_ERROR        = 1
*   NO_VALUES_FOUND        = 2
*   OTHERS                 = 3
               
.
  
IF SY-SUBRC <> 0.
* Implement suitable error handling here
  
ENDIF.


ENDFORM.                    " F4_TRINO

DATAIT_FCAT TYPE SLIS_T_FIELDCAT_ALV,
      WA_FCAT 
TYPE LINE OF SLIS_T_FIELDCAT_ALV.


DATA :seqnr TYPE i VALUE 0,
      
count TYPE i VALUE 0.

DATA prg_name TYPE sy-repid.
DATATABIX TYPE SY-TABIX.

SELECTION-SCREENBEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
SELECT-OPTIONSS_PCDAT FOR ZF_TRHR-PCDAT,
                S_TRINO 
FOR ZF_TRHR-TRINO.
SELECTION-SCREEN END OF BLOCK B1.


          CASE WA_TRDT-WBNUM.
            
WHEN '1' .
              WA
-WBNUM1 WA-WBNUM1 + 1.
              WA
-WBWT1 WA-WBWT1 + WA_TRDT-NETWT.
            
WHEN '2' .
              WA
-WBNUM2 WA-WBNUM2 + 1.
              WA
-WBWT2 WA-WBWT2 + WA_TRDT-NETWT.
            
WHEN '3' .
              WA
-WBNUM3 WA-WBNUM3 + 1.
              WA
-WBWT3 WA-WBWT3 + WA_TRDT-NETWT.
            
WHEN '4' .
              WA
-WBNUM4 WA-WBNUM4 + 1.
              WA
-WBWT4 WA-WBWT4 + WA_TRDT-NETWT.
            
WHEN '5' .
              WA
-WBNUM5 WA-WBNUM5 + 1.
              WA
-WBWT5 WA-WBWT5 + WA_TRDT-NETWT.
            
WHEN OTHERS.
          
ENDCASE.

REPORT ZF_WAGON_REC_REP.

INCLUDE ZF_WAGON_REC_REP_TOP.
INCLUDE ZF_WAGON_REC_REP_F01.

INITIALIZATION.


START-OF-SELECTION.
PERFORM GET_DATA.
END-OF-SELECTION.

PERFORM ALV_DISPLAY.

************************************************************************
*                     XXXXXXXX                                         *
*                                                                      *
*             X X X X X X X X X X X                                    *
************************************************************************
*               I N F O R M A T I O N                                  *
************************************************************************
* Module             :  MATERIAL MANAGEMENT                            *
* Functional         :  X X X                                          *
* Developer          :  XX                                             *
* Functional Spec    :  FS-ZXX                                         *
* Date Of Creation   :
* Transport Request  :
* Program Name       :
* Transaction Code   : ZXX
* Development class  :
* Description        : XX
*======================================================================*
* MODIFICATION HISTORY                                                 *
*----------------------------------------------------------------------*
* MOD. NO.  DATE     NAME       | CORRECTION NUMBER | CHANGE REQUEST   *
*----------------------------------------------------------------------*

*&---------------------------------------------------------------------*
*& Report  ZXX
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT ZF.

SELECT-OPTIONSwerks FOR zf_trhr-werks OBLIGATORY,
                trino 
FOR zf_trhr-trino OBLIGATORY,
                pcdat 
FOR zf_trhr-pcdat,
                sourc 
FOR zf_trhr-sourc.

START-OF-SELECTION.

AT SELECTION-SCREEN.
  
LOOP AT WERKS.
    
AUTHORITY-CHECK OBJECT 'M_BEST_WRK'
        
ID 'WERKS'     FIELD   WERKS-LOW
        
ID 'ACTVT'     FIELD '76'.
    
IF SY-SUBRC <> 0.
      
MESSAGE E138(ZMS)."'No Authorization' TYPE 'E'.
    
ENDIF.
  
ENDLOOP.

MESSAGE E138(ZMS) WITH ‘XX’.

REPORT ZF_RR_DETAILS.

INCLUDE ZF_RR_DETAILS_TOP01.
INCLUDE ZF_RR_DETAILS_F01.


START-OF-SELECTION.
  
PERFORM GET_DATA.
  
PERFORM DISPLAY_DATA.

END-OF-SELECTION.

MODIFY IT_RHR FROM WA_RHR INDEX SY-TABIX TRANSPORTING G_RATIO ULCHG.

SELECT FROM ZF_RFRMR INTO TABLE IT_RFRMR.

SELECT SINGLE PAR_VAL FROM ZF_MISCPAR INTO BSS_CHARGE                                        WHERE PAR_NAME EQ 'RLY_BSS_CHARGE_%'.

BREAK APG_ABAP_TST.


SELECT FROM zf_rrhr INTO TABLE gt_rrhdr
  
FOR ALL ENTRIES IN gt_rlfrinv
  
WHERE rrnum EQ gt_rlfrinv-rrnum.

No comments:

Post a Comment