Monday, September 9, 2013

ZRP_CUSTOMER_SALES_ORDERS PROGRAM FILE

ZRP_CUSTOMER_SALES_ORDERS

*&---------------------------------------------------------------------*
*& Report  ZRP_CUSTOMER_SALES_ORDERS
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  ZRP_CUSTOMER_SALES_ORDERS.

data : it_kna1 TYPE TABLE OF kna1,
       wa_kna1 
TYPE kna1,
       it_vbak 
type TABLE OF vbak,
       wa_vbak 
TYPE vbak.

data : o_cont1 TYPE REF TO cl_gui_custom_container,
       o_cont2 
TYPE REF TO cl_gui_custom_container,
       o_grid1 
type REF TO cl_gui_alv_grid,
       o_grid2 
TYPE REF TO cl_gui_alv_grid.

*----------------------------------------------------------------------*
*       CLASS c1 DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
class c1 DEFINITION.
  
PUBLIC SECTION.
    
METHODS : get_customer_data.
    
METHODs: doubleclick for EVENT double_click of cl_gui_alv_grid
                                    
IMPORTING E_ROW
                                              E_COLUMN
                                              ES_ROW_NO.

ENDCLASS.                    "c1 DEFINITION

*----------------------------------------------------------------------*
*       CLASS c1 IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
class c1 IMPLEMENTATION.
  
METHOD doubleclick.
    
READ TABLE IT_KNA1 INTO wa_kna1 INDEX E_ROW-INDEX.
    
IF E_COLUMN-FIELDNAME = 'KUNNR'.
      
SELECT * FROM VBAK INTO TABLE IT_VBAK
               
WHERE KUNNR EQ WA_KNA1-KUNNR.
    
IF SY-SUBRC EQ 0.
      
CALL SCREEN 200.
    
ELSE.
      
MESSAGE 'NODATA FOR THIS CUSTOMER' TYPE 'I'.
      
EXIT.
      .

    
ENDIF.
     
ENDIF.
  
ENDMETHOD.                    "doubleclick

  
METHOD get_customer_data.
    
select * from kna1 into TABLE it_kna1..
  
ENDMETHOD.                    "get_customer_data
ENDCLASS.                    "c1 IMPLEMENTATION

START-
OF-SELECTION.
  
data : obj TYPE REF TO c1.
  
create OBJECT obj.

  
CALL METHOD OBJ->get_customer_data( ).

END-OF-SELECTION.
  
call screen 100.
*&---------------------------------------------------------------------*
*&      Module  STATUS_0100  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE STATUS_0100 OUTPUT.
  
SET PF-STATUS 'STATUS'.
*  SET TITLEBAR 'xxx'.
  
CREATE OBJECT O_CONT1
    
EXPORTING
*    PARENT                      =
      CONTAINER_NAME              = 
'CONT1'
*    STYLE                       =
*    LIFETIME                    = lifetime_default
*    REPID                       =
*    DYNNR                       =
*    NO_AUTODEF_PROGID_DYNNR     =
    
EXCEPTIONS
      CNTL_ERROR                  = 
1
      CNTL_SYSTEM_ERROR           = 
2
      CREATE_ERROR                = 
3
      LIFETIME_ERROR              = 
4
      LIFETIME_DYNPRO_DYNPRO_LINK = 
5
      
others                      = 6
      .
  
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  
ENDIF.
  
CREATE OBJECT O_GRID1
    
EXPORTING
*    I_SHELLSTYLE      = 0
*    I_LIFETIME        =
      I_PARENT          = o_cont1
*    I_APPL_EVENTS     = space
*    I_PARENTDBG       =
*    I_APPLOGPARENT    =
*    I_GRAPHICSPARENT  =
*    I_NAME            =
*    I_FCAT_COMPLETE   = SPACE
    
EXCEPTIONS
      ERROR_CNTL_CREATE = 
1
      ERROR_CNTL_INIT   = 
2
      ERROR_CNTL_LINK   = 
3
      ERROR_DP_CREATE   = 
4
      
others            = 5
      .
  
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  
ENDIF.
  
set HANDLER OBJ->doubleclick FOR ALL INSTANCES.
  
CALL METHOD O_GRID1->SET_TABLE_FOR_FIRST_DISPLAY
     
EXPORTING
*    I_BUFFER_ACTIVE               =
*    I_BYPASSING_BUFFER            =
*    I_CONSISTENCY_CHECK           =
       I_STRUCTURE_NAME              = 
