Quantcast
Channel: SCN: Message List
Viewing all articles
Browse latest Browse all 9164

Re: interactive alv report using oops concept joining 2 tables mara and marc.

$
0
0

hiii try this code....its for ekko and ekpo...replace with your required fields or you can try standard program BCALV_GRID_03 .

 

REWARD POINTS if helpful

 

Report ZZTEST .

TYPE-POOLS: SLIS.

*type declaration for values from ekko

TYPES: BEGIN OF I_EKKO,

EBELN LIKE EKKO-EBELN,

AEDAT LIKE EKKO-AEDAT,

BUKRS LIKE EKKO-BUKRS,

BSART LIKE EKKO-BSART,

LIFNR LIKE EKKO-LIFNR,

END OF I_EKKO.

 

DATA: IT_EKKO TYPE STANDARD TABLE OF I_EKKO INITIAL SIZE 0,

WA_EKKO TYPE I_EKKO.

 

*type declaration for values from ekpo

TYPES: BEGIN OF I_EKPO,

EBELN LIKE EKPO-EBELN,

EBELP LIKE EKPO-EBELP,

MATNR LIKE EKPO-MATNR,

MENGE LIKE EKPO-MENGE,

MEINS LIKE EKPO-MEINS,

NETPR LIKE EKPO-NETPR,

END OF I_EKPO.

 

DATA: IT_EKPO TYPE STANDARD TABLE OF I_EKPO INITIAL SIZE 0,

WA_EKPO TYPE I_EKPO .

 

*variable for Report ID

DATA: V_REPID LIKE SY-REPID .

 

*declaration for fieldcatalog

DATA: I_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,

WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV.

 

 

DATA: IT_LISTHEADER TYPE SLIS_T_LISTHEADER.

 

  • declaration for events table where user comand or set PF status will
  • be defined

DATA: V_EVENTS TYPE SLIS_T_EVENT,WA_EVENT TYPE SLIS_ALV_EVENT.

  • declartion for layout

DATA: ALV_LAYOUT TYPE SLIS_LAYOUT_ALV.

  • declaration for variant(type of display we want)

DATA: I_VARIANT TYPE DISVARIANT,I_VARIANT1 TYPE DISVARIANT,I_SAVE(1) TYPE C.*PARAMETERS : p_var TYPE disvariant-variant.*Title displayed when the alv list is displayedDATA: I_TITLE_EKKO TYPE LVC_TITLE VALUE 'FIRST LIST DISPLAYED'.DATA: I_TITLE_EKPO TYPE LVC_TITLE VALUE 'SECONDRY LIST DISPLAYED'.INITIALIZATION.V_REPID = SY-REPID.PERFORM BUILD_FIELDCATLOG.PERFORM EVENT_CALL.PERFORM POPULATE_EVENT.START-OF-SELECTION.PERFORM DATA_RETRIEVAL.PERFORM BUILD_LISTHEADER USING IT_LISTHEADER.PERFORM DISPLAY_ALV_REPORT.&----


*& Form BUILD_FIELDCATLOG&----


  • Fieldcatalog has all the field details from ekko

----


FORM BUILD_FIELDCATLOG.WA_FIELDCAT-TABNAME = 'IT_EKKO'.WA_FIELDCAT-FIELDNAME = 'EBELN'.WA_FIELDCAT-SELTEXT_M = 'PO NO.'.APPEND WA_FIELDCAT TO I_FIELDCAT.CLEAR WA_FIELDCAT.WA_FIELDCAT-TABNAME = 'IT_EKKO'.WA_FIELDCAT-FIELDNAME = 'AEDAT'.WA_FIELDCAT-SELTEXT_M = 'DATE.'.APPEND WA_FIELDCAT TO I_FIELDCAT.CLEAR WA_FIELDCAT.WA_FIELDCAT-TABNAME = 'IT_EKKO'.WA_FIELDCAT-FIELDNAME = 'BUKRS'.WA_FIELDCAT-SELTEXT_M = 'COMPANY CODE'.APPEND WA_FIELDCAT TO I_FIELDCAT.CLEAR WA_FIELDCAT.WA_FIELDCAT-TABNAME = 'IT_EKKO'.WA_FIELDCAT-FIELDNAME = 'BUKRS'.WA_FIELDCAT-SELTEXT_M = 'DOCMENT TYPE'.APPEND WA_FIELDCAT TO I_FIELDCAT.CLEAR WA_FIELDCAT.WA_FIELDCAT-TABNAME = 'IT_EKKO'.WA_FIELDCAT-FIELDNAME = 'LIFNR'.WA_FIELDCAT-NO_OUT = 'X'.WA_FIELDCAT-SELTEXT_M = 'VENDOR CODE'.APPEND WA_FIELDCAT TO I_FIELDCAT.CLEAR WA_FIELDCAT.ENDFORM. "BUILD_FIELDCATLOG&----


