Wednesday, 3 December 2014

ALV with OOPS in REPORT Program



DATAIT_MARA TYPE TABLE OF MARA.
DATAdref TYPE REF TO cl_salv_table.

START-OF-SELECTION.

  SELECT FROM MARA INTO TABLE IT_MARA UP TO 100 ROWS.

  CHECK sy-subrc 0.

  TRY.
      CALL METHOD cl_salv_table=>factory
        IMPORTING
          r_salv_table dref
        CHANGING
          t_table      IT_MARA.

    CATCH cx_salv_msg .
      MESSAGE i000(z_zzz_ca_messages)
      WITH 'Error in ALV processing'(001).
      LEAVE LIST-PROCESSING.
  ENDTRY.
  IF dref IS BOUND.
    CALL METHOD dref->display).
  ENDIF.

Saturday, 29 November 2014

ALV in Executable Programing



TABLES zfms_cihr.
TYPE-POOLSslis.

DATAit_fcat TYPE slis_t_fieldcat_alv,         "  ALV Grid Support   RRCAT
wa_fcat 
TYPE LINE OF slis_t_fieldcat_alv.
DATA:  t_slis_layout_alv TYPE slis_layout_alv.
DATA seqnr TYPE i.                                        " VALUE 0.
DATA prg_name TYPE sy-repid.

 t_slis_layout_alv-colwidth_optimize 'X'.
  
PERFORM fill_catalog USING seqnr 'CINUM' 'Coal Invoice Number'.
  
PERFORM fill_catalog USING seqnr 'CINYR' 'Coal Invoice Year'.
  
PERFORM fill_catalog USING seqnr 'CIDAT' 'Coal Invoice Date'.
  
PERFORM fill_catalog USING seqnr 'DOCNO' 'Accounting Document Number'.
  
PERFORM fill_catalog USING seqnr 'DOCYR' 'Document Year'.
  
PERFORM fill_catalog USING seqnr 'LIFNR' 'Account Number of Vendor or Creditor '.
  
PERFORM fill_catalog USING seqnr 'WERKS' 'PLANT'.
  
PERFORM fill_catalog USING seqnr 'MIDSP' 'Mine Dispatch Point'.
  
PERFORM fill_catalog USING seqnr 'INCAT' 'Invoice Category'.
  
PERFORM fill_catalog USING seqnr 'DDTYP' 'Dispatch Document Type'.
  
PERFORM fill_catalog USING seqnr 'VBELN' 'Sales and Distribution Document Number'.
  
PERFORM fill_catalog USING seqnr 'INQTY' 'Invoice Quantity'.
  
PERFORM fill_catalog USING seqnr 'REFQT' 'Total Reference Quantity'.


*  PERFORM user_command USING ucomm selfield.
  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            = ' '
*   I_CALLBACK_HTML_TOP_OF_PAGE       = ' '
*   I_CALLBACK_HTML_END_OF_LIST       = ' '
*   I_STRUCTURE_NAME                  =
*   I_BACKGROUND_ID                   = ' '
   i_grid_title                      
'COAL INVOICE DETAILS'
*   I_GRID_SETTINGS                   =
     is_layout                         
t_slis_layout_alv
       it_fieldcat                       
it_fcat
*   IT_EXCLUDING                      =
*   IT_SPECIAL_GROUPS                 =
*   IT_SORT                           =
*   IT_FILTER                         =
*   IS_SEL_HIDE                       =
*   I_DEFAULT                         = 'X'
     i_save                            
'X'
*   IS_VARIANT                        =
*   IT_EVENTS                         =
*   IT_EVENT_EXIT                     =
*   IS_PRINT                          =
*   IS_REPREP_ID                      =
*   I_SCREEN_START_COLUMN             = 0
*   I_SCREEN_START_LINE               = 0
*   I_SCREEN_END_COLUMN               = 0
*   I_SCREEN_END_LINE                 = 0
*   I_HTML_HEIGHT_TOP                 = 0
*   I_HTML_HEIGHT_END                 = 0
*   IT_ALV_GRAPHICS                   =
*   IT_HYPERLINK                      =
*   IT_ADD_FIELDCAT                   =
*   IT_EXCEPT_QINFO                   =
*   IR_SALV_FULLSCREEN_ADAPTER        =
* IMPORTING
*   E_EXIT_CAUSED_BY_CALLER           =
*   ES_EXIT_CAUSED_BY_USER            =
      
TABLES
        t_outtab                          
it
       
EXCEPTIONS
       program_error                     
1
       
OTHERS                            2
              
.


  
IF sy-subrc <> 0.
* Implement suitable error handling here
  