'KNA1'
*    IS_VARIANT                    =
*    I_SAVE                        =
*    I_DEFAULT                     = 'X'
*    IS_LAYOUT                     =
*    IS_PRINT                      =
*    IT_SPECIAL_GROUPS             =
*    IT_TOOLBAR_EXCLUDING          =
*    IT_HYPERLINK                  =
*    IT_ALV_GRAPHICS               =
*    IT_EXCEPT_QINFO               =
*    IR_SALV_ADAPTER               =
    
CHANGING
      IT_OUTTAB                     = it_KNA1
*    IT_FIELDCATALOG               =
*    IT_SORT                       =
*    IT_FILTER                     =
    
EXCEPTIONS
      INVALID_PARAMETER_COMBINATION = 
1
      PROGRAM_ERROR                 = 
2
      TOO_MANY_LINES                = 
3
      
others                        = 4
          .
  
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  
ENDIF.

ENDMODULE.                 " STATUS_0100  OUTPUT
*&---------------------------------------------------------------------*
*&      Module  USER_COMMAND_0100  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_0100 INPUT.
  
CASE SY-UCOMM .
        
WHEN 'BACK' OR 'CANCEL' OR 'EXIT'.
      
LEAVE TO SCREEN 0.
  
ENDCASE.
ENDMODULE.                 " USER_COMMAND_0100  INPUT
*&---------------------------------------------------------------------*
*&      Module  STATUS_0200  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE STATUS_0200 OUTPUT.
  
SET PF-STATUS 'SECOND'.
*  SET TITLEBAR 'xxx'.
  
CREATE OBJECT O_CONT2
    
EXPORTING
*    PARENT                      =
      CONTAINER_NAME              = 
'CONT2'
*    STYLE                       =
*    LIFETIME                    = lifetime_default
*    REPID                       =
*    DYNNR                       =
*    NO_AUTODEF_PROGID_DYNNR     =
    
EXCEPTIONS
      CNTL_ERROR                  = 
1
      CNTL_SYSTEM_ERROR           = 
2
      CREATE_ERROR                = 
3
      LIFETIME_ERROR              = 
4
      LIFETIME_DYNPRO_DYNPRO_LINK = 
5
      
others                      = 6
      .
  
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  
ENDIF.
  
CREATE OBJECT O_GRID2
    
EXPORTING
*    I_SHELLSTYLE      = 0
*    I_LIFETIME        =
      I_PARENT          = O_CONT2
*    I_APPL_EVENTS     = space
*    I_PARENTDBG       =
*    I_APPLOGPARENT    =
*    I_GRAPHICSPARENT  =
*    I_NAME            =
*    I_FCAT_COMPLETE   = SPACE
    
EXCEPTIONS
      ERROR_CNTL_CREATE = 
1
      ERROR_CNTL_INIT   = 
2
      ERROR_CNTL_LINK   = 
3
      ERROR_DP_CREATE   = 
4
      
others            = 5
      .
  
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 METHOD O_GRID2->SET_TABLE_FOR_FIRST_DISPLAY
     
EXPORTING
*    I_BUFFER_ACTIVE               =
*    I_BYPASSING_BUFFER            =
*    I_CONSISTENCY_CHECK           =
       I_STRUCTURE_NAME              = 
'VBAK'
*    IS_VARIANT                    =
*    I_SAVE                        =
      I_DEFAULT                     = 
'X'
*    IS_LAYOUT                     =
*    IS_PRINT                      =
*    IT_SPECIAL_GROUPS             =
*    IT_TOOLBAR_EXCLUDING          =
*    IT_HYPERLINK                  =
*    IT_ALV_GRAPHICS               =
*    IT_EXCEPT_QINFO               =
*    IR_SALV_ADAPTER               =
    
CHANGING
      IT_OUTTAB                     = IT_VBAK
*    IT_FIELDCATALOG               =
*    IT_SORT                       =
*    IT_FILTER                     =
*  EXCEPTIONS
*    INVALID_PARAMETER_COMBINATION = 1
*    PROGRAM_ERROR                 = 2
*    TOO_MANY_LINES                = 3
*    others                        = 4
          .
  
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  
ENDIF.

ENDMODULE.                 " STATUS_0200  OUTPUT
*&---------------------------------------------------------------------*
*&      Module  USER_COMMAND_0200  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_0200 INPUT.
  
CASE SY-UCOMM .
    
WHEN 'BACK' .
      
LEAVE TO SCREEN 100.
    
WHEN 'CANCEL' OR 'EXIT'.
      
LEAVE TO SCREEN 0.
    
WHEN OTHERS.
  
ENDCASE.
ENDMODULE.                 " USER_COMMAND_0200  INPUT

No comments:

Post a Comment