*& Form EVENT_CALL&----


  • we get all events - TOP OF PAGE or USER COMMAND in table v_events

----


FORM EVENT_CALL.CALL FUNCTION 'REUSE_ALV_EVENTS_GET'EXPORTINGI_LIST_TYPE = 0IMPORTINGET_EVENTS = V_EVENTS

  • EXCEPTIONS
  • LIST_TYPE_WRONG = 1
  • OTHERS = 2

.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. "EVENT_CALL&----


*& Form POPULATE_EVENT&----


  • Events populated for TOP OF PAGE & USER COMAND

----


FORM POPULATE_EVENT.READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'TOP_OF_PAGE'.IF SY-SUBRC EQ 0.WA_EVENT-FORM = 'TOP_OF_PAGE'.MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =WA_EVENT-FORM.ENDIF.READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'USER_COMMAND'.IF SY-SUBRC EQ 0.WA_EVENT-FORM = 'USER_COMMAND'.MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =WA_EVENT-NAME.ENDIF.ENDFORM. "POPULATE_EVENT&----


*& Form data_retrieval&----


  • retreiving values from the database table ekko

----


FORM DATA_RETRIEVAL.SELECT EBELN AEDAT BUKRS BSART LIFNR FROM EKKO INTO TABLE IT_EKKO.ENDFORM. "data_retrieval&----


*& Form bUild_listheader&----


  • text

----


  • -->I_LISTHEADEtext

----


FORM BUILD_LISTHEADER USING I_LISTHEADER TYPE SLIS_T_LISTHEADER.DATA HLINE TYPE SLIS_LISTHEADER.HLINE-INFO = 'this is my first alv pgm'.HLINE-TYP = 'H'.ENDFORM. "build_listheader&----


*& Form display_alv_report&----


  • text

----


FORM DISPLAY_ALV_REPORT.V_REPID = SY-REPID.CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'EXPORTINGI_CALLBACK_PROGRAM = V_REPID

  • I_CALLBACK_PF_STATUS_SET = ' '

I_CALLBACK_USER_COMMAND = 'USER_COMMAND'I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE'I_GRID_TITLE = I_TITLE_EKKO

  • I_GRID_SETTINGS =
  • IS_LAYOUT = ALV_LAYOUT

IT_FIELDCAT = I_FIELDCAT[]

  • IT_EXCLUDING =
  • IT_SPECIAL_GROUPS =
  • IT_SORT =
  • IT_FILTER =
  • IS_SEL_HIDE =
  • i_default = 'ZLAY1'

I_SAVE = 'A'

  • is_variant = i_variant

IT_EVENTS = V_EVENTSTABLEST_OUTTAB = IT_EKKO

  • EXCEPTIONS
  • PROGRAM_ERROR = 1
  • OTHERS = 2

.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_alv_report&----


*& Form TOP_OF_PAGE&----


  • text

----


FORM TOP_OF_PAGE.CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'EXPORTINGIT_LIST_COMMENTARY = IT_LISTHEADER

  • i_logo =
  • I_END_OF_LIST_GRID =

.ENDFORM. "TOP_OF_PAGE&----


*& Form USER_COMMAND&----


  • text

----


  • -->R_UCOMM text
  • -->, text
  • -->RS_SLEFIELDtext

----


FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMMRS_SELFIELD TYPE SLIS_SELFIELD.CASE R_UCOMM.WHEN '&IC1'.READ TABLE IT_EKKO INTO WA_EKKO INDEX RS_SELFIELD-TABINDEX.PERFORM BUILD_FIELDCATLOG_EKPO.PERFORM EVENT_CALL_EKPO.PERFORM POPULATE_EVENT_EKPO.PERFORM DATA_RETRIEVAL_EKPO.PERFORM BUILD_LISTHEADER_EKPO USING IT_LISTHEADER.PERFORM DISPLAY_ALV_EKPO.ENDCASE.ENDFORM. "user_command&----


*& Form BUILD_FIELDCATLOG_EKPO&----


  • text

----