ENDIF.
ENDFORM.                    " SHOW_DATA


FORM FILL_CATALOG  USING    P_SEQNR
                            
VALUE(P_0074)
                            
VALUE(P_0075).

  
CLEAR wa_fcat.
  wa_fcat
-col_pos p_seqnr.
  wa_fcat
-fieldname p_0074.
  wa_fcat
-seltext_m p_0075.
  
ADD TO seqnr.

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

ENDFORM.                    " FILL_CATALOG

Friday, 17 October 2014

ALV With MERGE

*&---------------------------------------------------------------------*
*& Report  ZGP_ALV_MERGE
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  zgp_alv_merge1.

TYPE-POOLS: slis.
TABLES: zfms_rrhdr.
*
DATA: progname  LIKE sy-repid,
      gt_fcat0  TYPE slis_t_fieldcat_alv,
      gt_fcat1  TYPE slis_t_fieldcat_alv.
*
*DATA: IT_MARA0 TYPE TABLE OF MARA.

DATA: it TYPE TABLE OF zfms_rrhdr.
*
DATA: BEGIN OF it_mara1 OCCURS 0,
         matnr LIKE mara-matnr,
         matkl LIKE mara-matkl,
       END   OF it_mara1.
*
progname  = sy-repid.

TYPES:
      t_fieldcat         TYPE slis_fieldcat_alv,
      t_events           TYPE slis_alv_event,
      t_layout           TYPE slis_layout_alv.
* Workareas
DATA:
    w_fieldcat         TYPE t_fieldcat,
    w_events           TYPE t_events,
    w_layout           TYPE t_layout.
* Internal Tables
DATA:
    i_fieldcat         TYPE STANDARD TABLE OF t_fieldcat,
    i_fieldcat1        TYPE STANDARD TABLE OF t_fieldcat,
    i_events           TYPE STANDARD TABLE OF t_events.
* internal table definition with type of a structure

SELECT * FROM zfms_rrhdr INTO TABLE it.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
  EXPORTING
    i_program_name         = progname
    i_internal_tabname     = 'IT'
    i_structure_name       = 'zfms_RRHDR'
    i_client_never_display = 'X'
  CHANGING
    ct_fieldcat            = gt_fcat0[]
  EXCEPTIONS
    inconsistent_interface = 1
    program_error          = 2
    OTHERS                 = 3.
* own internal table definition


PERFORM  display_data.

--------------------------------------

FORM display_data .

  DATA :program LIKE sy-repid VALUE sy-repid.

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      i_callback_program = program
      is_layout          = w_layout
      it_fieldcat        = gt_fcat0 "I_FIELDCAT
      it_events          = i_events
    TABLES
      t_outtab           = it.
  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
    WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.


ENDFORM.                    " DISPLAY_DATA

Tuesday, 14 October 2014

Notes on ALV Grid



GET PARAMETER ID 'MINE' FIELD L_SMINE.

FORM USER_COMMAND USING UCOMM TYPE SY-UCOMM
                        SELFIELD TYPE SLIS_SELFIELD.

  CASE UCOMM.
    WHEN '&IC1'.
      READ TABLE IT_MINE_WISE INDEX SELFIELD-TABINDEX INTO WA_MINE_WISE.
      IF SY-SUBRC EQ 0.
        IF SELFIELD-FIELDNAME = 'SMINE' ."AND NOT WA-LIFNR IS INITIAL.
          SET PARAMETER ID 'MINE' FIELD WA_MINE_WISE-SMINE.
          CALL TRANSACTION 'ZCON_SRB' AND SKIP FIRST SCREEN.
        ENDIF.
      ENDIF.
  ENDCASE.

ENDFORM.                    " USER_COMMAND



FORM FILL_CATALOG  USING    P_SEQNR
                            VALUE(P_0024)
                            VALUE(P_0025).

  CLEAR wa_fcat.
  wa_fcat-col_pos = p_seqnr.
  wa_fcat-fieldname = p_0024.
  wa_fcat-seltext_m = p_0025.
  ADD 1 TO seqnr.

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

ENDFORM.                    " FILL_CATALOG


  T_SLIS_LAYOUT_ALV-COLWIDTH_OPTIMIZE = 'X'.
  PERFORM fill_catalog USING seqnr 'SLNO' 'Slno'.
  PERFORM fill_catalog USING seqnr 'DCDAT' 'DC Date'.
  PERFORM USER_COMMAND USING UCOMM SELFIELD.
  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            = ' '
