2006 Aug 31 9:55 AM
HI ALL,
CAN ANY BODY TELL ME HOW TO CREATE AN ALV GRID?
2006 Aug 31 9:57 AM
hi,
1.create Final internal with all output fileds and
populate it.
2. fill the field catalog merge by using FM or manually.
3. fill if necessary sort events layout tables.
4. call REUSE_ALV_GRID FM by passing the Field catalog
and Final table.
sample code is::
*&---------------------------------------------------------------------*
*& Report Z_PO_QUANTITY
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT Z_PO_QUANTITY.
TYPE-POOLS : SLIS.
************************************************************************
* T A B L E S
************************************************************************
TABLES : EKKO. " Purchasing Document Header
************************************************************************
* D A T A - D E C L A R A T I O N
************************************************************************
TYPES: BEGIN OF X_EKKO ,
EBELN LIKE EKKO-EBELN,
END OF X_EKKO.
TYPES: BEGIN OF X_EKPO ,
EBELN LIKE EKPO-EBELN,
EBELP LIKE EKPO-EBELP,
MATNR LIKE EKPO-MATNR,
MENGE LIKE EKPO-MENGE,
END OF X_EKPO.
TYPES: BEGIN OF X_EKET,
EBELN LIKE EKPO-EBELN,
EBELP LIKE EKPO-EBELP,
CHARG LIKE EKET-CHARG,
END OF X_EKET.
TYPES: BEGIN OF X_FINAL ,
EBELN LIKE EKPO-EBELN,
MATNR LIKE EKPO-MATNR,
CHARG LIKE EKET-CHARG,
EBELP LIKE EKPO-EBELP,
MENGE LIKE EKPO-MENGE,
END OF X_FINAL.
DATA: IT_EKKO TYPE STANDARD TABLE OF X_EKKO WITH HEADER LINE.
DATA: IT_EKPO TYPE STANDARD TABLE OF X_EKPO WITH HEADER LINE.
DATA: IT_EKET TYPE STANDARD TABLE OF X_EKET WITH HEADER LINE.
DATA: IT_FINAL TYPE STANDARD TABLE OF X_FINAL WITH HEADER LINE.
***ALV Field catalog
DATA : IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE.
***ALV Events
DATA : IT_EVENT TYPE SLIS_ALV_EVENT.
DATA : IT_EVENT1 TYPE SLIS_T_EVENT.
DATA : GT_SORT TYPE SLIS_T_SORTINFO_ALV,
GT_SORT1 TYPE SLIS_SORTINFO_ALV,
IT_LAYOUT TYPE SLIS_LAYOUT_ALV.
***ALV TOP-OF-PAGE
DATA : IT_HEADER1 TYPE SLIS_T_LISTHEADER WITH HEADER LINE .
DATA : IT_HEADER TYPE SLIS_LISTHEADER.
DATA : V_REPID LIKE SY-REPID.
************************************************************************
* S E L E C T I O N - S C R E E N
************************************************************************
SELECTION-SCREEN BEGIN OF BLOCK B1 .
SELECT-OPTIONS : S_EBELN FOR EKKO-EBELN.
SELECTION-SCREEN END OF BLOCK B1.
************************************************************************
* S T A R T - O F - S E L E C T I O N
************************************************************************
START-OF-SELECTION.
PERFORM GETDATA.
PERFORM FIELDCATALOG USING IT_FIELDCAT[].
PERFORM SUB_SORT.
PERFORM SUB_LAYOUT.
************************************************************************
* END - O F - S E L E C T I O N
************************************************************************
END-OF-SELECTION.
IF NOT IT_FINAL[] IS INITIAL.
PERFORM DISPDATA.
ELSE.
MESSAGE I000(Z1).
ENDIF.
*&---------------------------------------------------------------------*
*& Form GETDATA
*&---------------------------------------------------------------------*
* PERFORM TO GET DATA FROM EKPO TABLE
*----------------------------------------------------------------------*
FORM GETDATA .
SELECT EBELN
INTO TABLE IT_EKKO
FROM EKKO
WHERE EBELN IN S_EBELN.
IF SY-SUBRC = 0.
SORT IT_EKKO BY EBELN.
ENDIF.
IF NOT IT_EKKO[] IS INITIAL.
SELECT EBELN
EBELP
MATNR
MENGE
INTO TABLE IT_EKPO
FROM EKPO
FOR ALL ENTRIES IN IT_EKKO
WHERE EBELN = IT_EKKO-EBELN.
IF SY-SUBRC = 0.
SELECT EBELN
EBELP
CHARG
INTO TABLE IT_EKET
FROM EKET
FOR ALL ENTRIES IN IT_EKPO
WHERE EBELN = IT_EKPO-EBELN AND
EBELP = IT_EKPO-EBELP.
ENDIF.
ENDIF.
LOOP AT IT_EKPO.
IT_FINAL-EBELN = IT_EKPO-EBELN.
IT_FINAL-EBELP = IT_EKPO-EBELP.
IT_FINAL-MATNR = IT_EKPO-MATNR.
IT_FINAL-MENGE = IT_EKPO-MENGE.
READ TABLE IT_EKET WITH KEY EBELN = IT_EKPO-EBELN
EBELP = IT_EKPO-EBELP.
IF SY-SUBRC = 0.
IT_FINAL-CHARG = IT_EKET-CHARG.
CLEAR IT_EKET.
ENDIF.
APPEND IT_FINAL.
CLEAR IT_FINAL.
ENDLOOP.
ENDFORM. " GETDATA
*&---------------------------------------------------------------------*
*& Form DISPDATA
*&---------------------------------------------------------------------*
* PERFORM TO DISPLAY DATA
*----------------------------------------------------------------------*
FORM DISPDATA .
V_REPID = SY-REPID.
**DISPLAY OUTPUT
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = V_REPID
I_GRID_TITLE = ''
* I_GRID_SETTINGS =
IS_LAYOUT = IT_LAYOUT
IT_FIELDCAT = IT_FIELDCAT[]
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS =
IT_SORT = GT_SORT
* IT_FILTER =
* IS_SEL_HIDE =
* I_DEFAULT = 'X'
* I_SAVE = 'U'
* IS_VARIANT =
* IT_EVENTS =
* IT_EVENT_EXIT =
TABLES
T_OUTTAB = IT_FINAL
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.
* CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
* EXPORTING
*
* I_CALLBACK_PROGRAM = V_REPID
** I_CALLBACK_PF_STATUS_SET = ' '
** I_CALLBACK_USER_COMMAND = ' '
** I_STRUCTURE_NAME =
* IS_LAYOUT = IT_LAYOUT
* IT_FIELDCAT = IT_FIELDCAT[]
** IT_EXCLUDING =
** IT_SPECIAL_GROUPS =
* IT_SORT = GT_SORT
** IT_FILTER =
** IS_SEL_HIDE =
** I_DEFAULT = 'X'
** I_SAVE = ' '
** IS_VARIANT =
** IT_EVENTS =
** IT_EVENT_EXIT =
** IS_PRINT =
* TABLES
* T_OUTTAB = IT_FINAL
* 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. " DISPDATA
*&---------------------------------------------------------------------*
*& Form FIELDCATALOG
*&---------------------------------------------------------------------*
* PEROFRM TO POPULATE FIELD CATALOG
*----------------------------------------------------------------------*
FORM FIELDCATALOG USING P_IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.
DATA : T_FIELD_CAT TYPE SLIS_FIELDCAT_ALV.
DATA : V_CNT TYPE I.
V_CNT = V_CNT + 1.
T_FIELD_CAT-COL_POS = V_CNT.
T_FIELD_CAT-FIELDNAME = 'EBELN'.
T_FIELD_CAT-OUTPUTLEN = 18.
T_FIELD_CAT-SELTEXT_L = 'PO DOC NUMBER'.
APPEND T_FIELD_CAT TO IT_FIELDCAT.
CLEAR T_FIELD_CAT.
V_CNT = V_CNT + 1.
T_FIELD_CAT-COL_POS = V_CNT.
T_FIELD_CAT-FIELDNAME = 'MATNR'.
T_FIELD_CAT-OUTPUTLEN = 18.
T_FIELD_CAT-SELTEXT_L = 'MATERIAL NUMBER'.
APPEND T_FIELD_CAT TO IT_FIELDCAT.
CLEAR T_FIELD_CAT.
V_CNT = V_CNT + 1.
T_FIELD_CAT-COL_POS = V_CNT.
T_FIELD_CAT-FIELDNAME = 'CHARG'.
T_FIELD_CAT-OUTPUTLEN = 10.
T_FIELD_CAT-SELTEXT_L = 'BATCH'.
APPEND T_FIELD_CAT TO IT_FIELDCAT.
CLEAR T_FIELD_CAT.
V_CNT = V_CNT + 1.
T_FIELD_CAT-COL_POS = V_CNT.
T_FIELD_CAT-FIELDNAME = 'EBELP'.
T_FIELD_CAT-OUTPUTLEN = 14.
T_FIELD_CAT-SELTEXT_L = 'LINE ITEM NO'.
APPEND T_FIELD_CAT TO IT_FIELDCAT.
CLEAR T_FIELD_CAT.
V_CNT = V_CNT + 1.
T_FIELD_CAT-COL_POS = V_CNT.
T_FIELD_CAT-FIELDNAME = 'MENGE'.
T_FIELD_CAT-DO_SUM = 'X'.
T_FIELD_CAT-OUTPUTLEN = 18.
T_FIELD_CAT-SELTEXT_L = 'PO QUANTITY'.
APPEND T_FIELD_CAT TO IT_FIELDCAT.
CLEAR T_FIELD_CAT.
ENDFORM. " FIELDCATALOG
*&---------------------------------------------------------------------*
*& Form SUB_SORT
*&---------------------------------------------------------------------*
* PERFORM TO SORT
*----------------------------------------------------------------------*
FORM SUB_SORT .
DATA L_CNT TYPE I.
L_CNT = L_CNT + 1.
GT_SORT1-FIELDNAME = 'EBELN'.
GT_SORT1-SPOS = L_CNT.
GT_SORT1-UP = 'X'.
GT_SORT1-SUBTOT = 'X'.
APPEND GT_SORT1 TO GT_SORT.
CLEAR GT_SORT1.
L_CNT = L_CNT + 1.
GT_SORT1-FIELDNAME = 'MATNR'.
GT_SORT1-SPOS = L_CNT.
GT_SORT1-UP = 'X'.
GT_SORT1-SUBTOT = 'X'.
APPEND GT_SORT1 TO GT_SORT.
CLEAR GT_SORT1.
L_CNT = L_CNT + 1.
GT_SORT1-FIELDNAME = 'CHARG'.
GT_SORT1-SPOS = L_CNT.
GT_SORT1-UP = 'X'.
GT_SORT1-SUBTOT = 'X'.
APPEND GT_SORT1 TO GT_SORT.
CLEAR GT_SORT1.
ENDFORM. " SUB_SORT
*&---------------------------------------------------------------------*
*& Form SUB_LAYOUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM SUB_LAYOUT .
IT_LAYOUT-NO_TOTALLINE = ''.
IT_LAYOUT-SUBTOTALS_TEXT = 'SUB TOTAL'.
IT_LAYOUT-TOTALS_TEXT = 'GRAND TOTAL'.
ENDFORM. " SUB_LAYOUT
2006 Aug 31 9:58 AM
HI ALL,
ACTUALLY I WANT TOP CREATE A FIN PUSHBUTTON ON A TABLECONTROL IF CUSTOMER PRESS ON FIND ICON ACCORDING TO THE DATA IT SHOULD SHOW AN ALV GRID.
REGARDS
KANNY
2006 Aug 31 10:00 AM
U CAN REFER THE SAMPLE PGOGRAMS IN SE38..
IN SE38 -> enter BALVGRID* IN Program -> pressF4.
U WILL GET SOME LIST LIKE..
Program name Report title
call in fullscreen mode
BALVSD02_GRID Simple ALV grid control call in fullscreen mode
BALVST02_GRID Test program ALV: Simple list flight model
BALVST03_GRID BBS
BCALV_FULLSCREEN_GRID_EDIT
BCALV_GRID_01 Events for print processing
BCALV_GRID_02 Basic list and details list using one ALV control
BCALV_GRID_03 Detail list in screen of type dialog
BCALV_GRID_04 Display exceptions using LEDs or lights
BCALV_GRID_05 Add a self-defined button to the toolbar
BCALV_GRID_06 Define self-defined context menu
BCALV_GRID_07 Defining a toolbar menu
BCALV_GRID_08 Defining a toolbar menu with default button
BCALV_GRID_09 Control the saving options of layouts
BCALV_GRID_10 Load a layout before list display
BCALV_GRID_11 Test for new layout function modules
BCALV_GRID_AND_POPUP ALV Grid in dialog box
BCALV_GRID_DEMO Simple ALV Control Call Demo Program
BCALV_GRID_DND_TREE ALV Grid: Drag and Drop with ALV Tree
BCALV_GRID_DND_TREE_SIMPLE ALV GRID: Drag and drop with ALV tree (simple)
BCALV_GRID_EDIT
BCALV_GRID_F4_HELP F4 Help: Test and Sample Program
BCALV_GRID_VERIFY ALV GridControl test program
BCALV_GRID_VERIFY2 ALV GridControl test program
BCALV_TEST_GRID Program BCALV_TEST_GRID
BCALV_TEST_GRID_DRAG_DROP Program BCALV_TEST_GRID_DRAG_DROP
BCALV_TEST_GRID_EDITABLE Program BCALV_TEST_GRID_EDITABLE
BCALV_TEST_GRID_EDIT_01 Program BCALV_TEST_GRID_EDIT_01
BCALV_TEST_GRID_EVENTS Program BCALV_TEST_GRID_EVENTS
BCALV_TEST_GRID_FIELDS Program BCALV_TEST_GRID_FIELDS
BCALV_TEST_GRID_INDEX Program BCALV_TEST_GRID_INDEX
BCALV_TEST_GRID_LAYOUT Program BCALV_TEST_GRID_LAYOUT
BCALV_TEST_GRID_PERFORMANCE Program BCALV_TEST_GRID_PERFORMANCE
BCALV_TEST_GRID_PRINT Program BCALV_TEST_GRID_PRINT
BCALV_TEST_GRID_REPREP Program BCALV_TEST_GRID_REPREP
BCALV_TEST_GRID_REPREP_1 Program BCALV_TEST_GRID_REPREP_1
BCALV_TEST_GRID_TOOLBAR Test grid toolbar
BC_ALVHIERGRID1_D100 Include BC_ALVHIERGRID1_D100
BC_ALVHIERGRID1_D210 Include BC_ALVHIERGRID1_D210
BC_ALVHIERGRID1_HIER Include BC_ALVHIERGRID1_HIER
REGARDS,
RAMESH.
2006 Aug 31 10:03 AM
HI
RAMESH
IAM A LEARNER....SO CAN U PLZ EXPLAIN SOMETHING ABOUT AVV IN DETAIL BEFORE GOING DIRECTLY INTO PROGRAM?
REGARDS
KANNY
2006 Aug 31 10:20 AM
REFER SOME PROGRAMS..
http://www.sap-img.com/abap/test-alv-display-with-header-footer.htm
http://www.pbs-software.com/documentation_e/e_PBS_ArchiveBrowser.pdf#search=%22alv%20display%22
AND ONE THING..
I HAVE ONE POWER POINT PRESENTATION ON ALV , PLZ GIVE UR PERSONAL ID , I WILL FORWORD IT TO U..
2006 Aug 31 10:04 AM
in ALV FM for parameter ::
<b> I_CALLBACK_USER_COMMAND = 'FRM_USR_COMMAND'</b> pass form name.
in form name handle code according to your requiremtnt.
*&----
*& Form FRM_USR_COMMAND
*&----
FORM FRM_USR_COMMAND USING R_UCOMM LIKE SY-UCOMM
R_SELFIELD TYPE SLIS_SELFIELD.
CASE R_UCOMM.
WHEN 'CREATEPO'.
IF V_EMPTY IS INITIAL.
PERFORM GET_PROCESSDATA.
PERFORM PROCESS_DATA.
LEAVE LIST-PROCESSING.
ENDIF.
WHEN 'EXIT' OR 'CANCEL'.
LEAVE LIST-PROCESSING.
ENDCASE.
ENDFORM.
2006 Aug 31 10:09 AM
HI
You need to create a screen with the container, and write the failed catalog and logic in your main program and call that screen with container to display the ALV Grid in that container,
See the below example programs,
BCALV_EDIT_01
BCALV_EDIT_02
BCALV_EDIT_03
BCALV_EDIT_04
BCALV_EDIT_05
BCALV_EDIT_06
BCALV_EDIT_07
Click the below link for the best example
http://www.sap-img.com/abap/abap-example-program-alv-grid-control.htm
Regards
Sudheer
2006 Aug 31 10:15 AM
HI SUDHEER
CAN U TELL ME WHAT IS THE MAIN ADV OF USING MODULE POOL WHERE WE CAN ACHIEVE THE SAME REQIREMENT THROUGH REPORTS (WE HAVE A FACILITY TO CALL SCREEN FROM REPORT)?
REGARDS
KANNY
2006 Aug 31 10:23 AM
2006 Aug 31 10:22 AM
| User | Count |
|---|---|
| 3 | |
| 2 | |
| 2 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |