ALV BLOCK REPORT
please tell me the process how to create ALV block report with simple example
Try this sample program:
Program Name: ALV Program *
Description: *
Date/Author: Selvapandian *
M O D I F I C A T I O N L O G *
Date Programmer Task # Description *
REPORT ZEXAMPLE
NO STANDARD PAGE HEADING
MESSAGE-ID ZSP.
TYPE-POOLS: SLIS.
INCLUDE: .
T A B L E S *
TABLES: SCARR, "Airline
SPFLI, "Flight schedule
SBOOK. "Single Flight Booking
I N T E R N A L T A B L E S *
DATA: GT_SP_GROUPS TYPE SLIS_T_SP_GROUP_ALV WITH HEADER LINE,
GT_ZSUM TYPE SLIS_T_SORTINFO_ALV WITH HEADER LINE,
GT_FILTER TYPE SLIS_T_FILTER_ALV WITH HEADER LINE,
XHEADER TYPE SLIS_T_LISTHEADER WITH HEADER LINE.
DATA: GT_EXTAB TYPE SLIS_T_EXTAB WITH HEADER LINE.
DATA: GT_COLOR TYPE SLIS_T_SPECIALCOL_ALV WITH HEADER LINE.
DATA: BEGIN OF XDATA OCCURS 1,
CARRID LIKE SCARR-CARRID,
CARRNAME LIKE SCARR-CARRNAME,
CURRCODE LIKE SCARR-CURRCODE,
BLUBBER LIKE LTDXT-TEXT,
NUMC(3) TYPE N,
ICONS(30) TYPE C,
SYMBOLS(30) TYPE C,
AMPEL(1) TYPE C,
BOX(1) TYPE C,
LISTINFO(3) TYPE C,
END OF XDATA.
DATA: BEGIN OF YDATA OCCURS 1.
INCLUDE STRUCTURE SPFLI.
DATA: BLUBBER LIKE LTDXT-TEXT,
NUMC(3) TYPE N,
ICONS(30) TYPE C,
SYMBOLS(30) TYPE C,
AMPEL(1) TYPE C,
BOX(1) TYPE C,
LISTINFO(3) TYPE C,
COLINFO TYPE SLIS_T_SPECIALCOL_ALV,
END OF YDATA.
DATA: BEGIN OF ZDATA OCCURS 1.
INCLUDE STRUCTURE SBOOK.
DATA: BLUBBER LIKE LTDXT-TEXT,
NUMC(3) TYPE N,
ICONS(30) TYPE C,
SYMBOLS(30) TYPE C,
AMPEL(1) TYPE C,
BOX(1) TYPE C,
LISTINFO(3) TYPE C,
COLINFO TYPE SLIS_T_SPECIALCOL_ALV,
END OF ZDATA.
DATA: HDATA LIKE XDATA OCCURS 0 WITH HEADER LINE,
LDATA LIKE XDATA OCCURS 0 WITH HEADER LINE,
IDATA LIKE YDATA OCCURS 0 WITH HEADER LINE.
DATA: LFIELD TYPE SLIS_T_FIELDCAT_ALV,
XFIELD TYPE SLIS_T_FIELDCAT_ALV,
YFIELD TYPE SLIS_T_FIELDCAT_ALV,
ZFIELD TYPE SLIS_T_FIELDCAT_ALV,
HFIELD TYPE SLIS_T_FIELDCAT_ALV.
DATA: AFIELD TYPE SLIS_FIELDCAT_ALV.
DATA: GS_LAYOUT TYPE SLIS_LAYOUT_ALV,
X_LAYOUT TYPE SLIS_LAYOUT_ALV,
Y_LAYOUT TYPE SLIS_LAYOUT_ALV,
Z_LAYOUT TYPE SLIS_LAYOUT_ALV,
H_LAYOUT TYPE SLIS_LAYOUT_ALV,
L_LAYOUT TYPE SLIS_LAYOUT_ALV.
DATA: GS_KEYINFO TYPE SLIS_KEYINFO_ALV.
DATA: XISETAB TYPE SLIS_SELDIS_ALV.
DATA: GT_XEVENTS TYPE SLIS_T_EVENT,
GT_YEVENTS TYPE SLIS_T_EVENT,
GT_ZEVENTS TYPE SLIS_T_EVENT,
GT_HEVENTS TYPE SLIS_T_EVENT,
GT_LEVENTS TYPE SLIS_T_EVENT,
GT_PRINT TYPE SLIS_PRINT_ALV.
D A T A *
DATA: OK_CODE LIKE SY-UCOMM,
FLG_EXIT(1) TYPE C,
V_REPID LIKE SY-REPID,
G_EXIT,
X_SAVE,
DEFAULT,
X_VARIANT LIKE DISVARIANT,
XS_LAYOUT LIKE GS_LAYOUT,
XS_EVENT TYPE SLIS_ALV_EVENT,
GT_SPFLI LIKE SPFLI OCCURS 0 WITH HEADER LINE,
G_VARIANT LIKE DISVARIANT.
S E L E C T - O P T I O N S / P A R A M E T E R S *
SELECT-OPTIONS CARRID FOR SCARR-CARRID.
SELECTION-SCREEN SKIP.
PARAMETERS: PFSTATUS TYPE SLIS_FORMNAME DEFAULT 'PF_STATUS_SET',
HIERSEQU AS CHECKBOX DEFAULT 'X',
BOX_TABL(5) DEFAULT 'IDATA',
MAX_DATA AS CHECKBOX DEFAULT ' '.
I N I T I A L I Z A T I O N *
INITIALIZATION.
V_REPID = SY-REPID.
A T S E L E C T I O N - S C R E E N *
AT SELECTION-SCREEN ON CARRID.
IF NOT CARRID[] IS INITIAL.
SELECT SINGLE * FROM SCARR
WHERE CARRID IN CARRID.
IF SY-SUBRC <> 0.
MESSAGE E000 WITH 'Enter valid Carrier ID'(003).
ENDIF.
ENDIF.
S T A R T - O F - S E L E C T I O N *
START-OF-SELECTION.
PERFORM F_SELECTION.
PERFORM XEVENTS.
PERFORM YEVENTS.
PERFORM HEVENTS.
PERFORM FIELDS.
E N D - O F - S E L E C T I O N *
END-OF-SELECTION.
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT'
EXPORTING
I_CALLBACK_PROGRAM = V_REPID
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
I_CALLBACK_PF_STATUS_SET = PFSTATUS.
X_LAYOUT-BOX_FIELDNAME = 'BOX'.
X_LAYOUT-BOX_TABNAME = 'XDATA'.
X_LAYOUT-LIGHTS_FIELDNAME = 'AMPEL'.
X_LAYOUT-INFO_FIELDNAME = 'LISTINFO'.
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
EXPORTING
IT_FIELDCAT = XFIELD
IS_LAYOUT = X_LAYOUT
I_TABNAME = 'XDATA'
IT_EVENTS = GT_XEVENTS
I_TEXT = TEXT-0B1
TABLES
T_OUTTAB = XDATA.
IF HIERSEQU = SPACE.
y_layout-no_zebra = 'X'.
Y_LAYOUT-BOX_FIELDNAME = 'BOX'.
Y_LAYOUT-BOX_TABNAME = 'YDATA'.
Y_LAYOUT-INFO_FIELDNAME = 'LISTINFO'.
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
EXPORTING
IT_FIELDCAT = YFIELD
IS_LAYOUT = Y_LAYOUT
I_TABNAME = 'YDATA'
IT_EVENTS = GT_YEVENTS
I_TEXT = TEXT-0B2
TABLES
T_OUTTAB = YDATA.
ELSE.
H_LAYOUT-BOX_FIELDNAME = 'BOX'.
H_LAYOUT-BOX_TABNAME = BOX_TABL.
H_LAYOUT-INFO_FIELDNAME = 'LISTINFO'.
GS_KEYINFO-HEADER01 = 'CARRID'.
GS_KEYINFO-ITEM01 = 'CARRID'.
GS_KEYINFO-ITEM02 = 'CONNID'.
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_HS_APPEND'
EXPORTING
IS_LAYOUT = H_LAYOUT
IT_FIELDCAT = HFIELD
IS_KEYINFO = GS_KEYINFO
I_HEADER_TABNAME = 'HDATA'
I_ITEM_TABNAME = 'IDATA'
IT_EVENTS = GT_HEVENTS
I_TEXT = TEXT-0B2
TABLES
T_OUTTAB_HEADER = HDATA
T_OUTTAB_ITEM = IDATA.
ENDIF.
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
EXPORTING
IT_FIELDCAT = ZFIELD
IS_LAYOUT = Z_LAYOUT
I_TABNAME = 'ZDATA'
IT_EVENTS = GT_ZEVENTS
I_TEXT = TEXT-0B3
TABLES
T_OUTTAB = ZDATA.
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
EXPORTING
IT_FIELDCAT = LFIELD
IS_LAYOUT = L_LAYOUT
I_TABNAME = 'LDATA'
IT_EVENTS = GT_LEVENTS
I_TEXT = TEXT-0B4
TABLES
T_OUTTAB = LDATA.
GT_PRINT-RESERVE_LINES = 2.
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY'
EXPORTING
IS_PRINT = GT_PRINT.
*& Form SELECTION
FORM F_SELECTION.
DATA: L_TABIX LIKE SY-TABIX,
LT_SBOOK LIKE SBOOK OCCURS 1 WITH HEADER LINE,
L_TABIX2 LIKE SY-TABIX.
SELECT * FROM SCARR
INTO CORRESPONDING FIELDS OF
TABLE XDATA WHERE CARRID IN CARRID.
IF SY-SUBRC <> 0.
MESSAGE E000 WITH 'No records in SCARR table'(001).
ENDIF.
IF NOT XDATA[] IS INITIAL.
SELECT * FROM SPFLI
INTO TABLE GT_SPFLI
FOR ALL ENTRIES IN XDATA
WHERE CARRID = XDATA-CARRID.
IF SY-SUBRC <> 0.
MESSAGE S000 WITH 'No records in SPFLI table'(002).
ENDIF.
ENDIF.
LOOP AT GT_SPFLI.
YDATA-NUMC = SY-TABIX DIV 5.
MOVE-CORRESPONDING GT_SPFLI TO YDATA.
APPEND YDATA.
ENDLOOP.
LOOP AT XDATA.
XDATA-NUMC = SY-TABIX DIV 4.
L_TABIX = SY-TABIX.
REFRESH GT_COLOR.
CLEAR GT_COLOR.
IF L_TABIX > 5.
XDATA-AMPEL = '1'.
ELSEIF XDATA-CURRCODE = 'USD'.
XDATA-AMPEL = '2'.
ELSE.
XDATA-AMPEL = '3'.
ENDIF.
IF XDATA-CURRCODE = 'LIT'.
GT_COLOR-FIELDNAME = 'CURRCODE'.
GT_COLOR-COLOR-COL = 6.
GT_COLOR-COLOR-INT = 0.
APPEND GT_COLOR.
XDATA-SYMBOLS = SYM_PLUS_CIRCLE.
ELSEIF XDATA-CURRCODE = 'DEM'.
GT_COLOR-COLOR-COL = 5.
GT_COLOR-COLOR-INT = 0.
APPEND GT_COLOR.
XDATA-SYMBOLS = SYM_FILLED_SQUARE.
ELSE.
GT_COLOR-FIELDNAME = 'CURRCODE'.
GT_COLOR-COLOR-COL = 7.
GT_COLOR-COLOR-INT = 1.
GT_COLOR-COLOR-INV = 1.
APPEND GT_COLOR.
XDATA-SYMBOLS = SYM_FILLED_DIAMOND.
ENDIF.
MODIFY XDATA.
ENDLOOP.
HDATA[] = XDATA[].
LDATA[] = XDATA[].
IDATA[] = YDATA[].
SELECT * FROM SBOOK
UP TO 50 ROWS.
L_TABIX = L_TABIX + 1.
L_TABIX2 = L_TABIX2 + 1.
MOVE-CORRESPONDING SBOOK TO ZDATA.
IF L_TABIX > 20.
ZDATA-CARRID = 'LH'.
ZDATA-CONNID = '47'.
ENDIF.
IF L_TABIX > 14 AND L_TABIX <= 20 OR
L_TABIX > 25.
ZDATA-FLDATE = ZDATA-FLDATE + 1.
ENDIF.
IF L_TABIX2 > 7 AND L_TABIX <= 20.
ZDATA-CONNID = 49.
ELSEIF L_TABIX >= 26.
ZDATA-CONNID = 51.
ENDIF.
IF L_TABIX2 >= 14 AND L_TABIX <= 20 .
CLEAR L_TABIX2.
ENDIF.
APPEND ZDATA.
ENDSELECT.
LOOP AT ZDATA.
L_TABIX = SY-TABIX.
IF L_TABIX = 1.
ZDATA-LOCCURAM = 520.
ENDIF.
REFRESH GT_COLOR.
CLEAR GT_COLOR.
IF ZDATA-LOCCURAM < 500.
ZDATA-AMPEL = '1'.
ELSEIF ZDATA-LOCCURAM < 530.
ZDATA-AMPEL = '2'.
ELSE.
ZDATA-AMPEL = '3'.
ENDIF.
IF ZDATA-LOCCURAM > 600.
GT_COLOR-FIELDNAME = 'LOCCURAM'.
GT_COLOR-COLOR-COL = 6.
GT_COLOR-COLOR-INT = 0.
APPEND GT_COLOR.
ZDATA-SYMBOLS = SYM_PLUS_CIRCLE.
ELSEIF ZDATA-LOCCURAM > 500.
GT_COLOR-COLOR-COL = 5.
GT_COLOR-COLOR-INT = 0.
APPEND GT_COLOR.
ZDATA-SYMBOLS = SYM_FILLED_SQUARE.
ELSE.
GT_COLOR-FIELDNAME = 'LOCCURAM'.
GT_COLOR-COLOR-COL = 7.
GT_COLOR-COLOR-INT = 1.
GT_COLOR-COLOR-INV = 1.
APPEND GT_COLOR.
ZDATA-SYMBOLS = SYM_FILLED_DIAMOND.
ENDIF.
IF ZDATA-LUGGWEIGHT = 0.
ZDATA-ICONS = ICON_INCOMPLETE.
GT_COLOR-FIELDNAME = 'LUGGWEIGHT'.
GT_COLOR-COLOR-COL = 4.
GT_COLOR-COLOR-INT = 1.
GT_COLOR-COLOR-INV = 1.
APPEND GT_COLOR.
ELSEIF ZDATA-LUGGWEIGHT < 45.
ZDATA-ICONS = ICON_CHECKED.
GT_COLOR-FIELDNAME = 'LUGGWEIGHT'.
GT_COLOR-COLOR-COL = 6.
GT_COLOR-COLOR-INT = 1.
GT_COLOR-COLOR-INV = 1.
APPEND GT_COLOR.
ELSE.
ZDATA-ICONS = ICON_FAILURE.
GT_COLOR-FIELDNAME = 'LUGGWEIGHT'.
GT_COLOR-COLOR-COL = 5.
GT_COLOR-COLOR-INT = 1.
GT_COLOR-COLOR-INV = 1.
APPEND GT_COLOR.
ENDIF.
ZDATA-NUMC = ( L_TABIX DIV 10 ) * 10.
ZDATA-COLINFO = GT_COLOR[].
IF NOT ZDATA-LUGGWEIGHT IS INITIAL.
MOVE '??' TO ZDATA-WUNIT.
ENDIF.
MODIFY ZDATA.
ENDLOOP.
IF MAX_DATA = 'X'.
DO 100 TIMES.
APPEND XDATA.
APPEND YDATA.
APPEND ZDATA.
ENDDO.
ENDIF.
ENDFORM. " SELECTION
FORM XEVENTS *
FORM XEVENTS.
CLEAR XS_EVENT.
XS_EVENT-NAME = SLIS_EV_END_OF_PAGE.
XS_EVENT-FORM = 'XEND_OF_PAGE'.
APPEND XS_EVENT TO GT_XEVENTS.
CLEAR XS_EVENT.
XS_EVENT-NAME = SLIS_EV_TOP_OF_PAGE.
XS_EVENT-FORM = 'XTOP_OF_PAGE'.
APPEND XS_EVENT TO GT_XEVENTS.
CLEAR XS_EVENT.
XS_EVENT-NAME = SLIS_EV_TOP_OF_LIST.
XS_EVENT-FORM = 'XTOP_OF_LIST'.
APPEND XS_EVENT TO GT_XEVENTS.
CLEAR XS_EVENT.
XS_EVENT-NAME = SLIS_EV_END_OF_LIST.
XS_EVENT-FORM = 'XEND_OF_LIST'.
APPEND XS_EVENT TO GT_XEVENTS.
CLEAR XS_EVENT.
ENDFORM.
FORM FIELDS *
FORM FIELDS.
DATA: L_COUNT TYPE I.
CLEAR AFIELD.
L_COUNT = L_COUNT + 1.
AFIELD-COL_POS = L_COUNT.
AFIELD-FIELDNAME = 'CARRID'.
AFIELD-REF_TABNAME = 'SCARR'.
AFIELD-KEY = 'X'. "define field as key
APPEND AFIELD TO XFIELD.
AFIELD-TABNAME = 'HDATA'.
APPEND AFIELD TO HFIELD.
AFIELD-TABNAME = 'LDATA'.
APPEND AFIELD TO LFIELD.
CLEAR AFIELD.
L_COUNT = L_COUNT + 1.
AFIELD-COL_POS = L_COUNT.
AFIELD-FIELDNAME = 'CARRNAME'.
AFIELD-REF_TABNAME = 'SCARR'.
APPEND AFIELD TO XFIELD.
AFIELD-TABNAME = 'HDATA'.
APPEND AFIELD TO HFIELD.
AFIELD-TABNAME = 'LDATA'.
APPEND AFIELD TO LFIELD.
CLEAR AFIELD.
L_COUNT = L_COUNT + 1.
AFIELD-TABNAME = 'XDATA'.
AFIELD-COL_POS = L_COUNT.
AFIELD-FIELDNAME = 'CURRCODE'.
AFIELD-REF_TABNAME = 'SCARR'.
AFIELD-INPUT = INPUT.
APPEND AFIELD TO XFIELD.
AFIELD-TABNAME = 'HDATA'.
APPEND AFIELD TO HFIELD.
AFIELD-TABNAME = 'LDATA'.
APPEND AFIELD TO LFIELD.
CLEAR AFIELD.
L_COUNT = L_COUNT + 1.
AFIELD-TABNAME = 'XDATA'.
AFIELD-COL_POS = L_COUNT.
AFIELD-FIELDNAME = 'NUMC'.
AFIELD-DATATYPE = 'NUMC'.
AFIELD-REPTEXT_DDIC = TEXT-001.
AFIELD-INPUT = INPUT.
AFIELD-DO_SUM = 'X'.
APPEND AFIELD TO XFIELD.
AFIELD-TABNAME = 'HDATA'.
APPEND AFIELD TO HFIELD.
AFIELD-TABNAME = 'LDATA'.
APPEND AFIELD TO LFIELD.
CLEAR AFIELD.
L_COUNT = 0.
L_COUNT = L_COUNT + 1.
AFIELD-COL_POS = L_COUNT.
AFIELD-TABNAME = SPACE.
AFIELD-FIELDNAME = 'CARRID'.
AFIELD-REF_TABNAME = 'SPFLI'.
AFIELD-KEY = 'X'. "define field as key
APPEND AFIELD TO YFIELD.
AFIELD-TABNAME = 'IDATA'.
APPEND AFIELD TO HFIELD.
CLEAR AFIELD.
L_COUNT = L_COUNT + 1.
AFIELD-TABNAME = SPACE.
AFIELD-COL_POS = L_COUNT.
AFIELD-FIELDNAME = 'CONNID'.
AFIELD-REF_TABNAME = 'SPFLI'.
AFIELD-KEY = 'X'. "define field as key
AFIELD-KEY_SEL = 'X'.
APPEND AFIELD TO YFIELD.
AFIELD-TABNAME = 'IDATA'.
APPEND AFIELD TO HFIELD.
CLEAR AFIELD.
L_COUNT = L_COUNT + 1.
AFIELD-TABNAME = SPACE.
AFIELD-COL_POS = L_COUNT.
AFIELD-FIELDNAME = 'CITYFROM'.
AFIELD-REF_TABNAME = 'SPFLI'.
APPEND AFIELD TO YFIELD.
AFIELD-TABNAME = 'IDATA'.
APPEND AFIELD TO HFIELD.
CLEAR AFIELD.
L_COUNT = L_COUNT + 1.
AFIELD-TABNAME = SPACE.
AFIELD-COL_POS = L_COUNT.
AFIELD-FIELDNAME = 'AIRPFROM'.
AFIELD-REF_TABNAME = 'SPFLI'.
APPEND AFIELD TO YFIELD.
AFIELD-TABNAME = 'IDATA'.
APPEND AFIELD TO HFIELD.
CLEAR AFIELD.
L_COUNT = L_COUNT + 1.
AFIELD-TABNAME = SPACE.
AFIELD-COL_POS = L_COUNT.
AFIELD-FIELDNAME = 'CITYTO'.
AFIELD-REF_TABNAME = 'SPFLI'.
APPEND AFIELD TO YFIELD.
AFIELD-TABNAME = 'IDATA'.
APPEND AFIELD TO HFIELD.
CLEAR AFIELD.
L_COUNT = L_COUNT + 1.
AFIELD-TABNAME = SPACE.
AFIELD-COL_POS = L_COUNT.
AFIELD-FIELDNAME = 'AIRPTO'.
AFIELD-REF_TABNAME = 'SPFLI'.
APPEND AFIELD TO YFIELD.
AFIELD-TABNAME = 'IDATA'.
APPEND AFIELD TO HFIELD.
CLEAR AFIELD.
L_COUNT = L_COUNT + 1.
AFIELD-TABNAME = SPACE.
AFIELD-COL_POS = L_COUNT.
AFIELD-FIELDNAME = 'DEPTIME'.
AFIELD-REF_TABNAME = 'SPFLI'.
APPEND AFIELD TO YFIELD.
AFIELD-TABNAME = 'IDATA'.
APPEND AFIELD TO HFIELD.
CLEAR AFIELD.
L_COUNT = L_COUNT + 1.
AFIELD-TABNAME = SPACE.
AFIELD-COL_POS = L_COUNT.
AFIELD-FIELDNAME = 'ARRTIME'.
AFIELD-REF_TABNAME = 'SPFLI'.
APPEND AFIELD TO YFIELD.
AFIELD-TABNAME = 'IDATA'.
APPEND AFIELD TO HFIELD.
CLEAR AFIELD.
L_COUNT = L_COUNT + 1.
AFIELD-TABNAME = SPACE.
AFIELD-COL_POS = L_COUNT.
AFIELD-FIELDNAME = 'FLTIME'.
AFIELD-REF_TABNAME = 'SPFLI'.
AFIELD-NO_OUT = 'X'.
APPEND AFIELD TO YFIELD.
AFIELD-TABNAME = 'IDATA'.
APPEND AFIELD TO HFIELD.
CLEAR AFIELD.
L_COUNT = L_COUNT + 1.
AFIELD-TABNAME = SPACE.
AFIELD-COL_POS = L_COUNT.
AFIELD-FIELDNAME = 'FLTYPE'.
AFIELD-REF_TABNAME = 'SPFLI'.
AFIELD-NO_OUT = 'X'.
APPEND AFIELD TO YFIELD.
AFIELD-TABNAME = 'IDATA'.
APPEND AFIELD TO HFIELD.
Ikonen
L_COUNT = L_COUNT + 1.
CLEAR AFIELD.
AFIELD-COL_POS = L_COUNT.
AFIELD-TABNAME = SPACE.
AFIELD-FIELDNAME = 'ICONS'.
AFIELD-REF_TABNAME = ' '.
AFIELD-SP_GROUP = 'B'.
AFIELD-REPTEXT_DDIC = 'Gpk?'(045).
AFIELD-NO_OUT = 'X'.
AFIELD-ICON = 'X'.
AFIELD-DATATYPE = 'CHAR'.
AFIELD-OUTPUTLEN = '4'.
APPEND AFIELD TO YFIELD.
AFIELD-TABNAME = 'IDATA'.
APPEND AFIELD TO HFIELD.
Symbole
L_COUNT = L_COUNT + 1.
CLEAR AFIELD.
L_COUNT = L_COUNT + 1.
AFIELD-TABNAME = SPACE.
AFIELD-FIELDNAME = 'SYMBOLS'.
AFIELD-REF_TABNAME = ' '.
AFIELD-COL_POS = L_COUNT.
AFIELD-REPTEXT_DDIC = 'Prs?'(040).
AFIELD-SP_GROUP = 'B'.
AFIELD-NO_OUT = 'X'.
AFIELD-SYMBOL = 'X'.
AFIELD-DATATYPE = 'CHAR'.
AFIELD-OUTPUTLEN = '4'.
AFIELD-JUST = 'C'.
APPEND AFIELD TO YFIELD.
AFIELD-TABNAME = 'IDATA'.
APPEND AFIELD TO HFIELD.
Gepäckgewicht
L_COUNT = L_COUNT + 1.
CLEAR AFIELD.
L_COUNT = L_COUNT + 1.
AFIELD-TABNAME = SPACE.
AFIELD-SP_GROUP = 'A'.
AFIELD-NO_OUT = SPACE.
AFIELD-FIELDNAME = 'DISTANCE'.
AFIELD-REF_TABNAME = 'SPFLI'.
AFIELD-COL_POS = L_COUNT.
AFIELD-NO_SIGN = 'X'.
AFIELD-QFIELDNAME = 'DISTID'.
AFIELD-OUTPUTLEN = '10'.
APPEND AFIELD TO YFIELD.
AFIELD-TABNAME = 'IDATA'.
APPEND AFIELD TO HFIELD.
Mengeneinheit
L_COUNT = L_COUNT + 1.
CLEAR AFIELD.
L_COUNT = L_COUNT + 1.
AFIELD-TABNAME = SPACE.
AFIELD-SP_GROUP = 'A'.
AFIELD-NO_OUT = SPACE.
AFIELD-FIELDNAME = 'DISTID'.
AFIELD-REF_TABNAME = 'SPFLI'.
AFIELD-COL_POS = L_COUNT.
AFIELD-OUTPUTLEN = '4'.
APPEND AFIELD TO YFIELD.
AFIELD-TABNAME = 'IDATA'.
APPEND AFIELD TO HFIELD.
Numc
L_COUNT = L_COUNT + 1.
CLEAR AFIELD.
AFIELD-COL_POS = L_COUNT.
AFIELD-TABNAME = SPACE.
AFIELD-FIELDNAME = 'NUMC'.
AFIELD-COL_POS = L_COUNT.
AFIELD-DO_SUM = 'X'.
AFIELD-SP_GROUP = 'S'.
AFIELD-SELTEXT_S = 'NUMC'.
AFIELD-SELTEXT_M = 'NUMC_U'.
AFIELD-SELTEXT_L = 'NUMC_USER'(041).
AFIELD-DATATYPE = 'NUMC'.
AFIELD-OUTPUTLEN = '10'.
AFIELD-NO_OUT = SPACE.
APPEND AFIELD TO YFIELD.
AFIELD-TABNAME = 'IDATA'.
APPEND AFIELD TO HFIELD.
Blubber
L_COUNT = L_COUNT + 1.
CLEAR AFIELD.
AFIELD-COL_POS = L_COUNT.
AFIELD-TABNAME = SPACE.
AFIELD-FIELDNAME = 'BLUBBER'.
AFIELD-REF_TABNAME = 'LTDXT'.
AFIELD-REF_FIELDNAME = 'TEXT'.
AFIELD-COL_POS = L_COUNT.
AFIELD-HOTSPOT = 'X'.
AFIELD-SP_GROUP = 'S'.
AFIELD-REPTEXT_DDIC = 'Kommentar'(043).
AFIELD-DATATYPE = 'CHAR'.
AFIELD-OUTPUTLEN = '20'.
AFIELD-NO_OUT = 'X'.
APPEND AFIELD TO YFIELD.
AFIELD-TABNAME = 'IDATA'.
APPEND AFIELD TO HFIELD.
Key
L_COUNT = 0.
CLEAR AFIELD.
AFIELD-FIELDNAME = 'CARRID'.
AFIELD-OUTPUTLEN = '3'.
AFIELD-KEY = 'X'.
AFIELD-REF_TABNAME = 'SBOOK'.
AFIELD-COL_POS = L_COUNT.
AFIELD-OFFSET = '4'.
APPEND AFIELD TO ZFIELD.
L_COUNT = L_COUNT + 1.
CLEAR AFIELD.
AFIELD-FIELDNAME = 'FLDATE'.
AFIELD-KEY = 'X'.
AFIELD-KEY_SEL = 'X'.
AFIELD-REF_TABNAME = 'SBOOK'.
AFIELD-COL_POS = L_COUNT.
APPEND AFIELD TO ZFIELD.
L_COUNT = L_COUNT + 1.
CLEAR AFIELD.
AFIELD-FIELDNAME = 'CONNID'.
AFIELD-KEY = 'X'.
AFIELD-KEY_SEL = 'X'.
AFIELD-REF_TABNAME = 'SBOOK'.
AFIELD-COL_POS = L_COUNT.
APPEND AFIELD TO ZFIELD.
L_COUNT = L_COUNT + 1.
CLEAR AFIELD.
AFIELD-FIELDNAME = 'BOOKID'.
AFIELD-KEY_SEL = 'X'.
AFIELD-KEY = 'X'.
AFIELD-REF_TABNAME = 'SBOOK'.
AFIELD-COL_POS = L_COUNT.
APPEND AFIELD TO ZFIELD.
Ikonen
L_COUNT = L_COUNT + 1.
CLEAR AFIELD.
AFIELD-FIELDNAME = 'ICONS'.
AFIELD-REF_TABNAME = ' '.
AFIELD-SP_GROUP = 'B'.
AFIELD-COL_POS = L_COUNT.
AFIELD-REPTEXT_DDIC = 'Gpk?'(045).
AFIELD-NO_OUT = 'X'.
AFIELD-ICON = 'X'.
AFIELD-DATATYPE = 'CHAR'.
AFIELD-OUTPUTLEN = '4'.
APPEND AFIELD TO ZFIELD.
Buchungsdatum
L_COUNT = L_COUNT + 1.
CLEAR AFIELD.
AFIELD-FIELDNAME = 'ORDER_DATE'.
AFIELD-REF_TABNAME = 'SBOOK'.
AFIELD-COL_POS = L_COUNT.
AFIELD-SP_GROUP = 'S'.
APPEND AFIELD TO ZFIELD.
Kundentyp
L_COUNT = L_COUNT + 1.
CLEAR AFIELD.
AFIELD-FIELDNAME = 'CUSTTYPE'.
AFIELD-REF_TABNAME = 'SBOOK'.
AFIELD-COL_POS = L_COUNT.
AFIELD-SP_GROUP = 'S'.
APPEND AFIELD TO ZFIELD.
Kundennummer
L_COUNT = L_COUNT + 1.
CLEAR AFIELD.
AFIELD-FIELDNAME = 'CUSTOMID'.
AFIELD-REF_TABNAME = 'SBOOK'.
AFIELD-COL_POS = L_COUNT.
AFIELD-SP_GROUP = 'S'.
AFIELD-OUTPUTLEN = '3'.
APPEND AFIELD TO ZFIELD.
Raucher
L_COUNT = L_COUNT + 1.
CLEAR AFIELD.
AFIELD-FIELDNAME = 'SMOKER'.
AFIELD-REF_TABNAME = 'SBOOK'.
AFIELD-COL_POS = L_COUNT.
AFIELD-SP_GROUP = 'S'.
APPEND AFIELD TO ZFIELD.
Flugklasse
L_COUNT = L_COUNT + 1.
CLEAR AFIELD.
AFIELD-FIELDNAME = 'CLASS'.
AFIELD-REF_TABNAME = 'SBOOK'.
AFIELD-COL_POS = L_COUNT.
AFIELD-SP_GROUP = 'S'.
APPEND AFIELD TO ZFIELD.
Rechnungsstellung ja/nein
L_COUNT = L_COUNT + 1.
CLEAR AFIELD.
AFIELD-FIELDNAME = 'INVOICE'.
AFIELD-REF_TABNAME = 'SBOOK'.
AFIELD-COL_POS = L_COUNT.
AFIELD-SP_GROUP = 'S'.
AFIELD-NO_OUT = 'X'.
APPEND AFIELD TO ZFIELD.
Symbole
L_COUNT = L_COUNT + 1.
CLEAR AFIELD.
AFIELD-FIELDNAME = 'SYMBOLS'.
AFIELD-REF_TABNAME = ' '.
AFIELD-COL_POS = L_COUNT.
AFIELD-REPTEXT_DDIC = 'Prs?'(040).
AFIELD-SP_GROUP = 'B'.
AFIELD-NO_OUT = 'X'.
AFIELD-SYMBOL = 'X'.
AFIELD-DATATYPE = 'CHAR'.
AFIELD-OUTPUTLEN = '4'.
AFIELD-JUST = 'C'.
APPEND AFIELD TO ZFIELD.
Betrag
L_COUNT = L_COUNT + 1.
CLEAR AFIELD.
AFIELD-FIELDNAME = 'LOCCURAM'.
AFIELD-REF_TABNAME = 'SBOOK'.
AFIELD-SP_GROUP = 'H'.
AFIELD-COL_POS = L_COUNT.
AFIELD-CFIELDNAME = 'LOCCURKEY'.
AFIELD-DATATYPE = 'CURR'.
AFIELD-DO_SUM = 'X'.
AFIELD-OUTPUTLEN = '10'.
APPEND AFIELD TO ZFIELD.
Währung
L_COUNT = L_COUNT + 1.
CLEAR AFIELD.
AFIELD-FIELDNAME = 'LOCCURKEY'.
AFIELD-TECH = ' '.
AFIELD-REF_TABNAME = 'SBOOK'.
AFIELD-COL_POS = L_COUNT.
AFIELD-OUTPUTLEN = '4'.
AFIELD-SP_GROUP = 'H'.
APPEND AFIELD TO ZFIELD.
BetragFW
L_COUNT = L_COUNT + 1.
CLEAR AFIELD.
AFIELD-FIELDNAME = 'FORCURAM'.
AFIELD-REF_TABNAME = 'SBOOK'.
AFIELD-SP_GROUP = 'F'.
AFIELD-COL_POS = L_COUNT.
AFIELD-NO_OUT = 'X'.
AFIELD-DO_SUM = 'X'.
AFIELD-CFIELDNAME = 'FORCURKEY'.
AFIELD-DATATYPE = 'CURR'.
AFIELD-OUTPUTLEN = '10'.
APPEND AFIELD TO ZFIELD.
Währung
L_COUNT = L_COUNT + 1.
CLEAR AFIELD.
AFIELD-FIELDNAME = 'FORCURKEY'.
AFIELD-SP_GROUP = 'F'.
AFIELD-TECH = ' '.
AFIELD-REF_TABNAME = 'SBOOK'.
AFIELD-COL_POS = L_COUNT.
AFIELD-NO_OUT = 'X'.
AFIELD-OUTPUTLEN = '4'.
APPEND AFIELD TO ZFIELD.
Gepäckgewicht
L_COUNT = L_COUNT + 1.
CLEAR AFIELD.
AFIELD-SP_GROUP = 'A'.
AFIELD-NO_OUT = 'X'.
AFIELD-FIELDNAME = 'LUGGWEIGHT'.
AFIELD-REF_TABNAME = 'SBOOK'.
AFIELD-COL_POS = L_COUNT.
AFIELD-NO_SIGN = 'X'.
AFIELD-QFIELDNAME = 'WUNIT'.
AFIELD-OUTPUTLEN = '10'.
APPEND AFIELD TO ZFIELD.
Mengeneinheit
L_COUNT = L_COUNT + 1.
CLEAR AFIELD.
AFIELD-SP_GROUP = 'A'.
AFIELD-NO_OUT = 'X'.
AFIELD-FIELDNAME = 'WUNIT'.
AFIELD-REF_TABNAME = 'SBOOK'.
AFIELD-COL_POS = L_COUNT.
AFIELD-OUTPUTLEN = '4'.
APPEND AFIELD TO ZFIELD.
Numc
L_COUNT = L_COUNT + 1.
CLEAR AFIELD.
AFIELD-FIELDNAME = 'NUMC'.
AFIELD-COL_POS = L_COUNT.
AFIELD-SP_GROUP = 'S'.
AFIELD-SELTEXT_S = 'NUMC'.
AFIELD-SELTEXT_M = 'NUMC_U'.
AFIELD-SELTEXT_L = 'NUMC_USER'(041).
AFIELD-DATATYPE = 'NUMC'.
AFIELD-OUTPUTLEN = '10'.
AFIELD-NO_OUT = 'X'.
APPEND AFIELD TO ZFIELD.
Blubber
L_COUNT = L_COUNT + 1.
CLEAR AFIELD.
AFIELD-FIELDNAME = 'BLUBBER'.
AFIELD-REF_TABNAME = 'LTDXT'.
AFIELD-REF_FIELDNAME = 'TEXT'.
AFIELD-COL_POS = L_COUNT.
AFIELD-HOTSPOT = 'X'.
AFIELD-SP_GROUP = 'S'.
AFIELD-REPTEXT_DDIC = 'Kommentar'(043).
AFIELD-DATATYPE = 'CHAR'.
AFIELD-OUTPUTLEN = '20'.
AFIELD-NO_OUT = 'X'.
APPEND AFIELD TO ZFIELD.
ENDFORM. " FIELDS
FORM YEVENTS *
FORM YEVENTS.
CLEAR XS_EVENT.
XS_EVENT-NAME = SLIS_EV_END_OF_PAGE.
XS_EVENT-FORM = 'YEND_OF_PAGE'.
APPEND XS_EVENT TO GT_YEVENTS.
CLEAR XS_EVENT.
XS_EVENT-NAME = SLIS_EV_TOP_OF_PAGE.
XS_EVENT-FORM = 'YTOP_OF_PAGE'.
APPEND XS_EVENT TO GT_YEVENTS.
CLEAR XS_EVENT.
XS_EVENT-NAME = SLIS_EV_TOP_OF_LIST.
XS_EVENT-FORM = 'YTOP_OF_LIST'.
APPEND XS_EVENT TO GT_YEVENTS.
CLEAR XS_EVENT.
XS_EVENT-NAME = SLIS_EV_END_OF_LIST.
XS_EVENT-FORM = 'YEND_OF_LIST'.
APPEND XS_EVENT TO GT_YEVENTS.
ENDFORM.
FORM HEVENTS *
FORM HEVENTS.
CLEAR XS_EVENT.
XS_EVENT-NAME = SLIS_EV_TOP_OF_PAGE.
XS_EVENT-FORM = 'HTOP_OF_PAGE'.
APPEND XS_EVENT TO GT_HEVENTS.
CLEAR XS_EVENT.
XS_EVENT-NAME = SLIS_EV_TOP_OF_LIST.
XS_EVENT-FORM = 'HTOP_OF_LIST'.
APPEND XS_EVENT TO GT_HEVENTS.
CLEAR XS_EVENT.
XS_EVENT-NAME = SLIS_EV_END_OF_LIST.
XS_EVENT-FORM = 'HEND_OF_LIST'.
APPEND XS_EVENT TO GT_HEVENTS.
ENDFORM.
FORM ZBEFORE_LINE_OUTPUT USING LINEINFO TYPE SLIS_LINEINFO.
WRITE AT /20 'HalloZ'.
ENDFORM.
FORM XBEFORE_LINE_OUTPUT *
FORM XBEFORE_LINE_OUTPUT USING LINEINFO TYPE SLIS_LINEINFO.
WRITE AT /20 'HalloX'.
ENDFORM.
FORM XTOP_OF_PAGE *
FORM XTOP_OF_PAGE.
WRITE: / 'X_TOP_OF_PAGE'.
ENDFORM.
FORM XTOP_OF_LIST *
FORM XTOP_OF_LIST.
WRITE: / 'X_TOP_OF_LIST'.
ENDFORM.
FORM XEND_OF_PAGE *
FORM XEND_OF_PAGE.
WRITE: / 'X_END_OF_PAGE'.
ENDFORM.
FORM XEND_OF_LIST *
FORM XEND_OF_LIST.
WRITE: / 'X_END_OF_LIST'.
ENDFORM.
FORM YTOP_OF_PAGE.
WRITE: / 'Y_TOP_OF_PAGE'.
ENDFORM.
FORM YTOP_OF_LIST *
FORM YTOP_OF_LIST.
WRITE: / 'Y_TOP_OF_LIST'.
ENDFORM.
FORM YEND_OF_PAGE *
FORM YEND_OF_PAGE.
WRITE: / 'Y_END_OF_PAGE'.
ENDFORM.
FORM YEND_OF_LIST *
FORM YEND_OF_LIST.
WRITE: / 'Y_END_OF_LIST'.
ENDFORM.
FORM YTOP_OF_LIST *
FORM HTOP_OF_LIST.
WRITE: / 'h_TOP_OF_LIST'.
ENDFORM.
FORM YEND_OF_PAGE *
FORM HEND_OF_PAGE.
WRITE: / 'h_END_OF_PAGE'.
ENDFORM.
FORM YEND_OF_LIST *
FORM HEND_OF_LIST.
WRITE: / 'h_END_OF_LIST'.
ENDFORM.
FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM
RS_SELFIELD TYPE SLIS_SELFIELD.
CASE R_UCOMM.
WHEN 'REFR'.
LOOP AT XDATA.
IF XDATA-BOX = 'X'.
XDATA-LISTINFO = 'C50'.
ELSE.
XDATA-LISTINFO = SPACE.
ENDIF.
MODIFY XDATA.
ENDLOOP.
LOOP AT YDATA.
IF YDATA-BOX = 'X'.
YDATA-LISTINFO = 'C50'.
ELSE.
YDATA-LISTINFO = SPACE.
ENDIF.
MODIFY YDATA.
ENDLOOP.
LOOP AT IDATA.
IF IDATA-BOX = 'X'.
IDATA-LISTINFO = 'C50'.
ELSE.
IDATA-LISTINFO = SPACE.
ENDIF.
MODIFY IDATA.
ENDLOOP.
RS_SELFIELD-REFRESH = 'X'.
WHEN OTHERS.
ENDCASE.
ENDFORM.
FORM PF_STATUS_SET *
FORM PF_STATUS_SET USING EXTAB TYPE SLIS_T_EXTAB.
SET PF-STATUS 'STANDARD'. " EXCLUDING EXTAB.
ENDFORM..
Similar Messages
-
Excel download for ALV Block report (List- export- spreadsheet)
Dear friends,
I want to download the output into Excel...
I am using all SAP standards and using the ALV Block list
Ex: List->export->local file.. is anable from here i can download to excell .....but the same there is anothere option : List->export->spreadsheet...( this one inactive.)
I want to activate the List->export->spreadsheet option.
how to do this???
Thanks,
Sridhar.hi Sridhar,
there is already an option to download in spreadsheet format when saving to local file...then why do you want to activate List->export->spreadsheet ????
regards,
madhu -
Hi,
I want Total on each block pertaining to REUSE_ALV_BLOCK_LIST_APPEND.
For eample.
Line1 10 20 30
Line2 40 10 10
Total 50 30 40
again second append
Line1 60 40 10
Line2 40 30 20
Total 100 70 30
Please help me.Hi,
example if the field is 'NETWR'.
WA_FCAT-COL_POS = '4'.
WA_FCAT-FIELDNAME = 'NETWR'.
WA_FCAT-SELTEXT_M = 'NET PRICE'.
WA_FCAT-DATATYPE = 'CURR'.
WA_FCAT-DO_SUM = 'X'.
APPEND WA_FCAT TO LT_FCAT3.
WA_SORT-FIELDNAME = 'EBELN'.
WA_SORT-GROUP = 'UL'.
WA_SORT-UP = 'X'.
WA_SORT-SUBTOT = 'X'.
APPEND WA_SORT TO LT_SORT.
pass the lt_sort and lt_fcat in fm : reuse_alv_block_list_append.
you will get the totals and subtotals also.
If above gives some problem and If you are doing sum on currency or quantity field....add these two lines in your fieldcatalogue...
wa_fcat-do_sum = 'X'.
wa_fcat-ref_tabname = '<ref tab name>'. " add it
wa_fcat-ref_fieldname = '<ref field name>'." add it
Regards:
Alok Bansal -
hi,
how can print 4 block of output in single screen , if its possable please send the code.....go through this program.
type-pools : slis.
*& structure declaration
types : begin of st_ekko,
ebeln type ekko-ebeln, "Purchasing Document Number
bstyp type ekko-bstyp, "Purchasing Document Category
bsart type ekko-bsart, "Purchasing Document Type
aedat type ekko-aedat, "record created on
ernam type ekko-ernam, "Person who Created the Object
end of st_ekko.
types : begin of st_ekpo,
ebeln type ekko-ebeln,
ebelp type ekpo-ebelp, "Item Number of Purchasing Document
ematn type ekpo-ematn, "Material number
matkl type ekpo-matkl, "Material group
netpr type ekpo-netpr, "Net price in purchasing document
end of st_ekpo.
*& internal table and work area declaration
data : it_ekpo type standard table of st_ekpo,
it_ekko type standard table of st_ekko,
it_fieldcat1 type slis_t_fieldcat_alv,
wa_fieldcat1 type slis_fieldcat_alv,
it_fieldcat2 type slis_t_fieldcat_alv,
wa_fieldcat2 type slis_fieldcat_alv,
it_events type slis_t_event,
wa_layout type slis_layout_alv.
*& data declaration
data : v_ebeln type ekko-ebeln.
*& selection-screen
selection-screen begin of block a with frame title text-000.
select-options : so_ebeln for v_ebeln.
selection-screen end of block a.
*& At-selection-screen
at selection-screen on so_ebeln.
perform validate_ebeln.
*& start-of-selection
start-of-selection.
perform data_retrieval.
*& end-of-selection
end-of-selection.
perform initialize_alv_block.
perform build_fieldcatalog1.
perform build_fieldcatalog2.
perform build_layout.
perform get_events .
perform append_ekkodata_to_alv_block.
perform append_ekpodata_to_alv_block.
perform display_blocked_alv.
*& FORM initialize_alv_block
form initialize_alv_block.
call function 'REUSE_ALV_BLOCK_LIST_INIT'
exporting
i_callback_program = sy-repid.
endform.
*& FORM validate_ebeln
form validate_ebeln.
select ebeln
from ekko
into table it_ekko
where ebeln in so_ebeln.
if sy-subrc ne 0.
message text-003 type 'W'.
endif.
endform.
*& FORM data_retrieval
form data_retrieval.
select ebeln bstyp bsart aedat ernam
from ekko
into table it_ekko
where ebeln in so_ebeln.
if sy-subrc ne 0.
message text-001 type 'I'.
endif.
select ebeln ebelp ematn matkl netpr
from ekpo
into table it_ekpo
where ebeln in so_ebeln.
if sy-subrc ne 0.
message text-002 type 'I'.
endif.
endform.
*& Form build_fieldcatalog1
form build_fieldcatalog1.
wa_fieldcat1-fieldname = 'EBELN'.
wa_fieldcat1-seltext_l = 'PURCHASE ORDER'.
wa_fieldcat1-col_pos = 0.
wa_fieldcat1-do_sum = 'X'.
append wa_fieldcat1 to it_fieldcat1.
wa_fieldcat1-fieldname = 'BSTYP'.
wa_fieldcat1-seltext_l = 'DOCUMENT CATEGORY'.
wa_fieldcat1-col_pos = 1.
append wa_fieldcat1 to it_fieldcat1.
wa_fieldcat1-fieldname = 'BSART'.
wa_fieldcat1-seltext_l = 'DOCUMENT TYPE'.
wa_fieldcat1-col_pos = 2.
append wa_fieldcat1 to it_fieldcat1.
wa_fieldcat1-fieldname = 'AEDAT'.
wa_fieldcat1-seltext_l = 'DATE'.
wa_fieldcat1-col_pos = 3.
append wa_fieldcat1 to it_fieldcat1.
wa_fieldcat1-fieldname = 'ERNAM'.
wa_fieldcat1-seltext_l = 'NAME'.
wa_fieldcat1-col_pos = 4.
append wa_fieldcat1 to it_fieldcat1.
endform. "build_fieldcatalog
*& Form build_fieldcatalog2
form build_fieldcatalog2.
wa_fieldcat2-fieldname = 'EBELN'.
wa_fieldcat2-seltext_l = 'PURCHASE ORDER'.
wa_fieldcat2-col_pos = 0.
append wa_fieldcat2 to it_fieldcat2.
wa_fieldcat2-fieldname = 'EBELP'.
wa_fieldcat2-seltext_l = 'ITEM NUMBER'.
wa_fieldcat2-col_pos = 1.
append wa_fieldcat2 to it_fieldcat2.
wa_fieldcat2-fieldname = 'EMATN'.
wa_fieldcat2-seltext_l = 'MATERIAL TYPE'.
wa_fieldcat2-col_pos = 2.
append wa_fieldcat2 to it_fieldcat2.
wa_fieldcat2-fieldname = 'MATKL'.
wa_fieldcat2-seltext_l = 'MATERIAL GROUP'.
wa_fieldcat2-col_pos = 3.
append wa_fieldcat2 to it_fieldcat2.
wa_fieldcat2-fieldname = 'NETPR'.
wa_fieldcat2-seltext_l = 'NET PRICE'.
wa_fieldcat2-col_pos = 4.
wa_fieldcat2-do_sum = 'X'.
append wa_fieldcat2 to it_fieldcat2.
endform. "build_fieldcatalog
*& form build_layout.
form build_layout.
wa_layout-zebra ='X'.
wa_layout-no_vline = ' '.
wa_layout-no_hline = ' '.
wa_layout-colwidth_optimize = 'X'.
wa_layout-window_titlebar = 'PURCHASE ORDER HEADER AND ITEM DETAILS'.
endform. "build_layout
*& form append_ekkodata_to_alv_block
form append_ekkodata_to_alv_block.
call function 'REUSE_ALV_BLOCK_LIST_APPEND'
exporting
is_layout = wa_layout
it_fieldcat = it_fieldcat1
i_tabname ='it_ekko'
it_events = it_events[]
IT_SORT = IT_SORT
I_TEXT = ' '
tables
t_outtab = it_ekko
exceptions
program_error = 1
maximum_of_appends_reached = 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.
endform.
*& form append_ekpodata_to_alv_block
form append_ekpodata_to_alv_block.
call function 'REUSE_ALV_BLOCK_LIST_APPEND'
exporting
is_layout = wa_layout
it_fieldcat = it_fieldcat2
i_tabname ='it_ekpo'
it_events = it_events[]
IT_SORT = IT_SORT
I_TEXT = ' '
tables
t_outtab = it_ekpo
exceptions
program_error = 1
maximum_of_appends_reached = 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.
endform.
*& FORM display_blocked_alv.
form display_blocked_alv.
call function 'REUSE_ALV_BLOCK_LIST_DISPLAY'.
endform.
*& Form GET_EVENTS
form get_events .
call function 'REUSE_ALV_EVENTS_GET'
exporting
i_list_type = 2
importing
et_events = it_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. " GET_EVENTS
in this program i have append two blocks of data..like this u can append the other two blocks to display the four blocks of data.. -
Dear All,
when i am printing alv block report, each block is printing in each page and also some other bock is printed ( no of records passed by etc.. ) is shown in print preview and also printedon separate page
Please provide settings to fix this...
Thanks in Advance.Hi,
Can any one have solution on this... -
ALV Block list report FILTERING
Hello All,
I am Working on ALV Block List Report. In that report i am having two Blocks.
if i set a filter for one block it is filtering that block.
My requirment is like this if iam setting a filter for one block, in the second block also have the same field, then filter should be setted to the second block aslo.
Is this possible, Can any one Help me out form this issue.
Thanks,
Feroz.Hello All,
I am Working on ALV Block List Report. In that report i am having two Blocks.
if i set a filter for one block it is filtering that block.
My requirment is like this if iam setting a filter for one block, in the second block also have the same field, then filter should be setted to the second block aslo.
Is this possible, Can any one Help me out form this issue.
Thanks,
Feroz. -
SAVE Layout Option in ALV list Report
Hi Experts,
Is it possible to SAVE the layout option for Block ALV list Reports?
Thanks in Advance,
Sivak.Hi,
It is not possible to save layout in BLock ALV display but possible to change layout. There is no parameter to save. It is not possible to store the layout as it has several structure.
Thanks & Regards
Rocky -
HI,
PLZ help me .
By using this code I select data from TXT file and insert data in CS13 transaction then I want to show each material which present in TXT file as ALV BLOCK DISPLAY.
Suppose txt file contain four material so report will show 4 list block .means data of every material showing in different blocks in the report.
Code which I am using showing data for last item from txt file in one block and other items showing when I click back button .
i am using below codes..........
*& Report ZCS13 *
REPORT zcs13 .
TABLES:
mara,
stpo,
t001w,
stko.
TYPE-POOLS: slis.
DATA: BEGIN OF it_stb OCCURS 0.
INCLUDE STRUCTURE zstpox.
DATA:END OF it_stb.
DATA: BEGIN OF it_matmaster OCCURS 0,
matnr TYPE matnr,
werks TYPE werks,
stlal type stlal,
capid type capid,
emeng TYPE emeng,
END OF it_matmaster.
DATA : ievent TYPE slis_t_event.
DATA: it_stb2 LIKE stpox OCCURS 0 WITH HEADER LINE,
it_stb3 LIKE stpox OCCURS 0 WITH HEADER LINE,
temp_cat TYPE slis_fieldcat_alv,
sline TYPE slis_listheader,
gt_list_top_of_page TYPE slis_t_listheader,
gs_layout TYPE slis_layout_alv ,
gt_events TYPE slis_t_event,
gt_sort TYPE slis_t_sortinfo_alv,
w_msg(255) TYPE c,
int TYPE i VALUE 0.
Declaration of parameters
*SELECTION-SCREEN BEGIN OF BLOCK b2.
*SELECTION-SCREEN BEGIN OF LINE.
*SELECTION-SCREEN COMMENT (8) FOR FIELD p_matnr.
*SELECTION-SCREEN POSITION 25 .
*PARAMETERS: p_matnr LIKE mara-matnr OBLIGATORY .
*SELECTION-SCREEN END OF LINE.
*SELECTION-SCREEN BEGIN OF LINE.
*SELECTION-SCREEN COMMENT (8) FOR FIELD p_werks.
*SELECTION-SCREEN POSITION 25 .
*PARAMETERS: p_werks LIKE t001w-werks OBLIGATORY .
*SELECTION-SCREEN END OF LINE.
*SELECTION-SCREEN BEGIN OF LINE.
*SELECTION-SCREEN COMMENT (15) FOR FIELD p_albom.
*SELECTION-SCREEN POSITION 25 .
*PARAMETERS: p_albom LIKE stko-stlal DEFAULT ' '.
*SELECTION-SCREEN END OF LINE.
*SELECTION-SCREEN BEGIN OF LINE.
*SELECTION-SCREEN COMMENT (15) FOR FIELD p_bomap.
*SELECTION-SCREEN POSITION 25 .
*PARAMETERS: p_bomap(4) DEFAULT 'PP01'.
*SELECTION-SCREEN END OF LINE.
*SELECTION-SCREEN END OF BLOCK b2.
*DATA :anr_datuv LIKE aenr-datuv.
*SELECTION-SCREEN BEGIN OF BLOCK b3.
*SELECTION-SCREEN BEGIN OF LINE.
*SELECTION-SCREEN COMMENT (15) text-s02 .
*SELECTION-SCREEN END OF LINE.
*SELECTION-SCREEN BEGIN OF LINE.
*SELECTION-SCREEN COMMENT (15) text-s02 .
*SELECTION-SCREEN END OF LINE.
*SELECTION-SCREEN BEGIN OF LINE.
*SELECTION-SCREEN COMMENT (15) text-s03 .
*SELECTION-SCREEN END OF LINE.
*SELECTION-SCREEN END OF BLOCK b3.
*SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-s01 .
*SELECTION-SCREEN BEGIN OF LINE.
*SELECTION-SCREEN COMMENT (15) FOR FIELD p_vfrom.
*SELECTION-SCREEN POSITION 25 .
*PARAMETERS p_vfrom LIKE stpo-datuv DEFAULT sy-datum.
*SELECTION-SCREEN END OF LINE.
*SELECTION-SCREEN BEGIN OF LINE.
*SELECTION-SCREEN COMMENT (15) FOR FIELD pm_aennr.
*SELECTION-SCREEN POSITION 25 .
*PARAMETERS pm_aennr LIKE aenr-aennr.
*SELECTION-SCREEN END OF LINE.
*SELECTION-SCREEN BEGIN OF LINE.
*SELECTION-SCREEN COMMENT (17) FOR FIELD p_reqty.
*SELECTION-SCREEN POSITION 25 .
*PARAMETERS p_reqty LIKE stpo-menge DEFAULT '1' .
*SELECTION-SCREEN END OF LINE.
*SELECTION-SCREEN BEGIN OF LINE.
*SELECTION-SCREEN COMMENT (15) FOR FIELD p_assd.
*SELECTION-SCREEN POSITION 25 .
*PARAMETERS p_assd AS CHECKBOX.
*SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-002.
PARAMETERS:p_file LIKE rlgrap-filename OBLIGATORY.
SELECTION-SCREEN END OF BLOCK b1 .
CONSTANTS c_x VALUE 'X'.
DATA: w_topmat LIKE cstmat,
fieldcat TYPE slis_t_fieldcat_alv,
wa_fieldcat TYPE slis_fieldcat_alv.
DATA:v_file TYPE string.
*SELECTION-SCREEN END OF BLOCK b1.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
CALL FUNCTION 'F4_FILENAME'
EXPORTING
program_name = syst-cprog
dynpro_number = syst-dynnr
field_name = 'P_FILE'
IMPORTING
file_name = p_file.
START-OF-SELECTION.
v_file = p_file.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = v_file
filetype = 'ASC'
has_field_separator = 'X'
HEADER_LENGTH = 0
READ_BY_LINE = 'X'
DAT_MODE = ' '
IMPORTING
FILELENGTH =
HEADER =
TABLES
data_tab = it_matmaster
EXCEPTIONS
file_open_error = 1
file_read_error = 2
no_batch = 3
gui_refuse_filetransfer = 4
invalid_type = 5
no_authority = 6
unknown_error = 7
bad_data_format = 8
header_not_allowed = 9
separator_not_allowed = 10
header_too_long = 11
unknown_dp_error = 12
access_denied = 13
dp_out_of_memory = 14
disk_full = 15
dp_timeout = 16
OTHERS = 17
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
LOOP AT it_matmaster.
PERFORM explode_assembly.
PERFORM f01_set_layo CHANGING gs_layout.
PERFORM eventtab_build USING ievent.
perform fldcat.
PERFORM display_grid.
ENDLOOP.
PERFORM display_grid.
*& Form EXPLODE_ASSEMBLY
text
FORM explode_assembly.
CALL FUNCTION 'CS_BOM_EXPL_MAT_V2'
EXPORTING
capid = 'BEST'
cuols = c_x
datuv = sy-datum
emeng = it_matmaster-emeng
knfba = c_x
ksbvo = c_x
mehrs = c_x
mbwls = c_x
mdmps = c_x
mktls = c_x
stlal = it_matmaster-stlal
stlan = p_bomap
mtnrv = it_matmaster-matnr
werks = it_matmaster-werks
svwvo = 'X'
vrsvo = 'X'
IMPORTING
topmat = w_topmat
TABLES
stb = it_stb
EXCEPTIONS
alt_not_found = 1
call_invalid = 2
material_not_found = 3
missing_authorization = 4
no_bom_found = 5
no_plant_data = 6
no_suitable_bom_found = 7
conversion_error = 8
OTHERS = 9.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4
INTO w_msg.
WRITE: / w_msg.
EXIT.
ENDIF.
ENDFORM. "explode_assembly
*& Form display_grid
text
--> p1 text
<-- p2 text
form display_grid .
*CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = 'ZCS13'
i_callback_top_of_page = 'TOP_OF_PAGE_GRID'
is_layout = gs_layout
it_fieldcat = fieldcat
IT_SORT = GT_SORT[]
i_save = 'A'
it_events = gt_events[]
TABLES
t_outtab = it_stb
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_BLOCK_LIST_INIT'
EXPORTING
i_callback_program = 'ZALVTOTAL'
I_CALLBACK_PF_STATUS_SET = PFSTATUS
i_callback_user_command = 'USER_COMMAND'(001)
IT_EXCLUDING =
*CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
EXPORTING
is_layout = gs_layout
it_fieldcat = i_fieldcat
i_tabname = 'IT_TAB[]'
it_events = gt_events
it_sort = gt_sort
I_TEXT = ' '
TABLES
t_outtab = it_tab[]
EXCEPTIONS
program_error = 1
maximum_of_appends_reached = 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 'REUSE_ALV_BLOCK_LIST_APPEND'
EXPORTING
is_layout = gs_layout
it_fieldcat = fieldcat
i_tabname = 'IT_STB[]'
it_events = gt_events
it_sort = gt_sort
I_TEXT = ' '
TABLES
t_outtab = it_stb[]
EXCEPTIONS
program_error = 1
maximum_of_appends_reached = 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 'REUSE_ALV_BLOCK_LIST_DISPLAY'
EXPORTING
i_interface_check = 'x_print_layout'
IS_PRINT =
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
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_grid
*& Form fldcat
text
--> p1 text
<-- p2 text
form fldcat .
*DATA: wa_fieldcat TYPE slis_fieldcat_alv,
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
i_program_name = 'ZCS13'
I_INTERNAL_TABNAME = 'IT_STB'
i_structure_name = 'ZSTPOX'
I_CLIENT_NEVER_DISPLAY = 'X'
i_inclname = 'ZCS13'
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE =
CHANGING
ct_fieldcat = fieldcat[]
EXCEPTIONS
INCONSISTENT_INTERFACE = 1
PROGRAM_ERROR = 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.
endform. " fldcatHi ,
plz check the below codeand suggest me why it not showing data.....
i make changes according to you ...
waiting for your reply
*& Report ZCS13 *
REPORT zcs13 .
TABLES:
mara,
stpo,
t001w,
stko.
TYPE-POOLS: slis.
DATA: BEGIN OF it_stb OCCURS 0.
INCLUDE STRUCTURE zstpox.
DATA:END OF it_stb.
DATA: BEGIN OF it_matmaster OCCURS 0,
matnr TYPE matnr,
werks TYPE werks,
stlal type stlal,
capid type capid,
emeng TYPE emeng,
END OF it_matmaster.
DATA : ievent TYPE slis_t_event.
DATA: it_stb2 LIKE stpox OCCURS 0 WITH HEADER LINE,
it_stb3 LIKE stpox OCCURS 0 WITH HEADER LINE,
temp_cat TYPE slis_fieldcat_alv,
sline TYPE slis_listheader,
gt_list_top_of_page TYPE slis_t_listheader,
gs_layout TYPE slis_layout_alv ,
gt_events TYPE slis_t_event,
gt_sort TYPE slis_t_sortinfo_alv,
w_msg(255) TYPE c,
int TYPE i VALUE 0.
Declaration of parameters
*SELECTION-SCREEN BEGIN OF BLOCK b2.
*SELECTION-SCREEN BEGIN OF LINE.
*SELECTION-SCREEN COMMENT (8) FOR FIELD p_matnr.
*SELECTION-SCREEN POSITION 25 .
*PARAMETERS: p_matnr LIKE mara-matnr OBLIGATORY .
*SELECTION-SCREEN END OF LINE.
*SELECTION-SCREEN BEGIN OF LINE.
*SELECTION-SCREEN COMMENT (8) FOR FIELD p_werks.
*SELECTION-SCREEN POSITION 25 .
*PARAMETERS: p_werks LIKE t001w-werks OBLIGATORY .
*SELECTION-SCREEN END OF LINE.
*SELECTION-SCREEN BEGIN OF LINE.
*SELECTION-SCREEN COMMENT (15) FOR FIELD p_albom.
*SELECTION-SCREEN POSITION 25 .
*PARAMETERS: p_albom LIKE stko-stlal DEFAULT ' '.
*SELECTION-SCREEN END OF LINE.
*SELECTION-SCREEN BEGIN OF LINE.
*SELECTION-SCREEN COMMENT (15) FOR FIELD p_bomap.
*SELECTION-SCREEN POSITION 25 .
*PARAMETERS: p_bomap(4) DEFAULT 'PP01'.
*SELECTION-SCREEN END OF LINE.
*SELECTION-SCREEN END OF BLOCK b2.
*DATA :anr_datuv LIKE aenr-datuv.
*SELECTION-SCREEN BEGIN OF BLOCK b3.
*SELECTION-SCREEN BEGIN OF LINE.
*SELECTION-SCREEN COMMENT (15) text-s02 .
*SELECTION-SCREEN END OF LINE.
*SELECTION-SCREEN BEGIN OF LINE.
*SELECTION-SCREEN COMMENT (15) text-s02 .
*SELECTION-SCREEN END OF LINE.
*SELECTION-SCREEN BEGIN OF LINE.
*SELECTION-SCREEN COMMENT (15) text-s03 .
*SELECTION-SCREEN END OF LINE.
*SELECTION-SCREEN END OF BLOCK b3.
*SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-s01 .
*SELECTION-SCREEN BEGIN OF LINE.
*SELECTION-SCREEN COMMENT (15) FOR FIELD p_vfrom.
*SELECTION-SCREEN POSITION 25 .
*PARAMETERS p_vfrom LIKE stpo-datuv DEFAULT sy-datum.
*SELECTION-SCREEN END OF LINE.
*SELECTION-SCREEN BEGIN OF LINE.
*SELECTION-SCREEN COMMENT (15) FOR FIELD pm_aennr.
*SELECTION-SCREEN POSITION 25 .
*PARAMETERS pm_aennr LIKE aenr-aennr.
*SELECTION-SCREEN END OF LINE.
*SELECTION-SCREEN BEGIN OF LINE.
*SELECTION-SCREEN COMMENT (17) FOR FIELD p_reqty.
*SELECTION-SCREEN POSITION 25 .
*PARAMETERS p_reqty LIKE stpo-menge DEFAULT '1' .
*SELECTION-SCREEN END OF LINE.
*SELECTION-SCREEN BEGIN OF LINE.
*SELECTION-SCREEN COMMENT (15) FOR FIELD p_assd.
*SELECTION-SCREEN POSITION 25 .
*PARAMETERS p_assd AS CHECKBOX.
*SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-002.
PARAMETERS:p_file LIKE rlgrap-filename OBLIGATORY.
SELECTION-SCREEN END OF BLOCK b1 .
CONSTANTS c_x VALUE 'X'.
DATA: w_topmat LIKE cstmat,
fieldcat TYPE slis_t_fieldcat_alv,
wa_fieldcat TYPE slis_fieldcat_alv.
DATA:v_file TYPE string.
*SELECTION-SCREEN END OF BLOCK b1.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
CALL FUNCTION 'F4_FILENAME'
EXPORTING
program_name = syst-cprog
dynpro_number = syst-dynnr
field_name = 'P_FILE'
IMPORTING
file_name = p_file.
START-OF-SELECTION.
v_file = p_file.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = v_file
filetype = 'ASC'
has_field_separator = 'X'
HEADER_LENGTH = 0
READ_BY_LINE = 'X'
DAT_MODE = ' '
IMPORTING
FILELENGTH =
HEADER =
TABLES
data_tab = it_matmaster
EXCEPTIONS
file_open_error = 1
file_read_error = 2
no_batch = 3
gui_refuse_filetransfer = 4
invalid_type = 5
no_authority = 6
unknown_error = 7
bad_data_format = 8
header_not_allowed = 9
separator_not_allowed = 10
header_too_long = 11
unknown_dp_error = 12
access_denied = 13
dp_out_of_memory = 14
disk_full = 15
dp_timeout = 16
OTHERS = 17
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_BLOCK_LIST_INIT'
EXPORTING
i_callback_program = 'ZCS13'
I_CALLBACK_PF_STATUS_SET = PFSTATUS
i_callback_user_command = 'USER_COMMAND'(001).
IT_EXCLUDING =.
DATA :int1(10) .
PERFORM fldcat.
LOOP AT it_matmaster.
PERFORM explode_assembly.
PERFORM f01_set_layo CHANGING gs_layout.
PERFORM eventtab_build USING ievent.
PERFORM fldcat.
PERFORM display_grid.
ENDLOOP.
PERFORM display_grid.
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY'
EXPORTING
i_interface_check = 'x_print_layout'
IS_PRINT =
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
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.
*& Form EXPLODE_ASSEMBLY
text
FORM explode_assembly.
CALL FUNCTION 'CS_BOM_EXPL_MAT_V2'
EXPORTING
capid = 'BEST'
cuols = c_x
datuv = sy-datum
emeng = it_matmaster-emeng
knfba = c_x
ksbvo = c_x
mehrs = c_x
mbwls = c_x
mdmps = c_x
mktls = c_x
stlal = it_matmaster-stlal
stlan = p_bomap
mtnrv = it_matmaster-matnr
werks = it_matmaster-werks
svwvo = 'X'
vrsvo = 'X'
IMPORTING
topmat = w_topmat
TABLES
stb = it_stb
EXCEPTIONS
alt_not_found = 1
call_invalid = 2
material_not_found = 3
missing_authorization = 4
no_bom_found = 5
no_plant_data = 6
no_suitable_bom_found = 7
conversion_error = 8
OTHERS = 9.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4
INTO w_msg.
WRITE: / w_msg.
EXIT.
ENDIF.
ENDFORM. "explode_assembly
*& Form display_grid
text
--> p1 text
<-- p2 text
FORM display_grid .
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
EXPORTING
is_layout = gs_layout
it_fieldcat = fieldcat
i_tabname = 'IT_STB[]'
it_events = gt_events
it_sort = gt_sort
I_TEXT = ' '
TABLES
t_outtab = it_stb
EXCEPTIONS
program_error = 1
maximum_of_appends_reached = 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.
ENDFORM. " display_grid
*& Form fldcat
text
--> p1 text
<-- p2 text
FORM fldcat .
*DATA: wa_fieldcat TYPE slis_fieldcat_alv,
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
i_program_name = 'ZCS13'
I_INTERNAL_TABNAME = 'IT_STB'
i_structure_name = 'ZSTPOX'
I_CLIENT_NEVER_DISPLAY = 'X'
i_inclname = 'ZCS13'
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE =
CHANGING
ct_fieldcat = fieldcat[]
EXCEPTIONS
INCONSISTENT_INTERFACE = 1
PROGRAM_ERROR = 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.
ENDFORM. " fldcat -
Hi All,
I am trying to displaying BOM explosion for materials in ALV Block list.
I am taking the materials to be exploded from a local file. Taking the contents of the file in an internal table and then passing the parameters like material number bom application , alternative BOM to the function 'CS_BOM_EXPL_MAT_V2'
Then I am calling the functions for ALV Block display for each material.
But when I am displaying the data in the block display , only the BOM explosion for the last material is getting displayed.
I am pasting the code also for ur reference.
REPORT zcs13 .
TABLES:
mara,
stpo,
t001w,
stko.
TYPE-POOLS: slis.
DATA: BEGIN OF it_stb OCCURS 0.
INCLUDE STRUCTURE zstpox.
DATA:END OF it_stb.
DATA: BEGIN OF it_matmaster OCCURS 0,
matnr TYPE matnr,
werks TYPE werks,
stlal type stlal,
capid type capid,
emeng TYPE emeng,
END OF it_matmaster.
DATA : ievent TYPE slis_t_event.
DATA: it_stb2 LIKE stpox OCCURS 0 WITH HEADER LINE,
it_stb3 LIKE stpox OCCURS 0 WITH HEADER LINE,
temp_cat TYPE slis_fieldcat_alv,
sline TYPE slis_listheader,
gt_list_top_of_page TYPE slis_t_listheader,
gs_layout TYPE slis_layout_alv ,
gt_events TYPE slis_t_event,
gt_sort TYPE slis_t_sortinfo_alv,
w_msg(255) TYPE c,
int TYPE i VALUE 0.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-002.
PARAMETERS:p_file LIKE rlgrap-filename OBLIGATORY.
SELECTION-SCREEN END OF BLOCK b1 .
CONSTANTS c_x VALUE 'X'.
DATA: w_topmat LIKE cstmat,
fieldcat TYPE slis_t_fieldcat_alv,
wa_fieldcat TYPE slis_fieldcat_alv.
DATA:v_file TYPE string.
*SELECTION-SCREEN END OF BLOCK b1.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
CALL FUNCTION 'F4_FILENAME'
EXPORTING
program_name = syst-cprog
dynpro_number = syst-dynnr
field_name = 'P_FILE'
IMPORTING
file_name = p_file.
START-OF-SELECTION.
v_file = p_file.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = v_file
filetype = 'ASC'
has_field_separator = 'X'
HEADER_LENGTH = 0
READ_BY_LINE = 'X'
DAT_MODE = ' '
IMPORTING
FILELENGTH =
HEADER =
TABLES
data_tab = it_matmaster
EXCEPTIONS
file_open_error = 1
file_read_error = 2
no_batch = 3
gui_refuse_filetransfer = 4
invalid_type = 5
no_authority = 6
unknown_error = 7
bad_data_format = 8
header_not_allowed = 9
separator_not_allowed = 10
header_too_long = 11
unknown_dp_error = 12
access_denied = 13
dp_out_of_memory = 14
disk_full = 15
dp_timeout = 16
OTHERS = 17
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
LOOP AT it_matmaster.
PERFORM explode_assembly.
PERFORM f01_set_layo CHANGING gs_layout.
PERFORM eventtab_build USING ievent.
perform fldcat.
PERFORM display_grid.
ENDLOOP.
PERFORM display_grid.
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY'
EXPORTING
i_interface_check = 'x_print_layout'
IS_PRINT =
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
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.
*& Form EXPLODE_ASSEMBLY
text
FORM explode_assembly.
CALL FUNCTION 'CS_BOM_EXPL_MAT_V2'
EXPORTING
capid = 'BEST'
cuols = c_x
datuv = sy-datum
emeng = it_matmaster-emeng
knfba = c_x
ksbvo = c_x
mehrs = c_x
mbwls = c_x
mdmps = c_x
mktls = c_x
stlal = it_matmaster-stlal
stlan = p_bomap
mtnrv = it_matmaster-matnr
werks = it_matmaster-werks
svwvo = 'X'
vrsvo = 'X'
IMPORTING
topmat = w_topmat
TABLES
stb = it_stb
EXCEPTIONS
alt_not_found = 1
call_invalid = 2
material_not_found = 3
missing_authorization = 4
no_bom_found = 5
no_plant_data = 6
no_suitable_bom_found = 7
conversion_error = 8
OTHERS = 9.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4
INTO w_msg.
WRITE: / w_msg.
EXIT.
ENDIF.
ENDFORM. "explode_assembly
*& Form display_grid
text
--> p1 text
<-- p2 text
form display_grid .
*CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = 'ZCS13'
i_callback_top_of_page = 'TOP_OF_PAGE_GRID'
is_layout = gs_layout
it_fieldcat = fieldcat
IT_SORT = GT_SORT[]
i_save = 'A'
it_events = gt_events[]
TABLES
t_outtab = it_stb
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_BLOCK_LIST_INIT'
EXPORTING
i_callback_program = 'ZALVTOTAL'
I_CALLBACK_PF_STATUS_SET = PFSTATUS
i_callback_user_command = 'USER_COMMAND'(001)
IT_EXCLUDING =
*CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
EXPORTING
is_layout = gs_layout
it_fieldcat = i_fieldcat
i_tabname = 'IT_TAB[]'
it_events = gt_events
it_sort = gt_sort
I_TEXT = ' '
TABLES
t_outtab = it_tab[]
EXCEPTIONS
program_error = 1
maximum_of_appends_reached = 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 'REUSE_ALV_BLOCK_LIST_APPEND'
EXPORTING
is_layout = gs_layout
it_fieldcat = fieldcat
i_tabname = 'IT_STB[]'
it_events = gt_events
it_sort = gt_sort
I_TEXT = ' '
TABLES
t_outtab = it_stb[]
EXCEPTIONS
program_error = 1
maximum_of_appends_reached = 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.
clear it_stb[].
endform. " display_grid
*& Form fldcat
text
--> p1 text
<-- p2 text
form fldcat .
*DATA: wa_fieldcat TYPE slis_fieldcat_alv,
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
i_program_name = 'ZCS13'
I_INTERNAL_TABNAME = 'IT_STB'
i_structure_name = 'ZSTPOX'
I_CLIENT_NEVER_DISPLAY = 'X'
i_inclname = 'ZCS13'
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE =
CHANGING
ct_fieldcat = fieldcat[]
EXCEPTIONS
INCONSISTENT_INTERFACE = 1
PROGRAM_ERROR = 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.
Pls Suggest
Thanks.Hi All,
I am trying to displaying BOM explosion for materials in ALV Block list.
I am taking the materials to be exploded from a local file. Taking the contents of the file in an internal table and then passing the parameters like material number bom application , alternative BOM to the function 'CS_BOM_EXPL_MAT_V2'
Then I am calling the functions for ALV Block display for each material.
But when I am displaying the data in the block display , only the BOM explosion for the last material is getting displayed.
I am pasting the code also for ur reference.
REPORT zcs13 .
TABLES:
mara,
stpo,
t001w,
stko.
TYPE-POOLS: slis.
DATA: BEGIN OF it_stb OCCURS 0.
INCLUDE STRUCTURE zstpox.
DATA:END OF it_stb.
DATA: BEGIN OF it_matmaster OCCURS 0,
matnr TYPE matnr,
werks TYPE werks,
stlal type stlal,
capid type capid,
emeng TYPE emeng,
END OF it_matmaster.
DATA : ievent TYPE slis_t_event.
DATA: it_stb2 LIKE stpox OCCURS 0 WITH HEADER LINE,
it_stb3 LIKE stpox OCCURS 0 WITH HEADER LINE,
temp_cat TYPE slis_fieldcat_alv,
sline TYPE slis_listheader,
gt_list_top_of_page TYPE slis_t_listheader,
gs_layout TYPE slis_layout_alv ,
gt_events TYPE slis_t_event,
gt_sort TYPE slis_t_sortinfo_alv,
w_msg(255) TYPE c,
int TYPE i VALUE 0.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-002.
PARAMETERS:p_file LIKE rlgrap-filename OBLIGATORY.
SELECTION-SCREEN END OF BLOCK b1 .
CONSTANTS c_x VALUE 'X'.
DATA: w_topmat LIKE cstmat,
fieldcat TYPE slis_t_fieldcat_alv,
wa_fieldcat TYPE slis_fieldcat_alv.
DATA:v_file TYPE string.
*SELECTION-SCREEN END OF BLOCK b1.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
CALL FUNCTION 'F4_FILENAME'
EXPORTING
program_name = syst-cprog
dynpro_number = syst-dynnr
field_name = 'P_FILE'
IMPORTING
file_name = p_file.
START-OF-SELECTION.
v_file = p_file.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = v_file
filetype = 'ASC'
has_field_separator = 'X'
HEADER_LENGTH = 0
READ_BY_LINE = 'X'
DAT_MODE = ' '
IMPORTING
FILELENGTH =
HEADER =
TABLES
data_tab = it_matmaster
EXCEPTIONS
file_open_error = 1
file_read_error = 2
no_batch = 3
gui_refuse_filetransfer = 4
invalid_type = 5
no_authority = 6
unknown_error = 7
bad_data_format = 8
header_not_allowed = 9
separator_not_allowed = 10
header_too_long = 11
unknown_dp_error = 12
access_denied = 13
dp_out_of_memory = 14
disk_full = 15
dp_timeout = 16
OTHERS = 17
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
LOOP AT it_matmaster.
PERFORM explode_assembly.
PERFORM f01_set_layo CHANGING gs_layout.
PERFORM eventtab_build USING ievent.
perform fldcat.
PERFORM display_grid.
ENDLOOP.
PERFORM display_grid.
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY'
EXPORTING
i_interface_check = 'x_print_layout'
IS_PRINT =
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
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.
*& Form EXPLODE_ASSEMBLY
text
FORM explode_assembly.
CALL FUNCTION 'CS_BOM_EXPL_MAT_V2'
EXPORTING
capid = 'BEST'
cuols = c_x
datuv = sy-datum
emeng = it_matmaster-emeng
knfba = c_x
ksbvo = c_x
mehrs = c_x
mbwls = c_x
mdmps = c_x
mktls = c_x
stlal = it_matmaster-stlal
stlan = p_bomap
mtnrv = it_matmaster-matnr
werks = it_matmaster-werks
svwvo = 'X'
vrsvo = 'X'
IMPORTING
topmat = w_topmat
TABLES
stb = it_stb
EXCEPTIONS
alt_not_found = 1
call_invalid = 2
material_not_found = 3
missing_authorization = 4
no_bom_found = 5
no_plant_data = 6
no_suitable_bom_found = 7
conversion_error = 8
OTHERS = 9.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4
INTO w_msg.
WRITE: / w_msg.
EXIT.
ENDIF.
ENDFORM. "explode_assembly
*& Form display_grid
text
--> p1 text
<-- p2 text
form display_grid .
*CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = 'ZCS13'
i_callback_top_of_page = 'TOP_OF_PAGE_GRID'
is_layout = gs_layout
it_fieldcat = fieldcat
IT_SORT = GT_SORT[]
i_save = 'A'
it_events = gt_events[]
TABLES
t_outtab = it_stb
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_BLOCK_LIST_INIT'
EXPORTING
i_callback_program = 'ZALVTOTAL'
I_CALLBACK_PF_STATUS_SET = PFSTATUS
i_callback_user_command = 'USER_COMMAND'(001)
IT_EXCLUDING =
*CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
EXPORTING
is_layout = gs_layout
it_fieldcat = i_fieldcat
i_tabname = 'IT_TAB[]'
it_events = gt_events
it_sort = gt_sort
I_TEXT = ' '
TABLES
t_outtab = it_tab[]
EXCEPTIONS
program_error = 1
maximum_of_appends_reached = 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 'REUSE_ALV_BLOCK_LIST_APPEND'
EXPORTING
is_layout = gs_layout
it_fieldcat = fieldcat
i_tabname = 'IT_STB[]'
it_events = gt_events
it_sort = gt_sort
I_TEXT = ' '
TABLES
t_outtab = it_stb[]
EXCEPTIONS
program_error = 1
maximum_of_appends_reached = 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.
clear it_stb[].
endform. " display_grid
*& Form fldcat
text
--> p1 text
<-- p2 text
form fldcat .
*DATA: wa_fieldcat TYPE slis_fieldcat_alv,
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
i_program_name = 'ZCS13'
I_INTERNAL_TABNAME = 'IT_STB'
i_structure_name = 'ZSTPOX'
I_CLIENT_NEVER_DISPLAY = 'X'
i_inclname = 'ZCS13'
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE =
CHANGING
ct_fieldcat = fieldcat[]
EXCEPTIONS
INCONSISTENT_INTERFACE = 1
PROGRAM_ERROR = 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.
Pls Suggest
Thanks. -
Problem while using Alv Block List
HI All,
PLZ help me .
By using this code I select data from TXT file and insert data in CS13 transaction then I want to show each material which present in TXT file as ALV BLOCK DISPLAY.
Suppose txt file contain 4 material so report will show 4 list block .means data of every material showing in different blocks in the report.
Code which I am using showing showing data only for last material which present in the table it_matmaster in every block.
Please guide me what is the problem.
I am pasting changed code for you.
i am using below codes..........
*& Report ZCS13 *
REPORT zcs13 .
TABLES:
mara,
stpo,
t001w,
stko.
TYPE-POOLS: slis.
DATA: BEGIN OF it_stb OCCURS 0.
INCLUDE STRUCTURE zstpox.
DATA:END OF it_stb.
DATA: BEGIN OF it_matmaster OCCURS 0,
matnr TYPE matnr,
werks TYPE werks,
stlal type stlal,
capid type capid,
emeng TYPE emeng,
END OF it_matmaster.
DATA : ievent TYPE slis_t_event.
DATA: it_stb2 LIKE stpox OCCURS 0 WITH HEADER LINE,
it_stb3 LIKE stpox OCCURS 0 WITH HEADER LINE,
temp_cat TYPE slis_fieldcat_alv,
sline TYPE slis_listheader,
gt_list_top_of_page TYPE slis_t_listheader,
gs_layout TYPE slis_layout_alv ,
gt_events TYPE slis_t_event,
gt_sort TYPE slis_t_sortinfo_alv,
w_msg(255) TYPE c,
int TYPE i VALUE 0.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-002.
PARAMETERS:p_file LIKE rlgrap-filename OBLIGATORY.
SELECTION-SCREEN END OF BLOCK b1 .
CONSTANTS c_x VALUE 'X'.
DATA: w_topmat LIKE cstmat,
fieldcat TYPE slis_t_fieldcat_alv ,
wa_fieldcat TYPE slis_fieldcat_alv.
DATA:v_file TYPE string.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
CALL FUNCTION 'F4_FILENAME'
EXPORTING
program_name = syst-cprog
dynpro_number = syst-dynnr
field_name = 'P_FILE'
IMPORTING
file_name = p_file.
START-OF-SELECTION.
v_file = p_file.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = v_file
filetype = 'ASC'
has_field_separator = 'X'
HEADER_LENGTH = 0
READ_BY_LINE = 'X'
DAT_MODE = ' '
IMPORTING
FILELENGTH =
HEADER =
TABLES
data_tab = it_matmaster
EXCEPTIONS
file_open_error = 1
file_read_error = 2
no_batch = 3
gui_refuse_filetransfer = 4
invalid_type = 5
no_authority = 6
unknown_error = 7
bad_data_format = 8
header_not_allowed = 9
separator_not_allowed = 10
header_too_long = 11
unknown_dp_error = 12
access_denied = 13
dp_out_of_memory = 14
disk_full = 15
dp_timeout = 16
OTHERS = 17
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_BLOCK_LIST_INIT'
EXPORTING
i_callback_program = 'ZCS13'
I_CALLBACK_PF_STATUS_SET = PFSTATUS
i_callback_user_command = ''
IT_EXCLUDING =
PERFORM fldcat.
LOOP AT it_matmaster.
PERFORM explode_assembly.
PERFORM fldcat.
PERFORM append_blocklist.
PERFORM alv_display_grid.
ENDLOOP.
PERFORM alv_display_grid.
*& Form EXPLODE_ASSEMBLY
text
FORM explode_assembly.
CALL FUNCTION 'CS_BOM_EXPL_MAT_V2'
EXPORTING
capid = 'BEST'
cuols = c_x
datuv = sy-datum
emeng = it_matmaster-emeng
knfba = c_x
ksbvo = c_x
mehrs = c_x
mbwls = c_x
mdmps = c_x
mktls = c_x
stlal = it_matmaster-stlal
stlan = p_bomap
mtnrv = it_matmaster-matnr
werks = it_matmaster-werks
svwvo = 'X'
vrsvo = 'X'
IMPORTING
topmat = w_topmat
TABLES
stb = it_stb
EXCEPTIONS
alt_not_found = 1
call_invalid = 2
material_not_found = 3
missing_authorization = 4
no_bom_found = 5
no_plant_data = 6
no_suitable_bom_found = 7
conversion_error = 8
OTHERS = 9.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4
INTO w_msg.
WRITE: / w_msg.
EXIT.
ENDIF.
ENDFORM. "explode_assembly
*& Form fldcat
text
--> p1 text
<-- p2 text
FORM fldcat .
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
i_program_name = 'ZCS13'
i_internal_tabname = 'IT_STB'
i_structure_name = 'ZSTPOX'
I_CLIENT_NEVER_DISPLAY = 'X'
i_inclname = 'ZCS13'
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE =
CHANGING
ct_fieldcat = fieldcat[]
EXCEPTIONS
INCONSISTENT_INTERFACE = 1
PROGRAM_ERROR = 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.
ENDFORM. " fldcat
*& Form alv_display_grid
text
--> p1 text
<-- p2 text
FORM alv_display_grid .
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY'
EXPORTING
i_interface_check = 'x_print_layout'
IS_PRINT =
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
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. " alv_display_grid
*& Form append_blocklist
text
--> p1 text
<-- p2 text
FORM append_blocklist .
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
EXPORTING
is_layout = gs_layout
it_fieldcat = fieldcat
i_tabname = 'IT_STB[]'
it_events = gt_events
it_sort = gt_sort
I_TEXT = ' '
TABLES
t_outtab = it_stb[]
EXCEPTIONS
program_error = 1
maximum_of_appends_reached = 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.
ENDFORM. " append_blocklistHi ,
Use the upload function 'WS_UPLOAD' . Declare ITAB of type table of your choice.
CALL FUNCTION 'WS_UPLOAD'
EXPORTING
FILENAME = FILENAME( Has to specified by you )
FILETYPE = 'ASC'
TABLES
DATA_TAB = ITAB
EXCEPTIONS
CONVERSION_ERROR = 1
FILE_OPEN_ERROR = 2
FILE_READ_ERROR = 3
INVALID_TYPE = 4
NO_BATCH = 5
UNKNOWN_ERROR = 6
INVALID_TABLE_WIDTH = 7
GUI_REFUSE_FILETRANSFER = 8
CUSTOMER_ERROR = 9
OTHERS = 10.
LOOP AT ITAB.
Use Split function to seperate the fields of the Internal table and append to a new Internal table of your choice.
ENDLOOP. -
Alv interactive report for secondary list
Hi All,
This is my code for ALV interactive report. Its working Properly for me when i select material number iam able to display the secondary list properly . if i sorted the basic list other than material number for ex . created date . iam uable to display correct secondary list . Can any one help me in this issue?
REPORT ZWRLOMDMM_PMG_PHWEB_PLD NO STANDARD PAGE HEADING
LINE-SIZE 120
LINE-COUNT 65
MESSAGE-ID 00.
TABLES *
TABLES: MARA , "General Material Data
ZWPBPH. " Published Product Hierarchy
TYPE-POOLS *
TYPE-POOLS:SLIS .
DATA:FIELDCATALOG_BASIC TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,
FIELDCATALOG_SECONDARY TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,
GD_TAB_GROUP TYPE SLIS_T_SP_GROUP_ALV,
GD_LAYOUT TYPE SLIS_LAYOUT_ALV,
GD_REPID LIKE SY-REPID.
INTERNAL TABLES *
*Internal Tables to Get Data.
*Internal Table For MARA Table.
DATA:BEGIN OF T_MARA OCCURS 0 ,
MATNR LIKE MARA-MATNR,
MTART LIKE MARA-MTART,
ERSDA LIKE MARA-ERSDA,
ERNAM LIKE MARA-ERNAM,
AENAM LIKE MARA-AENAM,
SPART LIKE MARA-SPART,
END OF T_MARA.
*Internal Table For ZWPBPH Table.
DATA:BEGIN OF T_ZWPBPH OCCURS 0 ,
PBPINO LIKE ZWPBPH-PBPINO,
PBPAPINO LIKE ZWPBPH-PBPAPINO,
END OF T_ZWPBPH.
*Internal Table For Basic List Field Catalog.
DATA:BEGIN OF T_ALV OCCURS 0 ,
MATNR LIKE MARA-MATNR,
MTART LIKE MARA-MTART,
ERSDA LIKE MARA-ERSDA,
ERNAM LIKE MARA-ERNAM,
SPART LIKE MARA-SPART,
SPART1(3),
END OF T_ALV.
*Internal Table For Secondary List Field Catalog.
DATA: BEGIN OF T_ALVS OCCURS 0 ,
MATNR LIKE MARA-MATNR,
AENAM LIKE MARA-AENAM,
LAEDA LIKE MARA-LAEDA,
END OF T_ALVS.
*Internal Table For Model
DATA:T_MODEL LIKE T_ZWPBPH OCCURS 0 WITH HEADER LINE.
*Internal Table For Product
DATA:T_PRODUCT LIKE T_ZWPBPH OCCURS 0 WITH HEADER LINE.
*Internal Table For Family
DATA:T_FAMILY LIKE T_ZWPBPH OCCURS 0 WITH HEADER LINE.
*Internal Table For Line
DATA:T_LINE LIKE T_ZWPBPH OCCURS 0 WITH HEADER LINE.
*Internal Table For Type
DATA:T_TYPE LIKE T_ZWPBPH OCCURS 0 WITH HEADER LINE.
SELECTION SCREEN *
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
PARAMETERS: P_MATN RADIOBUTTON GROUP R1 USER-COMMAND run default 'X'.
SELECT-OPTIONS: P_MATNR FOR MARA-MATNR MODIF ID SC1 .
PARAMETERS: P_DAT RADIOBUTTON GROUP R1 .
SELECT-OPTIONS: : P_DATE FOR MARA-LAEDA MODIF ID SC2.
PARAMETERS: P_DIV RADIOBUTTON GROUP R1 .
SELECT-OPTIONS: : P_DIVIS for mara-spart MODIF ID SC3.
SELECTION-SCREEN END OF BLOCK b1.
INITIALIZATION *
INITIALIZATION.
REFRESH: T_MARA,
T_ZWPBPH,
T_ALV,
T_ALVS,
T_MODEL,
T_PRODUCT,
T_FAMILY,
T_LINE,
T_TYPE.
CLEAR: T_MARA,
T_ZWPBPH,
T_ALV,
T_ALVS,
T_MODEL,
T_PRODUCT,
T_FAMILY,
T_LINE,
T_TYPE.
GD_REPID = SY-REPID.
*AT SELECTION-SCREEN OUTPUT.
AT SELECTION-SCREEN OUTPUT.
LOOP AT SCREEN.
IF P_MATN = 'X'.
FREE : P_DIVIS,P_DATE.
IF SCREEN-GROUP1 = 'SC2' or SCREEN-GROUP1 = 'SC3'.
SCREEN-INPUT = 0.
MODIFY SCREEN.
CONTINUE.
ENDIF .
ENDIF.
IF P_DAT = 'X'.
FREE : P_MATNR,P_DIVIS.
IF SCREEN-GROUP1 = 'SC1' or SCREEN-GROUP1 = 'SC3'.
SCREEN-INPUT = 0.
MODIFY SCREEN.
CONTINUE.
ENDIF .
ENDIF.
IF P_DIV = 'X'.
FREE : P_DATE,P_MATNR.
IF SCREEN-GROUP1 = 'SC1' or SCREEN-GROUP1 = 'SC2'.
SCREEN-INPUT = 0.
MODIFY SCREEN.
CONTINUE.
ENDIF .
ENDIF.
ENDLOOP.
START-OF-SELECTION *
START-OF-SELECTION.
PERFORM GET_FIELDCATALOG_BASIC.
PERFORM GET_FIELDCATALOG_SECONDARY.
PERFORM POPULATE_DATA.
END-OF-SELECTION *
END-OF-SELECTION.
*& FORM GET_FIELDCATALOG_BASIC.
Get Fieldcatalog For Basic List
FORM GET_FIELDCATALOG_BASIC.
FIELDCATALOG_BASIC-FIELDNAME = 'MATNR'.
FIELDCATALOG_BASIC-SELTEXT_M = 'Material Number'.
FIELDCATALOG_BASIC-COL_POS = 0.
FIELDCATALOG_BASIC-OUTPUTLEN = 20.
FIELDCATALOG_BASIC-HOTSPOT = 'X'.
FIELDCATALOG_BASIC-EMPHASIZE = 'X'.
FIELDCATALOG_BASIC-KEY = 'X'.
APPEND FIELDCATALOG_BASIC TO FIELDCATALOG_BASIC.
CLEAR FIELDCATALOG_BASIC.
FIELDCATALOG_BASIC-FIELDNAME = 'MTART'.
FIELDCATALOG_BASIC-SELTEXT_M = 'Material Type'.
FIELDCATALOG_BASIC-COL_POS = 0.
FIELDCATALOG_BASIC-OUTPUTLEN = 20.
FIELDCATALOG_BASIC-EMPHASIZE = 'X'.
FIELDCATALOG_BASIC-KEY = 'X'.
APPEND FIELDCATALOG_BASIC TO FIELDCATALOG_BASIC.
CLEAR FIELDCATALOG_BASIC.
FIELDCATALOG_BASIC-FIELDNAME = 'ERSDA'.
FIELDCATALOG_BASIC-SELTEXT_M = 'Created Date'.
FIELDCATALOG_BASIC-COL_POS = 0.
FIELDCATALOG_BASIC-OUTPUTLEN = 12.
FIELDCATALOG_BASIC-EMPHASIZE = 'X'.
FIELDCATALOG_BASIC-KEY = 'X'.
APPEND FIELDCATALOG_BASIC TO FIELDCATALOG_BASIC.
CLEAR FIELDCATALOG_BASIC.
FIELDCATALOG_BASIC-FIELDNAME = 'ERNAM'.
FIELDCATALOG_BASIC-SELTEXT_M = 'Created By'.
FIELDCATALOG_BASIC-COL_POS = 0.
FIELDCATALOG_BASIC-OUTPUTLEN = 15.
FIELDCATALOG_BASIC-EMPHASIZE = 'X'.
FIELDCATALOG_BASIC-KEY = 'X'.
APPEND FIELDCATALOG_BASIC TO FIELDCATALOG_BASIC.
CLEAR FIELDCATALOG_BASIC.
FIELDCATALOG_BASIC-FIELDNAME = 'SPART'.
FIELDCATALOG_BASIC-SELTEXT_M = 'Division PMG'.
FIELDCATALOG_BASIC-COL_POS = 0.
FIELDCATALOG_BASIC-OUTPUTLEN = 14.
FIELDCATALOG_BASIC-EMPHASIZE = 'X'.
FIELDCATALOG_BASIC-KEY = 'X'.
APPEND FIELDCATALOG_BASIC TO FIELDCATALOG_BASIC.
CLEAR FIELDCATALOG_BASIC.
FIELDCATALOG_BASIC-FIELDNAME = 'SPART1'.
FIELDCATALOG_BASIC-SELTEXT_M = 'Division PhWEB'.
FIELDCATALOG_BASIC-COL_POS = 0.
FIELDCATALOG_BASIC-OUTPUTLEN = 14.
FIELDCATALOG_BASIC-EMPHASIZE = 'X'.
FIELDCATALOG_BASIC-KEY = 'X'.
APPEND FIELDCATALOG_BASIC TO FIELDCATALOG_BASIC.
CLEAR FIELDCATALOG_BASIC.
ENDFORM. "GET_FIELDCATALOG_BASIC
*& FORM GET_FIELDCATALOG_SECONDARY
Get Fieldcatalog For Secondary List
FORM GET_FIELDCATALOG_SECONDARY.
FIELDCATALOG_SECONDARY-FIELDNAME = 'MATNR'.
FIELDCATALOG_SECONDARY-SELTEXT_M = 'Material Number'.
FIELDCATALOG_SECONDARY-COL_POS = 0.
FIELDCATALOG_SECONDARY-OUTPUTLEN = 20.
FIELDCATALOG_SECONDARY-EMPHASIZE = 'X'.
FIELDCATALOG_SECONDARY-KEY = 'X'.
APPEND FIELDCATALOG_SECONDARY TO FIELDCATALOG_SECONDARY.
CLEAR FIELDCATALOG_SECONDARY.
FIELDCATALOG_SECONDARY-FIELDNAME = 'AENAM'.
FIELDCATALOG_SECONDARY-SELTEXT_M = 'Changed By'.
FIELDCATALOG_SECONDARY-COL_POS = 0.
FIELDCATALOG_SECONDARY-OUTPUTLEN = 20.
FIELDCATALOG_SECONDARY-EMPHASIZE = 'X'.
FIELDCATALOG_SECONDARY-KEY = 'X'.
APPEND FIELDCATALOG_SECONDARY TO FIELDCATALOG_SECONDARY.
CLEAR FIELDCATALOG_SECONDARY.
FIELDCATALOG_SECONDARY-FIELDNAME = 'LAEDA'.
FIELDCATALOG_SECONDARY-SELTEXT_M = 'Changed ON'.
FIELDCATALOG_SECONDARY-COL_POS = 0.
FIELDCATALOG_SECONDARY-OUTPUTLEN = 20.
FIELDCATALOG_SECONDARY-EMPHASIZE = 'X'.
FIELDCATALOG_SECONDARY-KEY = 'X'.
APPEND FIELDCATALOG_SECONDARY TO FIELDCATALOG_SECONDARY.
CLEAR FIELDCATALOG_SECONDARY.
ENDFORM. "GET_FIELDCATALOG_SECONDARY
*& FORM POPULATE_DATA
FORM POPULATE_DATA.
*Get Data From MARA And ZWPBPH Tables
IF P_MATN = 'X'.
SELECT MATNR MTART ERSDA ERNAM AENAM SPART FROM MARA INTO TABLE T_MARA
where MATNR IN P_MATNR .
IF SY-SUBRC <> 0.
MESSAGE E001(0) WITH 'Invalid Material Number'.
ENDIF.
ELSEIF P_DAT = 'X'.
SELECT MATNR MTART ERSDA ERNAM AENAM SPART FROM MARA INTO TABLE T_MARA
where LAEDA IN P_DATE .
IF SY-SUBRC <> 0.
MESSAGE E001(0) WITH 'Invalid Date Range'.
ENDIF.
ELSEIF P_DIV = 'X'.
SELECT MATNR MTART ERSDA ERNAM AENAM SPART FROM MARA INTO TABLE T_MARA
where SPART IN P_DIVIS .
IF SY-SUBRC <> 0.
MESSAGE E001(0) WITH 'Invalid Division'.
ENDIF.
ELSEIF P_MATN = ' ' AND P_DAT = ' ' AND P_DIV = ' '.
SELECT MATNR MTART ERSDA ERNAM AENAM SPART FROM MARA INTO TABLE T_MARA.
ENDIF.
DELETE ADJACENT DUPLICATES FROM T_MARA COMPARING MATNR.
SORT T_MARA BY MATNR.
IF T_MARA[] IS NOT INITIAL .
SELECT PBPINO PBPAPINO FROM ZWPBPH INTO TABLE T_ZWPBPH FOR ALL ENTRIES
IN T_MARA WHERE PBPINO = T_MARA-MATNR.
ENDIF.
IF SY-SUBRC = 0.
LOOP AT T_ZWPBPH.
SELECT SINGLE PBPINO PBPAPINO FROM ZWPBPH INTO T_MODEL WHERE
PBPINO = T_ZWPBPH-PBPAPINO.
IF SY-SUBRC = 0.
SELECT SINGLE PBPINO PBPAPINO FROM ZWPBPH INTO T_PRODUCT WHERE
PBPINO
= T_MODEL-PBPAPINO.
ENDIF.
IF SY-SUBRC = 0.
SELECT SINGLE PBPINO PBPAPINO FROM ZWPBPH INTO T_FAMILY WHERE
PBPINO = T_PRODUCT-PBPAPINO.
ENDIF.
IF SY-SUBRC = 0.
SELECT SINGLE PBPINO PBPAPINO FROM ZWPBPH INTO T_LINE WHERE
PBPINO = T_FAMILY-PBPAPINO.
ENDIF.
IF SY-SUBRC = 0.
SELECT SINGLE PBPINO PBPAPINO FROM ZWPBPH INTO T_TYPE WHERE PBPINO
= T_LINE-PBPAPINO.
ENDIF.
IF SY-SUBRC = 0.
SELECT SINGLE MTART ERSDA ERNAM SPART FROM MARA INTO CORRESPONDING
FIELDS OF T_ALV WHERE MATNR = T_ZWPBPH-PBPINO AND SPART <>
T_TYPE-PBPAPINO+1(2).
ENDIF.
IF SY-SUBRC = 0.
MOVE T_ZWPBPH-PBPINO TO T_ALV-MATNR.
MOVE T_TYPE-PBPAPINO+1(2) TO T_ALV-SPART1.
APPEND T_ALV.
SELECT SINGLE MATNR AENAM LAEDA FROM MARA INTO CORRESPONDING
FIELDS OF T_ALVS WHERE MATNR = T_ZWPBPH-PBPINO.
APPEND T_ALVS.
CLEAR T_ALVS.
ENDIF.
ENDLOOP.
ENDIF.
SORT T_ALV BY MATNR.
SORT T_ALVS BY MATNR.
call function 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = GD_REPID
i_callback_user_command = 'DISPLAY_DETAIL'
it_fieldcat = FIELDCATALOG_BASIC[]
i_save = 'X'
TABLES
t_outtab = T_ALV
EXCEPTIONS
program_error = 1
others = 2.
ENDFORM. "POPULATE_DATA
*& Form DISPLAY_DETAIL
text
-->UCOMM text
-->SELFIELD text
FORM DISPLAY_DETAIL USING UCOMM LIKE SY-UCOMM
SELFIELD TYPE SLIS_SELFIELD.
Select Material Number For Secondary List
DATA: T_ALV_TEMP LIKE T_ALVS OCCURS 0 WITH HEADER LINE.
IF UCOMM = '&IC1'.
READ TABLE T_ALVS INDEX SELFIELD-TABINDEX.
IF SY-SUBRC = 0.
MOVE T_ALVS TO T_ALV_TEMP.
APPEND T_ALV_TEMP.
ENDIF.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
i_callback_program = GD_REPID
it_fieldcat = FIELDCATALOG_SECONDARY[]
TABLES
t_outtab = T_ALV_TEMP.
ENDIF.
ENDFORM. "DISPLAY_DETAILHi,
Try this in the routine display details
READ TABLE T_ALV INDEX SELFIELD-TABINDEX.
READ TABLE T_ALVS with key matnr = T_ALV-MATNR
thanks -
Displaying traffic lights in alv grid report?
Hi everyone,
I have an alv grid report.I m using the FM reuse_alv_grod_display to display my alv report.I am passing the fieldcatalogue automatically.I m getting the output perfectly.Now i have to add traffic lights to that alv report.
Since i m passing the fieldcatalogue automatically i m confused to display the traffic lights?
any suggestions please?
Thank you.hi dp,
look at the program i made... se the bold part you will be able to impelment lights easily,
DECLARING TYPES POOL *
All the definitions of internal tables, structures and constants
are declared in a type-pool called SLIS.
type-pools: slis.
TABLES *
tables: vbak,vbap,kna1.
TYPES *
*&--defining types for TABLE VBAK
types: begin of t_vbak,
vbeln type vbeln_va, "sales document
kunnr type kunag,
erdat type erdat,
auart type auart,
netwr type netwr_ak,
waerk type waerk,
vkorg type vkorg,
vtweg type vtweg,
spart type spart,
name1 type name1_gp,
stras type stras_gp,
ort01 type ort01_gp,
pstlz type pstlz,
regio type regio,
land1 type land1_gp,
telf1 type telf1,
end of t_vbak.
*&--Defining types for TABLE VBAP
types: begin of t_vbap,
vbeln type vbeln_va,
posnr type posnr_va,
matnr type matnr,
maktx type maktx,
end of t_vbap.
*&--MERGED FINAL SALES TABLE
types: begin of t_sales_final,
vbeln type vbeln_va,
kunnr type kunag,
posnr type posnr_va,
erdat type erdat, "date of creation
auart type auart,
netwr type netwr_ak,
waerk type waerk,
vkorg type vkorg,
vtweg type vtweg,
spart type spart,
name1 type name1_gp,
v_lights type c,
stras type stras_gp,
ort01 type ort01_gp,
pstlz type pstlz,
regio type regio,
land1 type land1_gp,
telf1 type telf1,
matnr type matnr,
maktx type maktx,
end of t_sales_final.
defining wrokarea and IT.
WORK AREA DECLARATION *
*&---work area for Internal Tables
data: wa_vbak type t_vbak.
data: wa_vbap type t_vbap.
data: wa_sales_final type t_sales_final.
*&--work area for layout
data: wa_layout type slis_layout_alv.
INTERNAL TABLES DECLARATION *
*&---Internal tables without Header Line.
data : i_vbak type standard table of t_vbak,
i_vbap type standard table of t_vbap,
i_sales_final type standard table of t_sales_final.
*&---Internal table for field catalog
data : i_fieldcat type slis_t_fieldcat_alv,
*&---Internal table for the sorting sequence.
i_sortinfo type slis_t_sortinfo_alv,
*&---Internal table for the event catalog.
i_eventcat type slis_t_event,
*&---Internal table for the top of page event
i_listheader type slis_t_listheader.
VARIABLE DECLARATION *
data : v_progname like sy-repid, "Program name(system defined)
v_gridtitle type lvc_title. "Grid Title
INITIALIZATION EVENT *
initialization.
v_progname = sy-repid.
refresh:i_vbak,
i_vbap,
i_sales_final,
i_fieldcat,
i_sortinfo,
i_eventcat,
i_listheader.
clear: wa_vbak,
wa_vbap,
wa_sales_final,
wa_layout.
SELECTION SCREEN *
SCREEN FOR ENTERING INFORMATION
selection-screen begin of block b1 with frame title text-001.
select-options: r_vbeln for wa_vbak-vbeln obligatory.
select-options: r_erdat for wa_vbak-erdat obligatory.
selection-screen end of block b1 .
AT SELECTION SCREEN *
at selection-screen.
perform zf_validate_sales_doc_no.
perform zf_validate_date.
START OF SELECTION EVENT
start-of-selection.
perform zf_populate_header.
perform zf_populate_detail.
perform zf_append_sales_final.
END OF SELECTION EVENT
end-of-selection.
*If Internal Table Is Populated Then Only Display Alv Report.
if i_sales_final is not initial.
Prepare fieldcatalog .
perform zf_build_fieldcat using i_fieldcat.
MODIFY the records IN the internal TABLE for the traffic lights.
perform zf_modify_final.
build event catalogue
perform zf_eventcat using i_eventcat.
build sorting
perform zf_sorting using i_sortinfo.
&---Build Listheader for TOP OF PAGE EVENT.
perform zf_build_listheader using i_listheader.
&---Build layout.
perform zf_layout.
&---Initializating Grid Title
perform zf_build_grid_title.
&---Display alv grid.
perform zf_display_alv_grid.
else.
*If Table is not Populated ie Records Does not exist
message 'Record Does Not Exist' type 'S'.
endif.
*& Form zf_validate_sales_doc_no
text
--> p1 text
<-- p2 text
form zf_validate_sales_doc_no .
select single vbeln into wa_vbak-vbeln from vbak where vbeln in r_vbeln .
if sy-subrc <> 0.
message i101.
endif.
endform. " zf_validate_sales_doc_no
*& Form zf_validate_date
text
--> p1 text
<-- p2 text
form zf_validate_date .
if date is future
if r_erdat-low >= sy-datum.
message e102.
elseif r_erdat-high >= sy-datum.
message e103.
endif.
endform. " zf_validate_date
*& Form zf_populate_header
text
--> p1 text
<-- p2 text
form zf_populate_header .
select vbeln
kunnr
erdat
auart
netwr
waerk
vkorg
vtweg
spart
into table i_vbak from vbak where vbeln in r_vbeln.
if sy-subrc <> 0.
message 'RECORD DOES NOT EXIST' type 'E'.
endif.
sort i_vbak by vbeln.
*&--LOGIC TO GET FIELDS FROM TABLE KNA1 INTO INTERNAL TABLE I_VBAK
loop at i_vbak into wa_vbak.
select single name1 stras ort01 pstlz regio land1 telf1 into (wa_vbak-name1,
wa_vbak-stras,
wa_vbak-ort01,
wa_vbak-pstlz,
wa_vbak-regio,
wa_vbak-land1,
wa_vbak-telf1)
from kna1
where kunnr = wa_vbak-kunnr.
modifying it_header.
modify i_vbak from wa_vbak.
clear wa_vbak.
endloop.
endform. " zf_populate_header
*& Form zf_populate_detail
text
--> p1 text
<-- p2 text
form zf_populate_detail .
if i_vbak[] is not initial.
select vbeln
posnr
matnr
into table i_vbap from vbap
for all entries in i_vbak where vbeln = i_vbak-vbeln.
endif.
sort i_vbap by vbeln.
sort i_vbap by posnr.
*&--LOGIC TO GET FIELDS FROM TABLE MAKT INTO INTERNAL TABLE I_VBAP
loop at i_vbap into wa_vbap.
select single maktx into (wa_vbap-maktx)
from makt where matnr = wa_vbap-matnr and spras = sy-langu.
modifying it_header.
modify i_vbap from wa_vbap.
clear wa_vbap.
endloop.
endform. " zf_populate_detail
*& Form zf_append_sales_final
text
--> p1 text
<-- p2 text
form zf_append_sales_final .
sort i_vbak by vbeln.
sort i_vbap by vbeln posnr.
loop at i_vbak into wa_vbak.
move-corresponding wa_vbak to wa_sales_final.
read table i_vbap with key vbeln = wa_vbak-vbeln
binary search transporting no fields.
loop at i_vbap into wa_vbap from sy-tabix.
if wa_vbap-vbeln <> wa_vbak-vbeln.
exit.
endif.
move-corresponding wa_vbap to wa_sales_final.
append wa_sales_final to i_sales_final.
endloop.
endloop.
endform. " zf_append_sales_final
*& Form zf_build_fieldcat
text
-->P_I_FIELDCAT text
form zf_build_fieldcat using p_i_fieldcat type slis_t_fieldcat_alv.
data: l_fieldcat type slis_fieldcat_alv. "local Workarea used
clear l_fieldcat.
FOR LIGHT IN COLUMN
clear l_fieldcat.
l_fieldcat-col_pos = '1'. " POSITION OF THE COLUMN.
l_fieldcat-fieldname = 'V_LIGHTS'.
" FIELD FOR WHICH CATALOG ID FILLED.
*We are passing final internal table 'I_FINAL' to l_fieldcat(local
*variable
l_fieldcat-tabname = 'I_SALES_FINAL'.
" INTERNAL TABLE TO WHICH THE FIELD BELONGS TO.
l_fieldcat-just = 'C'. " FOR JUSTIFICATION.
l_fieldcat-outputlen = 20.
" TO DEFINE OUTPUT LENGTH OF THE COLUMN.
append l_fieldcat to p_i_fieldcat.
FIRST COLUMN ********************************
l_fieldcat-col_pos = '2'. " POSITION OF THE COLUMN
l_fieldcat-fieldname = 'VBELN'. " FIELD FOR WHICH CATALOG ID FILLED
l_fieldcat-tabname = 'I_SALES_FINAL'. " INTERNAL TABLE BELONGS TO
l_fieldcat-key = 'X'. " SO THAT this field is not scrollable hiddable.
l_fieldcat-just = 'L'. " FOR JUSTIFICATION
*l_fieldcat-hotspot = 'X'. " MARK THIS field as hotsopt
l_fieldcat-lzero = 'X'. " OUTPUT WITH leading zeros.
l_fieldcat-seltext_l = 'Sales Document'. " long text for header.
l_fieldcat-seltext_m = 'Sales Doc'. " medium text for header.
l_fieldcat-seltext_s = 'Sales Doc'. " sort text for header.
l_fieldcat-outputlen = 20. " SET THE output length.
l_fieldcat-ref_tabname = 'VBAK'. " FOR F1 & F4 help as
append l_fieldcat to p_i_fieldcat.
clear l_fieldcat.
**************************SECOND COLUMN ********************************
*l_fieldcat-col_pos = '3'. " POSITION OF THE COLUMN
l_fieldcat-row_pos = '2'. " POSITION OF THE COLUMN
l_fieldcat-fieldname = 'POSNR'. " FIELD FOR WHICH CATALOG ID FILLED
l_fieldcat-tabname = 'I_SALES_FINAL'. " INTERNAL TABLE BELONGS TO
l_fieldcat-key = 'X'. " SO THAT this field is not scrollable hiddable.
l_fieldcat-just = 'L'. " FOR JUSTIFICATION
l_fieldcat-hotspot = 'X'. " MARK THIS field as hotsopt
l_fieldcat-lzero = 'x'. " OUTPUT WITH leading zeros.
l_fieldcat-seltext_l = 'Sales Document Item'. " long text for header.
l_fieldcat-seltext_m = 'Sales Document Item'. " medium text for header.
l_fieldcat-seltext_s = 'Sales Document Item'. " sort text for header.
l_fieldcat-outputlen = 20. " SET THE output length.
l_fieldcat-ref_tabname = 'VBAP'. " FOR F1 & F4 help as
append l_fieldcat to p_i_fieldcat.
clear l_fieldcat.
endform. " zf_build_fieldcat
*& Form zf_eventcat
text
-->P_I_EVENTCAT text
form zf_eventcat using p_i_eventcat type slis_t_event.
data: l_eventcat type slis_alv_event.
clear l_eventcat.
call function 'REUSE_ALV_EVENTS_GET'
exporting
i_list_type = 0
importing
et_events = p_i_eventcat
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.
TOP OF PAGE FORM
clear l_eventcat.
read table p_i_eventcat into l_eventcat with key
name = slis_ev_top_of_page.
"(COMPONENT "NAME"of structure)
if sy-subrc = 0. "if success
move 'ZF_TOP_OF_PAGE' to l_eventcat-form.
"matches name and moves form to workarea and modifies table
modify p_i_eventcat from l_eventcat index sy-tabix
transporting form.
endif.
PF_STATUS_SET FORM
clear l_eventcat.
read table p_i_eventcat into l_eventcat with key
name = slis_ev_pf_status_set.
if sy-subrc = 0.
move 'ZF_PF_STATUS_SET' to l_eventcat-form.
modify p_i_eventcat from l_eventcat index sy-tabix
transporting form.
endif.
USER_COMMAND FORM
clear l_eventcat.
read table p_i_eventcat into l_eventcat with key
name = slis_ev_user_command.
if sy-subrc = 0.
move 'ZF_USER_COMMAND' to l_eventcat-form.
modify p_i_eventcat from l_eventcat index sy-tabix
transporting form.
endif.
endform. " zf_eventcat
*& Form zf_sorting
text
-->P_I_SORTINFO text
form zf_sorting using p_i_sortinfo.
endform. " zf_sorting
*& Form zf_build_listheader
text
-->P_I_LISTHEADER text
form zf_build_listheader using p_i_listheader type slis_t_listheader.
data: l_listheader type slis_listheader.
refresh p_i_listheader.
clear l_listheader.
HEADER
l_listheader-typ = 'H'.
l_listheader-info = 'FUJITSU CONSULTING INDIA LTD.'.
append l_listheader to p_i_listheader.
SELECTION
l_listheader-typ = 'S'.
l_listheader-key = 'Date:'.
l_listheader-info = sy-datum.
append l_listheader to p_i_listheader.
ACTION
l_listheader-typ = 'A'.
*l_listheader-key =
l_listheader-info = 'SALES ORDER ALV REPORT By Rohan Malik'.
append l_listheader to p_i_listheader.
endform. " zf_build_listheader
*& Form zf_build_grid_title
text
--> p1 text
<-- p2 text
form zf_build_grid_title .
v_gridtitle = 'List of Purchase Order'.
endform. " zf_build_grid_title
*& Form zf_display_alv_grid
text
--> p1 text
<-- p2 text
form zf_display_alv_grid .
call function 'REUSE_ALV_GRID_DISPLAY'
exporting
i_callback_program = v_progname
i_grid_title = v_gridtitle
is_layout = wa_layout
it_fieldcat = i_fieldcat
it_sort = i_sortinfo
it_events = i_eventcat
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
tables
t_outtab = i_sales_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. " zf_display_alv_grid
*& Form zf_top_of_page
text
--> p1 text
<-- p2 text
form zf_top_of_page .
call function 'REUSE_ALV_COMMENTARY_WRITE'
exporting
it_list_commentary = i_listheader
i_logo = 'ENJOYSAP_LOGO'
I_END_OF_LIST_GRID =
endform. " zf_top_of_page
*& Form zf_user_command
text
--> p1 text
<-- p2 text
form zf_user_command using r_ucomm like sy-ucomm
rs_selfield type slis_selfield .
case r_ucomm. "FCODE
when 'VA03'.
read table i_sales_final into wa_sales_final index rs_selfield-tabindex.
set parameter id 'AUN' field rs_selfield-value.
call transaction 'VA03' and skip first screen .
message i102 with rs_selfield-value .
when '&IC1'. "for hotspot with VBELN, POSNR, MATNR, KUNNR.
if rs_selfield-fieldname = 'MATNR'.
set parameter id 'MAT' field rs_selfield-value.
call transaction 'MM03' and skip first screen.
return.
message i103 with rs_selfield-value .
endif.
if rs_selfield-fieldname = 'VBELN'.
set parameter id 'AUN' field rs_selfield-value.
call transaction 'VA03' and skip first screen.
return.
message i104 with rs_selfield-value .
endif.
endcase.
endform. " zf_user_command
*& Form ZF_PF_STATUS_SET
text
--> p1 text
<-- p2 text
form zf_pf_status_set using rt_extab type slis_t_extab.
set pf-status 'Z11_RM_ALV_SO'.
endform. " ZF_PF_STATUS_SET
*& Form zf_layout
text
--> p1 text
<-- p2 text
form zf_layout .
wa_layout-zebra = 'X'.
wa_layout-lights_fieldname = 'V_LIGHTS'.
wa_layout-lights_tabname = 'I_SALES_FINAL'.
" 1, 2 or 3 for red, yellow and green respectively.
endform. " zf_layout
*& Form zf_modify_final
text
--> p1 text
<-- p2 text
form zf_modify_final .
CODE TO EXECUTE LIGHTS
*start of loop
loop at i_sales_final into wa_sales_final.
*giving conditions and modifying as we want to change many rows
if wa_sales_final-netwr <= 10000.
wa_sales_final-v_lights = '1'.
modify i_sales_final from wa_sales_final transporting v_lights.
elseif wa_sales_final-netwr > 10000 and wa_sales_final-netwr <= 100000.
wa_sales_final-v_lights = '2'. " Exception.
modify i_sales_final from wa_sales_final transporting v_lights.
else.
wa_sales_final-v_lights = '3'. " Exception.
modify i_sales_final from wa_sales_final transporting v_lights.
endif.
endloop.
reward point s if helpful
rohan malik -
Hi All,
iam Using ALV BLOCK list to print the output along with check boxes, iam able to print the output along with the check boxes but when i select any of the check box and click button on application tool bar it is going to dump and saying,
FIELD SYMBOL HAS NOT YET BEEN ASSIGNED.
i populated layout with following fields.
w_layout-box_fieldname = 'BOX'.
w_layout-box_tabname = 'T_FINAL2'.
Plz Help me out.
Thanks in Advance.
Neha*& Report BCALV_TEST_BLOCK_LIST
report bcalv_test_block_list.
types: g_ty_t_carrid type standard table of alv_tab,
g_ty_t_connid type standard table of alv_chck,
g_ty_t_curr type standard table of alv_cur,
g_ty_s_sflight type alv_t_t2,
g_ty_s_carrid type alv_tab,
g_ty_s_connid type alv_chck,
g_ty_s_curr type alv_cur.
constants: con_sflight type lvc_fname value 'ALV_T_T2',
con_scarr type lvc_fname value 'ALV_TAB',
con_spfli type lvc_fname value 'ALV_CHCK',
con_scurx type lvc_fname value 'ALV_CUR',
con_event_01 type lvc_fname value 'PF_STATUS_SET',
con_event_02 type lvc_fname value 'USER_COMMAND',
con_event_03 type lvc_fname value 'CALLER_EXIT',
con_event_04 type lvc_fname value 'LIST_MODIFY',
con_event_05 type lvc_fname value 'BEFORE_LINE_OUTPUT',
con_event_06 type lvc_fname value 'AFTER_LINE_OUTPUT',
con_event_07 type lvc_fname value 'SUBTOTAL_TEXT',
con_event_08 type lvc_fname value 'REPREP_MODIFY',
con_event_09 type lvc_fname value 'TOP_OF_PAGE',
con_event_10 type lvc_fname value 'END_OF_PAGE',
con_event_11 type lvc_fname value 'TOP_OF_LIST',
con_event_12 type lvc_fname value 'END_OF_LIST',
con_event_13 type lvc_fname value 'TOP_OF_COVERPAGE',
con_event_14 type lvc_fname value 'END_OF_COVERPAGE',
con_event_15 type lvc_fname value 'TOP_OF_FOREIGN_PAGE',
con_event_16 type lvc_fname value 'END_OF_FOREIGN_PAGE',
con_event_17 type lvc_fname value 'GROUPLEVEL_CHANGE'.
DATA *
tables: sscrfields. " for processing the FCODEs in Selektion screens
include <icon>.
include <symbol>.
type-pools: slis, kkblo.
types: g_ty_t_icon type standard table of icon,
g_ty_t_icont type standard table of icont,
begin of g_ty_s_plane,
carrid type g_ty_s_sflight-carrid,
connid type g_ty_s_sflight-connid,
planetype type g_ty_s_sflight-planetype,
seatsmax type g_ty_s_sflight-seatsmax,
end of g_ty_s_plane,
g_ty_t_plane type sorted table of g_ty_s_plane
with unique key carrid connid,
begin of g_ty_s_fcat_curr,
fieldname type lvc_fname,
cfieldname type lvc_fname,
currency type lvc_s_fcat-currency,
end of g_ty_s_fcat_curr,
g_ty_t_fcat_curr type sorted table of g_ty_s_fcat_curr
with unique key fieldname,
begin of g_ty_s_sort.
include type slis_sortinfo_alv.
types: end of g_ty_s_sort,
g_ty_t_sort type sorted table of g_ty_s_sort
with unique key spos fieldname,
begin of g_ty_s_test,
list_amount type num1,
select_amount type i,
only_db_info type char1,
db_short type char1,
excp_display type char1,
excp_condense type char1,
layo_title type lvc_s_layo-grid_title,
layo_zebra type char1,
layo_no_vert_lines type char1,
layo_no_horiz_lines type char1,
layo_cell_merge type char1,
layo_count type char1,
layo_box type char1,
layo_no_colhead type char1,
layo_column_optimize type char1,
layo_keys_hotspot type char1,
layo_no_keyfix type char1,
layo_no_hotspot type char1,
layo_hotspot_rows type i occurs 0,
layo_hotspot_columns type lvc_fname occurs 0,
layo_no_scrolling type char1,
layo_no_authcheck type char1,
layo_no_min_linesize type char1,
layo_min_linesize type sylinsz,
layo_max_linesize type sylinsz,
layo_group_change_edit type char1,
layo_get_selinfo type char1,
layo_confirmation_prompt type char1,
layo_f2code type syucomm,
layo_reprep type char1,
sum_before type char1,
sum_no_sumline type char1,
sum_no_sumchoice type char1,
sum_numc type char1,
sum_no_unitsplit type char1,
sum_totals_only type char1,
sum_totals_text type symsgli,
sum_no_subtotals type char1,
sum_no_subchoice type char1,
sum_subtotals_text type symsgli,
prnt_print type char1,
prnt_reserve_lines type lvc_s_prnt-reservelns,
prnt_no_listinfo type char1,
prnt_no_selinfo type char1,
prnt_with_title type char1,
prnt_footline type lvc_s_prnt-footline,
prnt_printinfo type char1,
prnt_no_coverpage type char1,
prnt_no_new_page type char1,
prnt_no_change_print_params type char1,
color_rows type i occurs 0,
color_fields_column type lvc_fname occurs 0,
color_fields_cell type lvc_fname occurs 0,
fcat_no_out_fields type lvc_fname occurs 0,
fcat_tech_fields type lvc_fname occurs 0,
fcat_fix_column_fields type lvc_fname occurs 0,
fcat_do_sum_fields type lvc_fname occurs 0,
fcat_no_sum_fields type lvc_fname occurs 0,
fcat_curr_fields type g_ty_t_fcat_curr,
curr_amount type i,
curr_space type char1,
t_sort type g_ty_t_sort,
no_info_popup type char1,
info_popup_once type char1,
events_info_popup type lvc_fname occurs 0,
events type lvc_fname occurs 0,
buffer_active type char1,
bypassing_buffer type char1,
end of g_ty_s_test,
begin of g_ty_s_outtab.
include type g_ty_s_sflight.
types: list type num1,
box type char1,
count type i,
lights type char1,
checkbox type char1,
hotspot type char1,
color(4) type c,
tabcolor type slis_t_specialcol_alv,
price2 type g_ty_s_sflight-price,
currency2 type g_ty_s_sflight-currency,
char(10) type c,
string type string,
int1 type int1,
int2 type int2,
int4 type int4,
numc(10) type n,
dec(10) type p decimals 2,
fltp type f,
dats type d,
tims type t,
icon type icon-id,
icon_qinfo type icon-name,
symbol type icon-id,
end of g_ty_s_outtab,
g_ty_t_outtab type table of g_ty_s_outtab.
constants: con_true type char1 value 'X',
con_ok type sy-ucomm value 'OK',
con_exit type sy-ucomm value 'EXIT',
con_canc type sy-ucomm value 'CANC',
con_back type sy-ucomm value 'BACK'.
data: gt_outtab1 type g_ty_t_outtab,
gt_outtab2 type g_ty_t_outtab,
gt_outtab3 type g_ty_t_outtab,
gt_outtab4 type g_ty_t_outtab,
gt_outtab5 type g_ty_t_outtab,
gt_outtab6 type g_ty_t_outtab,
gt_outtab7 type g_ty_t_outtab,
gt_outtab8 type g_ty_t_outtab,
gt_outtab9 type g_ty_t_outtab.
data: gt_outtab type g_ty_t_outtab with header line,
gs_test type g_ty_s_test.
data: g_repid type sy-repid.
data: g_field type lvc_s_fcat-fieldname,
g_int_field type i.
CLASS random DEFINITION
class random definition.
public section.
types:
value(16) type p decimals 0,
numcv(15) type n.
constants:
max type random=>value value 4294967295.
class-methods:
computes a random natural number from the set {0, ..., random=>max}.
number returning value(rval) type random=>value,
computes a random character from the set {A-Za-z0-9}
c returning value(rval) type char01,
computes a random string consisting of "len" random characters
string importing len type i
returning value(rval) type string,
computes a date
dats returning value(rval) type d,
computes a time
time returning value(rval) type t,
computes a random numc from the set {low, ..., high}
numc importing low type random=>numcv high type random=>numcv
returning value(rval) type random=>numcv,
computes a random integer from the set {low, ..., high}
i importing low type i high type i
returning value(rval) type i,
computes a random integer from the set {low, ..., high}
int2 importing low type int2 high type int2
returning value(rval) type int2,
computes a random integer from the set {low, ..., high}
int1 importing low type int1 high type int1
returning value(rval) type int1,
computes a random float from the interval [low ; high]
f importing low type f high type f
returning value(rval) type f,
computes a random character from the set {A-F0-9}
hex returning value(rval) type char01,
computes a random character from the set {0-1}
x returning value(rval) type char01,
method "random=>class_constructor"
class_constructor.
private section.
class-data:
precomputed maximal index (= string length - 1) of "random=>chars"
or of "random=>x_data".
charsmax type i,
xmax type i,
random number seed value.
(Used in method "random=>number".)
seed type random=>value.
constants:
characters for class-method "random=>hex"
hex_data(100) type c value 'ABCDEF' &
'0123456789',
characters for class-method "random=>x"
x_data(100) type c value '01',
characters for class-metshod "random=>c"
chars(100) type c value 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' &
'abcdefghijklmnopqrstuvwxyz' &
'0123456789'.
endclass. "random DEFINITION
CLASS random IMPLEMENTATION
class random implementation.
implementation of the methods for randomizing the values
method x.
data: ri type i.
ri = random=>i( low = 0 high = random=>xmax ).
move x_data+ri(1) to rval.
endmethod. "x
method hex.
data: ri type i.
ri = random=>i( low = 0 high = random=>charsmax ).
move hex_data+ri(1) to rval.
endmethod. "hex
method number.
constants:
a(3) type p value 67301, " Coefficient
c(1) type p value 1, " Increment
m(6) type p value 4294967296. " Modulus 2**32
random=>seed = ( a * random=>seed + c ) mod m.
rval = random=>seed.
endmethod. "number
method c.
data:
ri type i.
ri = random=>i( low = 0 high = random=>charsmax ).
move chars+ri(1) to rval.
endmethod. "c
method string.
data:
char(1) type c.
clear rval.
do len times.
char = random=>c( ).
concatenate rval char into rval.
enddo.
endmethod. "string
method dats.
data: l_date type sy-datum,
l_day(2) type n,
l_month(2) type n,
l_year(4) type n,
l_value type random=>numcv,
l_low type random=>numcv,
l_high type random=>numcv.
l_year = sy-datum+0(4).
l_low = l_year - 5.
l_high = l_year + 5.
l_value = random=>numc( low = l_low high = l_high ).
l_year = l_value+11(4).
l_value = random=>numc( low = 1 high = 12 ).
l_month = l_value+13(2).
case l_month.
when 2.
l_high = 28.
when 4 or 6 or 9 or 11.
l_high = 30.
when others.
l_high = 31.
endcase.
l_value = random=>numc( low = 1 high = l_high ).
l_day = l_value+13(2).
l_date+0(4) = l_year.
l_date+4(2) = l_month.
l_date+6(2) = l_day.
rval = l_date.
endmethod. "dats
method time.
data: l_time type t,
l_hour(2) type n,
l_min(2) type n,
l_sec(2) type n,
l_value type random=>numcv.
l_value = random=>numc( low = 0 high = 60 ).
l_sec = l_value+13(2).
l_value = random=>numc( low = 0 high = 60 ).
l_min = l_value+13(2).
l_value = random=>numc( low = 1 high = 24 ).
l_hour = l_value+13(2).
l_time+0(2) = l_hour.
l_time+2(2) = l_min.
l_time+4(2) = l_sec.
rval = l_time.
endmethod. "time
method numc.
Go from {0,...,random=>max} to {low,...,high} with ABAP rounding
data: l_dec(16) type p,
l_char(16) type c.
l_dec = ( ( high - low + 1 ) * random=>number( ) ) / random=>max
+ '0.5'.
subtract 1 from l_dec.
add low to l_dec.
data: lr_type_descr type ref to cl_abap_typedescr,
lr_elem_descr type ref to cl_abap_elemdescr.
lr_type_descr =
cl_abap_typedescr=>describe_by_data( rval ).
lr_elem_descr ?= lr_type_descr.
l_char = l_dec.
shift l_char left deleting leading space.
rval = l_char+0(lr_elem_descr->output_length).
endmethod. "i
method i.
Go from {0,...,random=>max} to {low,...,high} with ABAP rounding
data: l_dec(16) type p,
l_char(16) type c.
l_dec = ( ( high - low + 1 ) * random=>number( ) ) / random=>max
+ '0.5'.
subtract 1 from l_dec.
add low to l_dec.
data: lr_type_descr type ref to cl_abap_typedescr,
lr_elem_descr type ref to cl_abap_elemdescr.
lr_type_descr =
cl_abap_typedescr=>describe_by_data( rval ).
lr_elem_descr ?= lr_type_descr.
l_char = l_dec.
shift l_char left deleting leading space.
rval = l_char+0(lr_elem_descr->output_length).
endmethod. "i
method int2.
Go from {0,...,random=>max} to {low,...,high} with ABAP rounding
data: l_dec(16) type p,
l_char(16) type c.
l_dec = ( ( high - low + 1 ) * random=>number( ) ) / random=>max
+ '0.5'.
subtract 1 from l_dec.
add low to l_dec.
data: lr_type_descr type ref to cl_abap_typedescr,
lr_elem_descr type ref to cl_abap_elemdescr.
lr_type_descr =
cl_abap_typedescr=>describe_by_data( rval ).
lr_elem_descr ?= lr_type_descr.
l_char = l_dec.
shift l_char left deleting leading space.
rval = l_char+0(lr_elem_descr->output_length).
endmethod. "i
method int1.
Go from {0,...,random=>max} to {low,...,high} with ABAP rounding
data: l_dec(16) type p,
l_char(16) type c.
l_dec = ( ( high - low + 1 ) * random=>number( ) ) / random=>max
+ '0.5'.
subtract 1 from l_dec.
add low to l_dec.
data: lr_type_descr type ref to cl_abap_typedescr,
lr_elem_descr type ref to cl_abap_elemdescr.
lr_type_descr =
cl_abap_typedescr=>describe_by_data( rval ).
lr_elem_descr ?= lr_type_descr.
l_char = l_dec.
shift l_char left deleting leading space.
rval = l_char+0(lr_elem_descr->output_length).
endmethod. "i
method f.
Go from {0,...,random=>max} to [low;high]
rval = ( ( high - low ) * random=>number( ) ) / random=>max
+ low.
endmethod. "f
method class_constructor.
charsmax = strlen( chars ) - 1.
xmax = strlen( x_data ) - 1.
seed = 1.
endmethod. "class_constructor
endclass. "random IMPLEMENTATION
SELECTION-SCREEN *
selection-screen begin of block gen with frame.
parameters:
p_amount type i default 30,
p_dbinfo as checkbox,
p_dbshrt as checkbox.
selection-screen end of block gen.
parameters:
p_list type num1 default 3.
selection-screen begin of block tit with frame title text-tit.
parameters:
p_tit01 type lvc_s_layo-grid_title default text-p01. "TITLE
selection-screen end of block tit.
selection-screen begin of block lay with frame title text-lay.
parameters:
p_lay01 as checkbox. "ZEBRA
selection-screen skip.
parameters:
p_lay02 as checkbox, "NO HORIZONTAL LINES
p_lay03 as checkbox. "NO VERTICAL LINES
selection-screen skip.
parameters:
p_lay04 as checkbox. "NO SCROLLING
selection-screen skip.
parameters:
p_lay06 type syucomm, "F2CODE
p_lay07 as checkbox. "CONFIRMATION PROMPT
selection-screen end of block lay.
selection-screen begin of block spa with frame title text-spa.
parameters:
p_spa01 as checkbox, "BOX
p_spa02 as checkbox, "COUNT FELD
p_spa03 as checkbox, "NO COLUMN HEADERS
p_spa04 as checkbox. "COLUMN OPTIMIZE
selection-screen begin of block hot with frame title text-hot.
parameters:
p_hot01 as checkbox. "NO HOTSPOT
parameters:
p_hot02 as checkbox. "Hotspot auf Zeilenebene
select-options:
p_hotf02 for g_int_field no intervals default 1.
parameters:
p_hot03 as checkbox.
select-options:
p_hotf03 for g_field no intervals.
selection-screen end of block hot.
selection-screen begin of block mrg with frame title text-mrg.
parameters:
p_mrg01 radiobutton group mrge, "Default
p_mrg02 radiobutton group mrge, "kein Merge
p_mrg03 radiobutton group mrge. "Merge
selection-screen end of block mrg.
selection-screen begin of block out with frame title text-out.
parameters:
p_out01 as checkbox.
select-options:
p_outf01 for g_field no intervals.
selection-screen end of block out.
selection-screen begin of block tec with frame title text-tec.
parameters:
p_tec01 as checkbox.
select-options:
p_tecf01 for g_field no intervals.
selection-screen end of block tec.
selection-screen begin of block fix with frame title text-fix.
parameters:
p_fix01 as checkbox.
select-options:
p_fixf01 for g_field no intervals.
selection-screen end of block fix.
selection-screen begin of block txt with frame title text-txt.
selection-screen pushbutton /1(50) text-pb2 user-command pb02.
selection-screen end of block txt.
selection-screen begin of block cur with frame title text-cur.
parameters:
p_curanz type i,
p_curspc as checkbox default space.
selection-screen skip.
select-options:
p_curf00 for g_field no intervals.
parameters:
p_cur01 radiobutton group cur default 'X',
p_curf01 type lvc_s_fcat-fieldname.
parameters:
p_cur02 radiobutton group cur,
p_curf02 type g_ty_s_sflight-currency.
selection-screen end of block cur.
selection-screen begin of block sort with frame title text-srt.
selection-screen pushbutton /1(20) text-pb1 user-command pb01.
selection-screen end of block sort.
selection-screen end of block spa.
selection-screen begin of block key with frame title text-key.
parameters:
p_key01 as checkbox, "KEYFELDER ALS HOTSPOT
p_key02 as checkbox. "NO KEY FIXIERUNG
selection-screen end of block key.
selection-screen begin of block exp with frame title text-exp.
parameters:
p_excp01 as checkbox, "EXCEPTION
p_excp_c as checkbox. "EXCEPTION CONDENSE
selection-screen end of block exp.
selection-screen begin of block sum with frame title text-sum.
parameters:
p_sum01 as checkbox, "SUM BEFORE
p_sum02 as checkbox, "NUMC
p_sum03 as checkbox, "NO UNITSPLIT
p_sum04 as checkbox, "TOTALS ONLY
p_sum05 as checkbox, "NO SUMCHOICE
p_sum06 as checkbox, "NO SUMLINE
p_sum07 type sy-msgli, "TOTALS TEXT
p_sum08 as checkbox, "NO SUBCHOICE
p_sum09 as checkbox, "NO SUBTOTALS
p_sum10 type sy-msgli. "SUBTOTALS TEXT
selection-screen begin of block dos with frame title text-dos.
parameters:
p_dos01 as checkbox.
select-options:
p_dosf01 for g_field no intervals.
selection-screen end of block dos.
selection-screen begin of block nos with frame title text-nos.
parameters:
p_nos01 as checkbox.
select-options:
p_nosf01 for g_field no intervals.
selection-screen end of block nos.
selection-screen end of block sum.
selection-screen begin of block col with frame title text-col.
parameters:
p_col01 as checkbox.
select-options:
p_colf01 for g_int_field no intervals default 1.
parameters:
p_col02 as checkbox.
select-options:
p_colf02 for g_field no intervals.
parameters:
p_col03 as checkbox.
select-options:
p_colf03 for g_field no intervals.
selection-screen end of block col.
selection-screen begin of block prn with frame title text-prn.
parameters:
p_lpr01 as checkbox default 'X'. "GROUP CHANGE EDIT
selection-screen skip.
parameters:
p_lpr02 as checkbox. "GET SELINFO
selection-screen skip.
parameters:
p_lpr03 as checkbox, "NO MIN LINESIZE
p_lpr04 type sylinsz, "MIN LINESIZE
p_lpr05 type sylinsz. "MAX LINESIZE
selection-screen skip.
parameters:
p_prn01 as checkbox, "PRINT
p_prn02 type lvc_s_prnt-reservelns, "RESERVE LINES
p_prn03 as checkbox, "NO LISTINFO
p_prn04 as checkbox, "NO SELINFO
p_prn05 as checkbox, "TITEL
p_prn06 type lvc_s_prnt-footline, "FOOTLINE
p_prn07 as checkbox, "PRINT INFO
p_prn08 as checkbox, "NO COVERPAGE
p_prn09 as checkbox, "NO NEW PAGE
p_prn10 as checkbox. "NO CHANGE PRINT PARAMS
selection-screen end of block prn.
selection-screen begin of block evt with frame.
parameters:
p_evt01 as checkbox, "PF_STATUS_SET
p_evt02 as checkbox. "USER_COMMAND
selection-screen skip.
parameters:
p_evt03 as checkbox, "CALLER_EXIT
p_evt04 as checkbox, "LIST_MODIFY
p_evt05 as checkbox, "BEFORE_LINE_OUTPUT
p_evt06 as checkbox. "AFTER_LINE_OUTPUT
selection-screen skip.
parameters:
p_evt07 as checkbox, "SUBTOTAL_TEXT
p_evt08 as checkbox. "REPREP_SEL_MODIFY
selection-screen skip.
parameters:
p_evt09 as checkbox, "TOP_OF_PAGE
p_evt10 as checkbox, "END_OF_PAGE
p_evt11 as checkbox, "TOP_OF_LIST
p_evt12 as checkbox. "END_OF_LIST
selection-screen skip.
parameters:
p_evt13 as checkbox, "TOP_OF_COVERPAGE
p_evt14 as checkbox. "END_OF_COVERPAGE
selection-screen skip.
parameters:
p_evt15 as checkbox, "FOREIGN_TOP_OF_PAGE
p_evt16 as checkbox. "FOREIGN_END_OF_PAGE
selection-screen skip.
parameters:
p_evt17 as checkbox. "GROUPLEVEL_CHANGE
selection-screen end of block evt.
INITIALIZATION *
initialization.
perform f01_f4_field using 'SUM' space changing p_dosf01-low.
p_dosf01-option = 'EQ'.
p_dosf01-sign = 'I'.
append p_dosf01.
perform f01_f4_field using 'SUM' space changing p_nosf01-low.
p_nosf01-option = 'EQ'.
p_nosf01-sign = 'I'.
append p_nosf01.
perform f01_f4_field using 'KEY' space changing p_outf01-low.
p_outf01-option = 'EQ'.
p_outf01-sign = 'I'.
append p_outf01.
perform f01_f4_field using space space changing p_tecf01-low.
p_tecf01-option = 'EQ'.
p_tecf01-sign = 'I'.
append p_tecf01.
perform f01_f4_field using space space changing p_fixf01-low.
p_fixf01-option = 'EQ'.
p_fixf01-sign = 'I'.
append p_fixf01.
perform f01_f4_field using 'CURR' space changing p_curf00-low.
p_curf00-option = 'EQ'.
p_curf00-sign = 'I'.
append p_curf00.
perform f01_f4_field using 'CUKY' space changing p_curf01.
perform f01_f4_field using space space changing p_hotf03-low.
p_hotf03-option = 'EQ'.
p_hotf03-sign = 'I'.
append p_hotf03.
perform f01_f4_field using space space changing p_colf02-low.
p_colf02-option = 'EQ'.
p_colf02-sign = 'I'.
append p_colf02.
perform f01_f4_field using space space changing p_colf03-low.
p_colf03-option = 'EQ'.
p_colf03-sign = 'I'.
append p_colf03.
AT SELECTION-SCREEN *
at selection-screen.
case sscrfields-ucomm.
when 'PB01'.
call screen 1001 starting at 1 1 ending at 80 20.
when 'PB02'.
call screen 1002 starting at 1 1 ending at 80 20.
endcase.
AT SELECTION-SCREEN ON VALUE-REQUEST *
at selection-screen on value-request for p_dosf01-low.
perform f01_f4_field using 'SUM' 'X' changing p_dosf01-low.
at selection-screen on value-request for p_nosf01-low.
perform f01_f4_field using 'SUM' 'X' changing p_nosf01-low.
at selection-screen on value-request for p_outf01-low.
perform f01_f4_field using 'KEY' 'X' changing p_outf01-low.
at selection-screen on value-request for p_tecf01-low.
perform f01_f4_field using space 'X' changing p_tecf01-low.
at selection-screen on value-request for p_fixf01-low.
perform f01_f4_field using space 'X' changing p_fixf01-low.
at selection-screen on value-request for p_curf00-low.
perform f01_f4_field using 'CURR' 'X' changing p_curf00-low.
at selection-screen on value-request for p_curf01.
perform f01_f4_field using 'CUKY' 'X' changing p_curf01.
at selection-screen on value-request for p_hotf03-low.
perform f01_f4_field using space 'X' changing p_hotf03-low.
at selection-screen on value-request for p_colf02-low.
perform f01_f4_field using space 'X' changing p_colf02-low.
at selection-screen on value-request for p_colf03-low.
perform f01_f4_field using space 'X' changing p_colf03-low.
at selection-screen on value-request for p_lay06.
perform f01_f4_fcode using space
space
changing p_lay06.
START-OF-SELECTION *
start-of-selection.
g_repid = sy-repid.
gs_test-select_amount = p_amount.
gs_test-only_db_info = p_dbinfo.
gs_test-db_short = p_dbshrt.
gs_test-list_amount = p_list.
gs_test-layo_title = p_tit01.
gs_test-layo_zebra = p_lay01.
gs_test-layo_no_horiz_lines = p_lay02.
gs_test-layo_no_vert_lines = p_lay03.
gs_test-layo_no_scrolling = p_lay04.
gs_test-layo_f2code = p_lay06.
gs_test-layo_confirmation_prompt = p_lay07.
gs_test-layo_box = p_spa01.
gs_test-layo_count = p_spa02.
gs_test-layo_no_colhead = p_spa03.
gs_test-layo_column_optimize = p_spa04.
gs_test-layo_no_hotspot = p_hot01.
if p_hot02 eq con_true.
loop at p_hotf02.
if not p_hotf02-low is initial.
append p_hotf02-low to gs_test-layo_hotspot_rows.
endif.
endloop.
endif.
if p_hot03 eq con_true.
loop at p_hotf03.
if not p_hotf03-low is initial.
append p_hotf03-low to gs_test-layo_hotspot_columns.
endif.
endloop.
endif.
case con_true.
when p_mrg01.
gs_test-layo_cell_merge = space.
when p_mrg02.
gs_test-layo_cell_merge = 'N'.
when p_mrg03.
gs_test-layo_cell_merge = 'Y'.
endcase.
if p_out01 eq con_true.
loop at p_outf01.
if not p_outf01-low is initial.
append p_outf01-low to gs_test-fcat_no_out_fields.
endif.
endloop.
endif.
if p_tec01 eq con_true.
loop at p_tecf01.
if not p_tecf01-low is initial.
append p_tecf01-low to gs_test-fcat_tech_fields.
endif.
endloop.
endif.
if p_fix01 eq con_true.
loop at p_fixf01.
if not p_fixf01-low is initial.
append p_fixf01-low to gs_test-fcat_fix_column_fields.
endif.
endloop.
endif.
gs_test-curr_amount = p_curanz.
gs_test-curr_space = p_curspc.
if p_cur01 eq con_true or p_cur02 eq con_true.
data: ls_fcat_curr type g_ty_s_fcat_curr.
loop at p_curf00.
clear ls_fcat_curr.
if not p_curf00-low is initial.
ls_fcat_curr-fieldname = p_curf00-low.
case con_true.
when p_cur01.
ls_fcat_curr-cfieldname = p_curf01.
when p_cur02.
ls_fcat_curr-currency = p_curf02.
endcase.
append ls_fcat_curr to gs_test-fcat_curr_fields.
endif.
endloop.
endif.
gs_test-layo_keys_hotspot = p_key01.
gs_test-layo_no_keyfix = p_key02.
gs_test-excp_display = p_excp01.
gs_test-excp_condense = p_excp_c.
gs_test-sum_before = p_sum01.
gs_test-sum_numc = p_sum02.
gs_test-sum_no_unitsplit = p_sum03.
gs_test-sum_totals_only = p_sum04.
gs_test-sum_no_sumchoice = p_sum05.
gs_test-sum_no_sumline = p_sum06.
gs_test-sum_totals_text = p_sum07.
gs_test-sum_no_subchoice = p_sum08.
gs_test-sum_no_subtotals = p_sum09.
gs_test-sum_subtotals_text = p_sum10.
if p_dos01 eq con_true.
loop at p_dosf01.
if not p_dosf01-low is initial.
append p_dosf01-low to gs_test-fcat_do_sum_fields.
endif.
endloop.
endif.
if p_nos01 eq con_true.
loop at p_nosf01.
if not p_nosf01-low is initial.
append p_nosf01-low to gs_test-fcat_no_sum_fields.
endif.
endloop.
endif.
gs_test-layo_group_change_edit = p_lpr01.
gs_test-layo_get_selinfo = p_lpr02.
gs_test-layo_no_min_linesize = p_lpr03.
gs_test-layo_min_linesize = p_lpr04.
gs_test-layo_max_linesize = p_lpr05.
gs_test-prnt_print = p_prn01.
gs_test-prnt_reserve_lines = p_prn02.
gs_test-prnt_no_listinfo = p_prn03.
gs_test-prnt_no_selinfo = p_prn04.
gs_test-prnt_with_title = p_prn05.
gs_test-prnt_footline = p_prn06.
gs_test-prnt_printinfo = p_prn07.
gs_test-prnt_no_coverpage = p_prn08.
gs_test-prnt_no_new_page = p_prn09.
gs_test-prnt_no_change_print_params = p_prn10.
if p_col01 eq con_true.
loop at p_colf01.
if not p_colf01-low is initial.
append p_colf01-low to gs_test-color_rows.
endif.
endloop.
endif.
if p_col02 eq con_true.
loop at p_colf02.
if not p_colf02-low is initial.
append p_colf02-low to gs_test-color_fields_column.
endif.
endloop.
endif.
if p_col03 eq con_true.
loop at p_colf03.
if not p_colf03-low is initial.
append p_colf03-low to gs_test-color_fields_cell.
endif.
endloop.
endif.
if p_evt01 eq con_true.
append con_event_01 to gs_test-events.
endif.
if p_evt02 eq con_true.
append con_event_02 to gs_test-events.
endif.
if p_evt03 eq con_true.
append con_event_03 to gs_test-events.
endif.
if p_evt04 eq con_true.
append con_event_04 to gs_test-events.
endif.
if p_evt05 eq con_true.
append con_event_05 to gs_test-events.
endif.
if p_evt06 eq con_true.
append con_event_06 to gs_test-events.
endif.
if p_evt07 eq con_true.
append con_event_07 to gs_test-events.
endif.
if p_evt08 eq con_true.
append con_event_08 to gs_test-events.
endif.
if p_evt09 eq con_true.
append con_event_09 to gs_test-events.
endif.
if p_evt10 eq con_true.
append con_event_10 to gs_test-events.
endif.
if p_evt11 eq con_true.
append con_event_11 to gs_test-events.
endif.
if p_evt12 eq con_true.
append con_event_12 to gs_test-events.
endif.
if p_evt13 eq con_true.
append con_event_13 to gs_test-events.
endif.
if p_evt14 eq con_true.
append con_event_14 to gs_test-events.
endif.
if p_evt15 eq con_true.
append con_event_15 to gs_test-events.
endif.
if p_evt16 eq con_true.
append con_event_16 to gs_test-events.
endif.
if p_evt17 eq con_true.
append con_event_17 to gs_test-events.
endif.
gs_test-buffer_active = space.
gs_test-bypassing_buffer = space.
END-OF-SELECTION *
end-of-selection.
perform f01_call_list.
*& Form f01_call_list
text
form f01_call_list .
data: ls_prnt type slis_print_alv,
lt_excl type slis_t_extab,
l_exit type char1,
ls_exit type slis_exit_by_user,
l_list type num1.
call function 'REUSE_ALV_BLOCK_LIST_INIT'
exporting
i_callback_program = g_repid
i_callback_pf_status_set = ' '
i_callback_user_command = ' '
it_excluding = lt_excl.
do gs_test-list_amount times.
add 1 to l_list.
perform f01_append_list using l_list.
enddo.
perform f01_set_prnt changing ls_prnt.
call function 'REUSE_ALV_BLOCK_LIST_DISPLAY'
exporting
i_interface_check = ' '
is_print = ls_prnt
i_screen_start_column = 0
i_screen_start_line = 0
i_screen_end_column = 0
i_screen_end_line = 0
importing
e_exit_caused_by_caller = l_exit
es_exit_caused_by_user = ls_exit
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. " f01_call_list
*& Form f01_append_list
text
form f01_append_list using value(i_list) type num1.
data: ls_layo type slis_layout_alv,
lt_fcat type slis_t_fieldcat_alv,
lt_sort type slis_t_sortinfo_alv,
lt_evts type slis_t_event,
l_tabname type slis_tabname.
field-symbols: <l_table> type any.
perform f01_get_outtab using i_list.
case i_list.
when 1.
gt_outtab1 = gt_outtab[].
when 2.
gt_outtab2 = gt_outtab[].
when 3.
gt_outtab3 = gt_outtab[].
when 4.
gt_outtab4 = gt_outtab[].
when 5.
gt_outtab5 = gt_outtab[].
when 6.
gt_outtab6 = gt_outtab[].
when 7.
gt_outtab7 = gt_outtab[].
when 8.
gt_outtab8 = gt_outtab[].
when 9.
gt_outtab9 = gt_outtab[].
endcase.
perform f01_set_layo changing ls_layo.
perform f01_set_fcat changing lt_fcat.
perform f01_set_evts changing lt_evts.
concatenate 'LIST_' i_list into l_tabname.
case i_list.
when 1.
call function 'REUSE_ALV_BLOCK_LIST_APPEND'
exporting
is_layout = ls_layo
it_fieldcat = lt_fcat
i_tabname = l_tabname
it_events = lt_evts
it_sort = lt_sort
i_text = 'Hello' "#EC NOTEXT
tables
t_outtab = gt_outtab1
exceptions
program_error = 1
maximum_of_appends_reached = 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.
when 2.
call function 'REUSE_ALV_BLOCK_LIST_APPEND'
exporting
is_layout = ls_layo
it_fieldcat = lt_fcat
i_tabname = l_tabname
it_events = lt_evts
it_sort = lt_sort
i_text = 'Hello' "#EC NOTEXT
tables
t_outtab = gt_outtab2
exceptions
program_error = 1
maximum_of_appends_reached = 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.
when 3.
call function 'REUSE_ALV_BLOCK_LIST_APPEND'
exporting
is_layout = ls_layo
it_fieldcat = lt_fcat
i_tabname = l_tabname
it_events = lt_evts
it_sort = lt_sort
i_text = 'Hello' "#EC NOTEXT
tables
t_outtab = gt_outtab3
exceptions
program_error = 1
maximum_of_appends_reached = 2
others = 3.
if sy-subrc <> 0.
message id sy-msgid type sy-msgty number sy-msgno
with sy-ms -
Pdf output problem in ALV Block Display
Hi ,
I have z custom report of ALV BLOCK LIST DISPLAY which creates Spool using ABAP submit statement and then this spool is feed to FM CONVERT_ABAPSPOOLJOB_2_PDF to create PDF file . PDF file generates but output is coming on two pages. I want to display output on same page(i.e. on first page only) .
it's urgent, appriciate your help.
Thanks & Regards
MSIwhile displaying in the screen is it display in one screen and while converting in PDF is IT Does the same in Two Pages
-
Hello All,
Hello All,
I am Working on ALV Block List Report. In that report i am having two Blocks.
if i set a filter for one block it is filtering that block, the second block remains constant.
My requirment is like this if iam setting a filter for one field in first block, if the second block also have the same field, then filter should Automatically be setted to the second block based on the field.
Is this possible????? Can any one Help me out form this issue.
Thanks,
Feroz.If you are using ALV standard functionality then if you are sorting with field then it will consider only that field. but if the data for other field also same then it will sort based on first field only but it will look like it is consider second field also.
If you are using standard functionality then you can not impletement logic that first field get selected and sorted by second even if its values are same.
Rewards if useful..................
Minal
Maybe you are looking for
-
Problemas con la re-instalación de Acrobat 7.0 professional
Instale el programa en el ordenador. Me dice que lo tengo que activar. Lo que ya no se puede hacer por internet. En mi sección de usuario de Adobe, veo que en mis productos ya sale el registro en un año anterior y con el número de serie que tengo en
-
Move all photos from one computer to other computer
How can I move all my photos from my old MAC with Lightroom 4 to my new MAC with Lightroom 5 ? I have no idea how to do this.
-
T-Code BP - Create Business Partner - Grant Sponsor
Hi All, Can anyone suggest any approach for loading Grant Sponsors during initial Conversion? Is there any BAPI/ Standard Program for doing this? Best Regards, Kazmi
-
DSWP - Nothing happens when you create new system
Hi SDN How are you? We are on Solution Manager 4.0. I have already defined 3 systems in transaction DSWP. I have recently applied support packs 9 and 10. Now when I try to define a new system in transaction DSWP, nothing happens. When I click on the
-
wait..i might get the solution... Edited by: user11211113 on Sep 3, 2010 8:35 PM