FORM BUILD_FIELDCATLOG_EKPO.WA_FIELDCAT-TABNAME = 'IT_EKPO'.WA_FIELDCAT-FIELDNAME = 'EBELN'.WA_FIELDCAT-SELTEXT_M = 'PO NO.'.APPEND WA_FIELDCAT TO I_FIELDCAT.CLEAR WA_FIELDCAT.WA_FIELDCAT-TABNAME = 'IT_EKPO'.WA_FIELDCAT-FIELDNAME = 'EBELP'.WA_FIELDCAT-SELTEXT_M = 'LINE NO'.APPEND WA_FIELDCAT TO I_FIELDCAT.CLEAR WA_FIELDCAT.WA_FIELDCAT-TABNAME = 'I_EKPO'.WA_FIELDCAT-FIELDNAME = 'MATNR'.WA_FIELDCAT-SELTEXT_M = 'MATERIAL NO.'.APPEND WA_FIELDCAT TO I_FIELDCAT.CLEAR WA_FIELDCAT.WA_FIELDCAT-TABNAME = 'I_EKPO'.WA_FIELDCAT-FIELDNAME = 'MENGE'.WA_FIELDCAT-SELTEXT_M = 'QUANTITY'.APPEND WA_FIELDCAT TO I_FIELDCAT.CLEAR WA_FIELDCAT.WA_FIELDCAT-TABNAME = 'I_EKPO'.WA_FIELDCAT-FIELDNAME = 'MEINS'.WA_FIELDCAT-SELTEXT_M = 'UOM'.APPEND WA_FIELDCAT TO I_FIELDCAT.CLEAR WA_FIELDCAT.WA_FIELDCAT-TABNAME = 'I_EKPO'.WA_FIELDCAT-FIELDNAME = 'NETPR'.WA_FIELDCAT-SELTEXT_M = 'PRICE'.APPEND WA_FIELDCAT TO I_FIELDCAT.CLEAR WA_FIELDCAT.ENDFORM. "BUILD_FIELDCATLOG_EKPO&----


*& Form event_call_ekpo&----


  • we get all events - TOP OF PAGE or USER COMMAND in table v_events

----


FORM EVENT_CALL_EKPO.CALL FUNCTION 'REUSE_ALV_EVENTS_GET'EXPORTINGI_LIST_TYPE = 0IMPORTINGET_EVENTS = V_EVENTS

  • EXCEPTIONS
  • LIST_TYPE_WRONG = 1
  • OTHERS = 2

.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. "event_call_ekpo&----


*& Form POPULATE_EVENT&----


  • Events populated for TOP OF PAGE & USER COMAND

----


FORM POPULATE_EVENT_EKPO.READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'TOP_OF_PAGE'.IF SY-SUBRC EQ 0.WA_EVENT-FORM = 'TOP_OF_PAGE'.MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =WA_EVENT-FORM.ENDIF.ENDFORM. "POPULATE_EVENT&----


*& Form TOP_OF_PAGE&----


  • text

----


FORM F_TOP_OF_PAGE.CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'EXPORTINGIT_LIST_COMMENTARY = IT_LISTHEADER

  • i_logo =
  • I_END_OF_LIST_GRID =

.ENDFORM. "TOP_OF_PAGE&----


*& Form USER_COMMAND&----


  • text

----


  • -->R_UCOMM text
  • -->, text
  • -->RS_SLEFIELDtext

----


*retreiving values from the database table ekkoFORM DATA_RETRIEVAL_EKPO.SELECT EBELN EBELP MATNR MENGE MEINS NETPR FROM EKPO INTO TABLE IT_EKPO.ENDFORM.FORM BUILD_LISTHEADER_EKPO USING I_LISTHEADER TYPE SLIS_T_LISTHEADER.DATA: HLINE1 TYPE SLIS_LISTHEADER.HLINE1-TYP = 'H'.HLINE1-INFO = 'CHECKING PGM'.ENDFORM.FORM DISPLAY_ALV_EKPO.CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'EXPORTING

  • I_INTERFACE_CHECK = ' '
  • I_BYPASSING_BUFFER = ' '
  • I_BUFFER_ACTIVE = ' '

I_CALLBACK_PROGRAM = V_REPID

  • I_CALLBACK_PF_STATUS_SET = ' '
  • I_CALLBACK_USER_COMMAND = 'F_USER_COMMAND'

I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE'

  • I_CALLBACK_HTML_TOP_OF_PAGE = ' '
  • I_CALLBACK_HTML_END_OF_LIST = ' '
  • I_STRUCTURE_NAME =
  • I_BACKGROUND_ID = ' '

I_GRID_TITLE = I_TITLE_EKPO

  • I_GRID_SETTINGS =
  • IS_LAYOUT =

IT_FIELDCAT = I_FIELDCAT[]

  • IT_EXCLUDING =
  • IT_SPECIAL_GROUPS =
  • IT_SORT =
  • IT_FILTER =
  • IS_SEL_HIDE =
  • I_DEFAULT =

I_SAVE = 'A'

  • IS_VARIANT =

IT_EVENTS = V_EVENTSTABLEST_OUTTAB = IT_EKPOEXCEPTIONSPROGRAM_ERROR = 1OTHERS = 2.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.

 

Thanks

Ujwal


Viewing all articles
Browse latest Browse all 9164

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>