*   I_CALLBACK_HTML_TOP_OF_PAGE       = ' '
*   I_CALLBACK_HTML_END_OF_LIST       = ' '
*   I_STRUCTURE_NAME                  =
*   I_BACKGROUND_ID                   = ' '
*   I_GRID_TITLE                      = 'COAL INVOICE DETAILS'
*   I_GRID_SETTINGS                   =
   IS_LAYOUT                         = T_SLIS_LAYOUT_ALV
     it_fieldcat                       = it_fcat
*   IT_EXCLUDING                      =
*   IT_SPECIAL_GROUPS                 =
*   IT_SORT                           =
*   IT_FILTER                         =
*   IS_SEL_HIDE                       =
*   I_DEFAULT                         = 'X'
   i_save                            = 'X'
*   IS_VARIANT                        =
*   IT_EVENTS                         =
*   IT_EVENT_EXIT                     =
*   IS_PRINT                          =
*   IS_REPREP_ID                      =
*   I_SCREEN_START_COLUMN             = 0
*   I_SCREEN_START_LINE               = 0
*   I_SCREEN_END_COLUMN               = 0
*   I_SCREEN_END_LINE                 = 0
*   I_HTML_HEIGHT_TOP                 = 0
*   I_HTML_HEIGHT_END                 = 0
*   IT_ALV_GRAPHICS                   =
*   IT_HYPERLINK                      =
*   IT_ADD_FIELDCAT                   =
*   IT_EXCEPT_QINFO                   =
*   IR_SALV_FULLSCREEN_ADAPTER        =
* IMPORTING
*   E_EXIT_CAUSED_BY_CALLER           =
*   ES_EXIT_CAUSED_BY_USER            =
    TABLES
      t_outtab                          = IT_MINE_WISE
   EXCEPTIONS
     program_error                     = 1
     OTHERS                            = 2
            .
  IF sy-subrc <> 0.
* Implement suitable error handling here
  ENDIF.


DATA: IT_FCAT TYPE SLIS_T_FIELDCAT_ALV,         "  ALV Grid Support
      WA_FCAT TYPE LINE OF SLIS_T_FIELDCAT_ALV.

DATA: T_SLIS_LAYOUT_ALV TYPE SLIS_LAYOUT_ALV.

DATA : prg_name TYPE sy-repid.








Tuesday, 29 July 2014

Convert to Indian Currency


REPORT ZCS_STR2.

DATAAMT TYPE PC207-BETRG VALUE 98564765,
      AMT_WORDS TYPE LENGTH 100.

AMT AMT / 7.

CALL FUNCTION 'HR_IN_CHG_INR_WRDS'
  EXPORTING
    AMT_IN_NUM         AMT
  IMPORTING
    AMT_IN_WORDS       AMT_WORDS
  EXCEPTIONS
    DATA_TYPE_MISMATCH 1
    OTHERS             2.
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ELSE.
  REPLACE ALL OCCURRENCES OF 'Rupees' IN AMT_WORDS WITH ' '.
  CONCATENATE 'Rupees' AMT_WORDS INTO AMT_WORDS.
  WRITE :/ AMT,
         / AMT_WORDS.
ENDIF.

Thursday, 1 May 2014

Reading Part of the Strings


REPORT ZFMS_TEST_CODE.

dataTYPE string VALUE 'this is string',
      INUTN TYPE ZFMS_TRHR-INUTN VALUE '41002013000122',
      c1(3),
      len TYPE i,
      DT TYPE ZFMS_TRHR-HYEAR.

len STRLEN).
len len 3.
c1 c+len(3).
*WRITE / c1.
*WRITE INUTN+4(4).
DT INUTN+4(4).
WRITE DT.


*41002013000122

Friday, 31 January 2014

WILD CARDS






DATA:   IT_RANGE TYPE RANGE OF STRING,
        WA_RANGE 
LIKE LINE OF IT_RANGE.



DATA:   UTN TYPE ZFMS_TTDT-INUTN,
        UTN1 
TYPE C LENGTH 7,
        UTN2 
TYPE C LENGTH 6. 



UTN1 WA_GRDT-INUTN+0(7).
UTN2 
WA_GRDT-INUTN+8(6).
CONCATENATE '3' UTN2 INTO UTN.
CONCATENATE UTN1 UTN INTO UTN.



WA_RANGE-SIGN   'I'.
WA_RANGE
-OPTION 'CP'.
WA_RANGE
-LOW  '++++2012*'.
APPEND WA_RANGE TO IT_RANGE.

 
DELETE TTDT WHERE INUTN NOT IN IT_RANGE.
DELETE GRDT WHERE INUTN NOT IN IT_RANGE.

DELETE FROM Z_TTDT WHERE INUTN IN IT_RANGE.
DELETE FROM Z_GRDT WHERE INUTN IN IT_RANGE.