on 05-09-2006 10:17 AM
Hi All,
I am using the Blocked list ALV to display two lists in a program. One among them is a hierarchial ALV. When i click on the Expand button of this ALV it terminates with the runtime error "GETWA_NOT_ASSIGNED".
I was able to use this functionality using similar code in a stand alone hierarchial ALV list in another program without any problem.
I have assigned the Expand Field name as follows in both programs:
wa_layout-expand_fieldname = 'EXPAND'
Any suggestions or help in this would be highly appreciated.
Thanks & Reagrds,
Praveen
1. do you have field(say EXPAND(1) ) in your header tab for expand of 1 char.
2. layout-expand_fieldname = 'EXPAND'. "the same you should mention here
3. need to build the fieldcat for that field also,
Regards
vijay
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
make sure , the field name u r giving is a art of either structure or table
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hai Praveen
Check the following Code
&----
*& Report ZALV_BLOCKLIST *
*& *
&----
*& *
*& *
&----
REPORT ZALV_BLOCKLIST NO STANDARD PAGE HEADING
LINE-SIZE 150
LINE-COUNT 60(4)
MESSAGE-ID Z00.
*..Type Definitions for ALV Report
TYPE-POOLS SLIS.
*..Includes
*for ICONs
*INCLUDE <ICON>.
----
Table/Structure declarations. *
----
TABLES: MARA,
MARC,
T134.
----
Internal Tables declaration *
----
*..To store Basic Report fields
DATA:BEGIN OF IT_MARA OCCURS 0,
MATNR LIKE MARA-MATNR,
MTART LIKE MARA-MTART,
MATKL LIKE MARA-MATKL,
MEINS LIKE MARA-MEINS,
NTGEW LIKE MARA-NTGEW,
END OF IT_MARA.
*DATA:BEGIN OF IT_MATKL OCCURS 0,
MATKL LIKE T023-MATKL,
WGBEZ LIKE T023-WGBEZ,
END OF IT_MATKL.
DATA:BEGIN OF IT_MARC OCCURS 0,
WERKS LIKE MARC-WERKS,
LADGR LIKE MARC-LADGR,
MTVFP LIKE MARC-MTVFP,
DISPR LIKE MARC-DISPR,
DISMM LIKE MARC-DISMM,
DISPO LIKE MARC-DISPO,
END OF IT_MARC.
----
ALV Type declaration *
----
DATA:V_NO_DATA TYPE C.
----
ALV Type declaration *
----
DATA:V_REPID TYPE SYREPID.
DATA: IT_FIELDCATALOG_MARA TYPE SLIS_T_FIELDCAT_ALV,
WA_FIELDCATALOG_MARA TYPE SLIS_FIELDCAT_ALV,
IT_FIELDCATALOG_MARC TYPE SLIS_T_FIELDCAT_ALV,
WA_FIELDCATALOG_MARC TYPE SLIS_FIELDCAT_ALV,
IT_FIELDCATALOG_MATKL TYPE SLIS_T_FIELDCAT_ALV,
WA_FIELDCATALOG_MATKL TYPE SLIS_FIELDCAT_ALV,
WA_LAYOUT TYPE SLIS_LAYOUT_ALV,
IT_EVENTS TYPE SLIS_T_EVENT,
WA_EVENTS TYPE SLIS_ALV_EVENT,
WA_KEYINFO TYPE SLIS_KEYINFO_ALV.
----
Selection Screen. *
----
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-H01.
SELECT-OPTIONS: S_MATNR FOR MARA-MATNR ,
S_MTART FOR MARA-MTART .
SELECTION-SCREEN END OF BLOCK B1.
----
Event:Initialization *
----
INITIALIZATION.
*Report Name
V_REPID = SY-REPID.
----
AT Selection Screen. *
----
AT SELECTION-SCREEN.
----
Event: Start-of-Selection *
----
START-OF-SELECTION.
PERFORM FETCH_DATA.
----
Event: End-of-Selection *
----
END-OF-SELECTION.
IF V_NO_DATA = ''.
MESSAGE I010 WITH 'NO DATA TO DISPLAY ! '.
EXIT.
ELSE.
PERFORM FILL_FIELDCAT_MARA.
PERFORM FILL_FIELDCAT_MAKT.
PERFORM FILL_FIELDCAT_MARC.
PERFORM FILL_LAYOUT.
PERFORM CALL_ALV_INIT.
PERFORM ADD_LISTS.
PERFORM DISPLAY_BLOCK_LIST.
ENDIF.
//////////////////////////////////////////////////////////////////////
*
FORM DEFINITIONS *
*
*//////////////////////////////////////////////////////////////////////
&----
*& Form FETCH_DATA
&----
text
----
--> p1 text
<-- p2 text
----
FORM FETCH_DATA.
SELECT MATNR
MTART
MATKL
MEINS
NTGEW
INTO CORRESPONDING FIELDS OF TABLE IT_MARA
FROM MARA
WHERE MATNR IN S_MATNR
AND MTART IN S_MTART.
IF SY-SUBRC <> 0.
V_NO_DATA = ''.
ELSE.
V_NO_DATA = 'X'.
SELECT WERKS
LADGR
MTVFP
DISPR
DISMM
DISPO
INTO CORRESPONDING FIELDS OF TABLE IT_MARC
FROM MARC
WHERE MATNR IN S_MATNR.
ENDIF.
ENDFORM. " FETCH_DATA
*
&----
*& Form FILL_FIELDCAT_MARA
&----
text
----
--> p1 text
<-- p2 text
----
FORM FILL_FIELDCAT_MARA.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
I_PROGRAM_NAME = V_REPID
I_INTERNAL_TABNAME =
I_STRUCTURE_NAME = 'IT_MARA'
I_CLIENT_NEVER_DISPLAY = 'X'
I_INCLNAME = V_REPID
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE =
CHANGING
CT_FIELDCAT = IT_FIELDCATALOG_MARA
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.
LOOP AT IT_FIELDCATALOG_MARA INTO WA_FIELDCATALOG_MARA.
CASE WA_FIELDCATALOG_MARA-FIELDNAME.
WHEN 'MATNR'.
WA_FIELDCATALOG_MARA-COL_POS = '1'.
WA_FIELDCATALOG_MARA-OUTPUTLEN = '15'.
WA_FIELDCATALOG_MARA-SELTEXT_L = 'Material NO'.
WHEN 'MTART'.
WA_FIELDCATALOG_MARA-COL_POS = '2'.
WA_FIELDCATALOG_MARA-OUTPUTLEN = '15'.
WA_FIELDCATALOG_MARA-SELTEXT_L = 'Mat Type'.
WHEN 'MATKL'.
WA_FIELDCATALOG_MARA-COL_POS = '3'.
WA_FIELDCATALOG_MARA-OUTPUTLEN = '15'.
WA_FIELDCATALOG_MARA-SELTEXT_L = 'Mat Group'.
WHEN 'MEINS'.
WA_FIELDCATALOG_MARA-COL_POS = '4'.
WA_FIELDCATALOG_MARA-OUTPUTLEN = '15'.
WA_FIELDCATALOG_MARA-SELTEXT_L = 'Measure Unit'.
WHEN 'NTGEW'.
WA_FIELDCATALOG_MARA-COL_POS = '5'.
WA_FIELDCATALOG_MARA-OUTPUTLEN = '15'.
WA_FIELDCATALOG_MARA-SELTEXT_L = 'Net Wt'.
WA_FIELDCATALOG_MARA-DO_SUM = 'X'.
ENDCASE.
MODIFY IT_FIELDCATALOG_MARA FROM WA_FIELDCATALOG_MARA INDEX SY-TABIX.
ENDLOOP.
ENDFORM. " FILL_FIELDCAT_MARA
&----
*& Form FILL_FIELDCAT_MARC
&----
text
----
--> p1 text
<-- p2 text
----
FORM FILL_FIELDCAT_MARC.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
I_PROGRAM_NAME = V_REPID
I_INTERNAL_TABNAME = 'IT_MARC'
I_STRUCTURE_NAME =
I_CLIENT_NEVER_DISPLAY = 'X'
I_INCLNAME = V_REPID
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE =
CHANGING
CT_FIELDCAT = IT_FIELDCATALOG_MARC
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.
LOOP AT IT_FIELDCATALOG_MARC INTO WA_FIELDCATALOG_MARC.
CASE WA_FIELDCATALOG_MARC-FIELDNAME.
WHEN 'WERKS'.
WA_FIELDCATALOG_MARC-COL_POS = '1'.
WA_FIELDCATALOG_MARC-OUTPUTLEN = '15'.
WA_FIELDCATALOG_MARC-SELTEXT_L = 'PLANT NAME'.
WHEN 'LADGR'.
WA_FIELDCATALOG_MARC-COL_POS = '2'.
WA_FIELDCATALOG_MARC-OUTPUTLEN = '15'.
WA_FIELDCATALOG_MARC-SELTEXT_L = 'Loading Group'.
WHEN 'MTVFP'.
WA_FIELDCATALOG_MARC-COL_POS = '3'.
WA_FIELDCATALOG_MARC-OUTPUTLEN = '20'.
WA_FIELDCATALOG_MARC-SELTEXT_L = 'Checking group'.
WHEN 'DISPR'.
WA_FIELDCATALOG_MARC-COL_POS = '4'.
WA_FIELDCATALOG_MARC-OUTPUTLEN = '15'.
WA_FIELDCATALOG_MARC-SELTEXT_L = 'MRP PROFILE'.
WHEN 'DISMM'.
WA_FIELDCATALOG_MARC-COL_POS = '5'.
WA_FIELDCATALOG_MARC-OUTPUTLEN = '15'.
WA_FIELDCATALOG_MARC-SELTEXT_L = 'MRP TYPE'.
WHEN 'DISPO'.
WA_FIELDCATALOG_MARC-COL_POS = '6'.
WA_FIELDCATALOG_MARC-OUTPUTLEN = '15'.
WA_FIELDCATALOG_MARC-SELTEXT_L = 'MRP CONTROLLER'.
ENDCASE.
MODIFY IT_FIELDCATALOG_MARC FROM WA_FIELDCATALOG_MARC INDEX SY-TABIX.
ENDLOOP.
ENDFORM. " FILL_FIELDCAT_MARC
&----
*& Form FILL_FIELDCAT_MAKT
&----
text
----
--> p1 text
<-- p2 text
----
FORM FILL_FIELDCAT_MAKT.
ENDFORM. " FILL_FIELDCAT_MAKT
&----
*& Form CALL_ALV_INIT
&----
text
----
--> p1 text
<-- p2 text
----
FORM CALL_ALV_INIT.
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT'
EXPORTING
I_CALLBACK_PROGRAM = V_REPID
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = ' '
IT_EXCLUDING =
.
ENDFORM. " CALL_ALV_INIT
&----
*& Form ADD_LISTS
&----
text
----
--> p1 text
<-- p2 text
----
FORM ADD_LISTS.
*ADD IT_MARA TABLE TO THE OUTPUT
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
EXPORTING
IS_LAYOUT = WA_LAYOUT
IT_FIELDCAT = IT_FIELDCATALOG_MARA
I_TABNAME = 'IT_MARA'
IT_EVENTS = IT_EVENTS
IT_SORT =
I_TEXT = ' '
TABLES
T_OUTTAB = IT_MARA
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.
**ADD IT_MARC TABLE TO THE OUTPUT
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
EXPORTING
IS_LAYOUT = WA_LAYOUT
IT_FIELDCAT = IT_FIELDCATALOG_MARC
I_TABNAME = 'IT_MARC'
IT_EVENTS = IT_EVENTS
IT_SORT =
I_TEXT = ' '
TABLES
T_OUTTAB = IT_MARC
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. " ADD_LISTS
&----
*& Form FILL_LAYOUT
&----
text
----
--> p1 text
<-- p2 text
----
FORM FILL_LAYOUT.
WA_LAYOUT-ZEBRA = 'X'.
WA_LAYOUT-TOTALS_TEXT = 'TOTAL'.
ENDFORM. " FILL_LAYOUT
&----
*& Form DISPLAY_BLOCK_LIST
&----
text
----
--> p1 text
<-- p2 text
----
FORM DISPLAY_BLOCK_LIST.
WA_KEYINFO-HEADER01 = 'MATNR'.
WA_KEYINFO-ITEM01 = 'MATNR'.
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
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_BLOCK_LIST .
Thanks & regards
Sreenivasulu P
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
I have tried all these but still not able to solve the problem.
Thanks & Regards,
Praveen
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Praveen,
check this code, if you still have the Problem..
<b>REPORT ztest_hier MESSAGE-ID zz.
TYPE-POOLS: slis.
*----------------------------------------------------------------------*
*Tables Declaration
*----------------------------------------------------------------------*
TABLES: vttk,
vttp,
vtts,
likp,
kna1,
lips,
vbak.
*----------------------------------------------------------------------*
*Parameters and Select-Options Declaration
*----------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK block1 WITH FRAME TITLE text-001.
SELECTION-SCREEN PUSHBUTTON:/1(15) s_ship USER-COMMAND ship,
52(25) s_detl USER-COMMAND detl.
SELECTION-SCREEN END OF BLOCK block1.
SELECTION-SCREEN BEGIN OF BLOCK block2 WITH FRAME TITLE text-004.
SELECT-OPTIONS: s_tknum FOR vttk-tknum,
s_dplen FOR vttk-dplen,
s_vsart FOR vttk-vsart,
s_tplst FOR vttk-tplst,
s_tdlnr FOR vttk-tdlnr,
s_sold FOR kna1-kunnr,
s_kunnz FOR vtts-kunnz.
PARAMETERS: p_code(4) NO-DISPLAY.
SELECTION-SCREEN END OF BLOCK block2.
*----------------------------------------------------------------------*
*Data Delcaration
*----------------------------------------------------------------------*
DATA: zreturn,
lines TYPE i,
btotal TYPE i,
btime TYPE i,
bpercent TYPE i.
DATA: BEGIN OF i_ship OCCURS 0,
tknum LIKE vttk-tknum,
tdlnr LIKE vttk-tdlnr,
kunnz LIKE vtts-kunnz,
dpten LIKE vtts-dpten,
upten LIKE vtts-upten,
daten LIKE vtts-daten,
uaten LIKE vtts-uaten,
tsrfo LIKE vtts-tsrfo,
END OF i_ship.
DATA: BEGIN OF i_bol OCCURS 0,
tknum LIKE vttk-tknum,
zbolnr LIKE vttp-zbolnr,
zzlvtts LIKE vttp-zzlvtts,
kunnr LIKE vbak-kunnr,
END OF i_bol.
DATA: BEGIN OF i_adrc OCCURS 0,
kunnr LIKE kna1-kunnr,
ort01 LIKE kna1-ort01,
regio LIKE kna1-regio,
END OF i_adrc.
DATA: BEGIN OF i_output OCCURS 0,
tdlnr LIKE vttk-tdlnr,
tknum LIKE vttk-tknum,
zbolnr LIKE vttp-zbolnr,
kunnr LIKE vbak-kunnr,
rort01 LIKE kna1-ort01,
rregio LIKE kna1-regio,
kunnz LIKE vtts-kunnz,
zort01 LIKE kna1-ort01,
zregio LIKE kna1-regio,
dpten LIKE vtts-dpten,
upten LIKE vtts-upten,
daten LIKE vtts-daten,
uaten LIKE vtts-uaten,
diff LIKE vtts-uaten,
END OF i_output.
DATA: g_repid LIKE sy-repid,
box,
expand(1),
is_layout TYPE slis_layout_alv,
ls_fieldcat TYPE slis_t_fieldcat_alv,
is_fieldcat TYPE slis_fieldcat_alv,
g_tabname_header TYPE slis_tabname,
g_tabname_item TYPE slis_tabname,
i_variant LIKE disvariant,
e_variant LIKE disvariant,
gs_keyinfo TYPE slis_keyinfo_alv.
DATA: BEGIN OF i_head OCCURS 0,
tdlnr LIKE vttk-tdlnr,
tknum LIKE vttk-tknum.
DATA expand(1).
DATA: END OF i_head.
DATA: BEGIN OF i_item OCCURS 0,
tdlnr LIKE vttk-tdlnr,
tknum LIKE vttk-tknum,
zbolnr LIKE vttp-zbolnr,
kunnr LIKE vbak-kunnr,
rort01 LIKE kna1-ort01,
rregio LIKE kna1-regio,
kunnz LIKE vtts-kunnz,
zort01 LIKE kna1-ort01,
zregio LIKE kna1-regio,
dpten LIKE vtts-dpten,
upten LIKE vtts-upten,
daten LIKE vtts-daten,
uaten LIKE vtts-uaten,
diff LIKE vtts-uaten,
col(3),
END OF i_item.
DATA: x_item LIKE i_item OCCURS 0 WITH HEADER LINE.
INITIALIZATION.
s_ship = text-002.
s_detl = text-003.
g_repid = sy-repid.
g_tabname_header = 'I_HEAD'.
g_tabname_item = 'I_ITEM'.
*----------------------------------------------------------------------*
*AT Selection Screen Output Event
*----------------------------------------------------------------------*
AT SELECTION-SCREEN OUTPUT.
IF zreturn NE 'X'.
CLEAR p_code.
ENDIF.
CASE p_code.
WHEN space.
CLEAR: s_tknum, s_vsart, s_tplst, s_tdlnr, s_sold,
s_kunnz, s_dplen.
REFRESH: s_tknum, s_vsart, s_tplst, s_tdlnr, s_sold,
s_kunnz, s_dplen.
LOOP AT SCREEN.
IF screen-name CS 'S_TKNUM' OR screen-name CS 'S_VSART' OR
screen-name CS 'S_DPLEN' OR screen-name CS 'S_TPLST' OR
screen-name CS 'S_TDLNR' OR screen-name CS 'S_SOLD' OR
screen-name CS 'S_KUNNZ'.
screen-input = '0'.
screen-invisible = '1'.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
WHEN 'SHIP'.
CLEAR: s_vsart, s_tplst, s_tdlnr, s_sold, s_kunnz, s_dplen.
REFRESH: s_vsart, s_tplst, s_tdlnr, s_sold, s_kunnz, s_dplen.
LOOP AT SCREEN.
IF screen-name CS 'S_VSART' OR screen-name CS 'S_DPLEN' OR
screen-name CS 'S_TPLST' OR screen-name CS 'S_TDLNR' OR
screen-name CS 'S_SOLD' OR screen-name CS 'S_KUNNZ'.
screen-input = '0'.
screen-invisible = '1'.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
SET CURSOR FIELD 'S_TKNUM'.
WHEN 'DETL'.
CLEAR: s_tknum.
REFRESH: s_tknum.
LOOP AT SCREEN.
IF screen-name CS 'S_TKNUM'.
screen-input = '0'.
screen-invisible = '1'.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
SET CURSOR FIELD 'S_DPLEN'.
ENDCASE.
*----------------------------------------------------------------------*
*AT Selection Screen Event
*----------------------------------------------------------------------*
AT SELECTION-SCREEN.
IF sy-ucomm EQ 'SHIP' OR
sy-ucomm EQ 'DETL'.
p_code = sy-ucomm.
zreturn = 'X'.
EXIT.
ENDIF.
IF p_code IS INITIAL.
MESSAGE e001.
ENDIF.
* CASE p_code.
* WHEN 'SHIP'.
* IF s_tknum[] IS INITIAL.
* MESSAGE e002.
* ENDIF.
* SET CURSOR FIELD 'S_TKNUM'.
* WHEN 'DETL'.
* IF s_dplen[] IS INITIAL.
* MESSAGE e003.
* ENDIF.
* SET CURSOR FIELD 'S_DPLEN'.
* ENDCASE.
*----------------------------------------------------------------------*
*Start-Of-Selection Event
*----------------------------------------------------------------------*
START-OF-SELECTION.
CASE p_code.
WHEN 'SHIP'.
IF s_tknum[] IS INITIAL.
MESSAGE e002.
SET CURSOR FIELD 'S_TKNUM'.
ELSE.
PERFORM get_shipment_data.
ENDIF.
WHEN 'DETL'.
IF s_dplen[] IS INITIAL.
MESSAGE e003.
SET CURSOR FIELD 'S_DPLEN'.
ELSE.
PERFORM get_ship_data.
ENDIF.
ENDCASE.
is_layout-header_text = 'HEADER'.
is_layout-item_text = 'ITEM'.
is_layout-default_item = ' '.
is_layout-no_keyfix = 'X'.
is_layout-expand_fieldname = 'EXPAND'.
is_layout-box_tabname = g_tabname_item.
is_layout-zebra = 'X'.
is_layout-info_fieldname = 'COL'.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
i_program_name = g_repid
i_internal_tabname = g_tabname_header
i_client_never_display = 'X'
i_inclname = g_repid
CHANGING
ct_fieldcat = ls_fieldcat
EXCEPTIONS
inconsistent_interface = 1
program_error = 2
OTHERS = 3.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
i_program_name = g_repid
i_internal_tabname = g_tabname_item
i_client_never_display = 'X'
i_inclname = g_repid
CHANGING
ct_fieldcat = ls_fieldcat
EXCEPTIONS
inconsistent_interface = 1
program_error = 2
OTHERS = 3.
is_fieldcat-tech = 'X'.
MODIFY ls_fieldcat FROM is_fieldcat TRANSPORTING tech
WHERE tech = ' ' AND
( fieldname = 'LIGHTS' OR
fieldname = 'EXPAND' ).
CLEAR is_fieldcat.
READ TABLE ls_fieldcat INTO is_fieldcat
WITH KEY tabname = 'I_HEAD'
fieldname = 'TDLNR'.
is_fieldcat-seltext_l = 'Forwarding Agent'.
is_fieldcat-sp_group = 'X'.
is_fieldcat-ddictxt = 'L'.
is_fieldcat-col_pos = '1'.
MODIFY ls_fieldcat FROM is_fieldcat INDEX sy-tabix.
CLEAR is_fieldcat.
READ TABLE ls_fieldcat INTO is_fieldcat
WITH KEY tabname = 'I_HEAD'
fieldname = 'TKNUM'.
is_fieldcat-seltext_l = 'Shipment'.
is_fieldcat-sp_group = 'X'.
is_fieldcat-ddictxt = 'L'.
is_fieldcat-col_pos = '2'.
MODIFY ls_fieldcat FROM is_fieldcat INDEX sy-tabix.
CLEAR is_fieldcat.
READ TABLE ls_fieldcat INTO is_fieldcat
WITH KEY tabname = 'I_ITEM'
fieldname = 'TDLNR'.
is_fieldcat-seltext_l = 'Forwarding Agent'.
is_fieldcat-sp_group = 'X'.
is_fieldcat-ddictxt = 'L'.
is_fieldcat-no_out = 'X'.
MODIFY ls_fieldcat FROM is_fieldcat INDEX sy-tabix.
CLEAR is_fieldcat.
READ TABLE ls_fieldcat INTO is_fieldcat
WITH KEY tabname = 'I_ITEM'
fieldname = 'TKNUM'.
is_fieldcat-seltext_l = 'Shipment'.
is_fieldcat-sp_group = 'X'.
is_fieldcat-ddictxt = 'L'.
is_fieldcat-no_out = 'X'.
MODIFY ls_fieldcat FROM is_fieldcat INDEX sy-tabix.
CLEAR is_fieldcat.
READ TABLE ls_fieldcat INTO is_fieldcat
WITH KEY tabname = 'I_ITEM'
fieldname = 'ZBOLNR'.
is_fieldcat-seltext_l = 'BOL'.
is_fieldcat-sp_group = 'X'.
is_fieldcat-ddictxt = 'L'.
is_fieldcat-outputlen = 10.
MODIFY ls_fieldcat FROM is_fieldcat INDEX sy-tabix.
CLEAR is_fieldcat.
READ TABLE ls_fieldcat INTO is_fieldcat
WITH KEY tabname = 'I_ITEM'
fieldname = 'KUNNR'.
is_fieldcat-seltext_l = 'Sold To'.
is_fieldcat-sp_group = 'X'.
is_fieldcat-ddictxt = 'L'.
is_fieldcat-outputlen = 10.
MODIFY ls_fieldcat FROM is_fieldcat INDEX sy-tabix.
CLEAR is_fieldcat.
READ TABLE ls_fieldcat INTO is_fieldcat
WITH KEY tabname = 'I_ITEM'
fieldname = 'RORT01'.
is_fieldcat-seltext_l = 'City'.
is_fieldcat-sp_group = 'X'.
is_fieldcat-ddictxt = 'L'.
is_fieldcat-outputlen = 18.
MODIFY ls_fieldcat FROM is_fieldcat INDEX sy-tabix.
CLEAR is_fieldcat.
READ TABLE ls_fieldcat INTO is_fieldcat
WITH KEY tabname = 'I_ITEM'
fieldname = 'RREGIO'.
is_fieldcat-seltext_l = 'Region'.
is_fieldcat-sp_group = 'X'.
is_fieldcat-ddictxt = 'L'.
is_fieldcat-outputlen = 5.
MODIFY ls_fieldcat FROM is_fieldcat INDEX sy-tabix.
CLEAR is_fieldcat.
READ TABLE ls_fieldcat INTO is_fieldcat
WITH KEY tabname = 'I_ITEM'
fieldname = 'KUNNZ'.
is_fieldcat-seltext_l = 'Ship To'.
is_fieldcat-sp_group = 'X'.
is_fieldcat-ddictxt = 'L'.
is_fieldcat-outputlen = 10.
MODIFY ls_fieldcat FROM is_fieldcat INDEX sy-tabix.
CLEAR is_fieldcat.
READ TABLE ls_fieldcat INTO is_fieldcat
WITH KEY tabname = 'I_ITEM'
fieldname = 'ZORT01'.
is_fieldcat-seltext_l = 'City'.
is_fieldcat-sp_group = 'X'.
is_fieldcat-ddictxt = 'L'.
is_fieldcat-outputlen = 18.
MODIFY ls_fieldcat FROM is_fieldcat INDEX sy-tabix.
CLEAR is_fieldcat.
READ TABLE ls_fieldcat INTO is_fieldcat
WITH KEY tabname = 'I_ITEM'
fieldname = 'ZREGIO'.
is_fieldcat-seltext_l = 'Region'.
is_fieldcat-sp_group = 'X'.
is_fieldcat-ddictxt = 'L'.
is_fieldcat-outputlen = 5.
MODIFY ls_fieldcat FROM is_fieldcat INDEX sy-tabix.
CLEAR is_fieldcat.
READ TABLE ls_fieldcat INTO is_fieldcat
WITH KEY tabname = 'I_ITEM'
fieldname = 'DPTEN'.
is_fieldcat-seltext_l = 'Pld Date'.
is_fieldcat-sp_group = 'X'.
is_fieldcat-ddictxt = 'L'.
MODIFY ls_fieldcat FROM is_fieldcat INDEX sy-tabix.
CLEAR is_fieldcat.
READ TABLE ls_fieldcat INTO is_fieldcat
WITH KEY tabname = 'I_ITEM'
fieldname = 'UPTEN'.
is_fieldcat-seltext_l = 'Pld Time'.
is_fieldcat-sp_group = 'X'.
is_fieldcat-ddictxt = 'L'.
MODIFY ls_fieldcat FROM is_fieldcat INDEX sy-tabix.
CLEAR is_fieldcat.
READ TABLE ls_fieldcat INTO is_fieldcat
WITH KEY tabname = 'I_ITEM'
fieldname = 'DATEN'.
is_fieldcat-seltext_l = 'Act Date'.
is_fieldcat-sp_group = 'X'.
is_fieldcat-ddictxt = 'L'.
MODIFY ls_fieldcat FROM is_fieldcat INDEX sy-tabix.
CLEAR is_fieldcat.
READ TABLE ls_fieldcat INTO is_fieldcat
WITH KEY tabname = 'I_ITEM'
fieldname = 'UATEN'.
is_fieldcat-seltext_l = 'Act Time'.
is_fieldcat-sp_group = 'X'.
is_fieldcat-ddictxt = 'L'.
MODIFY ls_fieldcat FROM is_fieldcat INDEX sy-tabix.
CLEAR is_fieldcat.
READ TABLE ls_fieldcat INTO is_fieldcat
WITH KEY tabname = 'I_ITEM'
fieldname = 'DIFF'.
is_fieldcat-seltext_l = 'Diff'.
is_fieldcat-sp_group = 'X'.
is_fieldcat-ddictxt = 'L'.
MODIFY ls_fieldcat FROM is_fieldcat INDEX sy-tabix.
i_variant-report = sy-repid.
i_variant-username = sy-uname.
gs_keyinfo-header01 = 'TDLNR'.
gs_keyinfo-header02 = 'TKNUM'.
gs_keyinfo-item01 = 'TDLNR'.
gs_keyinfo-item02 = 'TKNUM'.
CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
EXPORTING
i_callback_program = g_repid
is_layout = is_layout
it_fieldcat = ls_fieldcat[]
i_tabname_header = g_tabname_header
i_tabname_item = g_tabname_item
i_callback_pf_status_set = 'LOCAL_PF_STATUS'
* i_callback_user_command = 'USER_COMMAND'
is_variant = i_variant
i_save = 'A'
is_keyinfo = gs_keyinfo
TABLES
t_outtab_header = i_head
t_outtab_item = i_item
EXCEPTIONS
program_error = 1
OTHERS = 2.
*&---------------------------------------------------------------------*
*& Form GET_SHIPMENT_DATA
*&---------------------------------------------------------------------*
FORM local_pf_status USING extab TYPE slis_t_extab.
SET PF-STATUS 'STANDARD' EXCLUDING extab.
ENDFORM. " LOCAL_PF_STATUS
*&---------------------------------------------------------------------*
*& Form GET_SHIPMENT_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM get_shipment_data.
CLEAR: i_ship, i_bol, lines.
REFRESH: i_ship, i_bol.
SELECT * INTO CORRESPONDING FIELDS OF TABLE i_ship
FROM vttk AS a JOIN vtts AS b
ON a~tknum EQ b~tknum
WHERE a~tknum IN s_tknum.
DESCRIBE TABLE i_ship LINES lines.
IF lines IS INITIAL.
EXIT.
ELSE.
SELECT DISTINCT tknum zzlvtts zbolnr
INTO CORRESPONDING FIELDS OF TABLE i_bol
FROM vttp
FOR ALL ENTRIES IN i_ship
WHERE tknum EQ i_ship-tknum
AND zzlvtts EQ i_ship-tsrfo.
LOOP AT i_bol.
IF i_bol-tknum EQ i_bol-zbolnr(10).
SELECT SINGLE vbeln INTO vttp-vbeln FROM vttp
WHERE tknum EQ i_bol-tknum
AND zzlvtts EQ i_bol-zzlvtts.
CLEAR i_bol-zbolnr.
i_bol-zbolnr = vttp-vbeln.
SELECT SINGLE vgbel INTO lips-vgbel FROM lips
WHERE vbeln EQ i_bol-zbolnr.
IF sy-subrc EQ 0.
SELECT SINGLE kunnr INTO i_bol-kunnr FROM vbak
WHERE vbeln EQ lips-vgbel.
MODIFY i_bol TRANSPORTING kunnr.
ENDIF.
ELSE.
i_bol-zbolnr = vttp-vbeln.
SELECT SINGLE vgbel INTO lips-vgbel FROM lips
WHERE vbeln EQ i_bol-zbolnr.
IF sy-subrc EQ 0.
SELECT SINGLE kunnr INTO i_bol-kunnr FROM vbak
WHERE vbeln EQ lips-vgbel.
MODIFY i_bol TRANSPORTING kunnr.
ENDIF.
ENDIF.
CLEAR: lips, i_bol.
ENDLOOP.
SELECT * APPENDING CORRESPONDING FIELDS OF TABLE i_adrc
FROM kna1
FOR ALL ENTRIES IN i_ship
WHERE kunnr EQ i_ship-kunnz.
SELECT * APPENDING CORRESPONDING FIELDS OF TABLE i_adrc
FROM kna1
FOR ALL ENTRIES IN i_bol
WHERE kunnr EQ i_bol-kunnr.
CLEAR: i_ship, i_bol, i_adrc, i_output.
REFRESH i_output.
LOOP AT i_ship.
READ TABLE i_bol WITH KEY tknum = i_ship-tknum
zzlvtts = i_ship-tsrfo.
READ TABLE i_adrc WITH KEY kunnr = i_ship-kunnz.
MOVE-CORRESPONDING: i_ship TO i_output.
MOVE: i_bol-zbolnr TO i_output-zbolnr,
i_bol-kunnr TO i_output-kunnr.
MOVE: i_adrc-regio TO i_output-zregio,
i_adrc-ort01 TO i_output-zort01.
READ TABLE i_adrc WITH KEY kunnr = i_bol-kunnr.
MOVE: i_adrc-regio TO i_output-rregio,
i_adrc-ort01 TO i_output-rort01.
APPEND i_output.
CLEAR: i_ship, i_bol, i_adrc, i_output.
ENDLOOP.
SORT i_output BY tdlnr.
CLEAR: btotal, btime, bpercent.
LOOP AT i_output.
AT NEW tknum.
* WRITE:/ i_output-tdlnr, i_output-tknum.
i_head-tdlnr = i_output-tdlnr.
i_head-tknum = i_output-tknum.
APPEND i_head.
ENDAT.
AT NEW tknum.
* WRITE:/ i_output-tknum.
ENDAT.
* WRITE:/ i_output-zbolnr, i_output-kunnr, i_output-rort01,
* i_output-rregio, i_output-kunnz, i_output-zort01,
* i_output-zregio, i_output-dpten, i_output-upten,
* i_output-daten, i_output-uaten, i_output-diff.
MOVE-CORRESPONDING i_output TO i_item.
APPEND i_item.
btotal = btotal + 1.
IF i_output-diff IS INITIAL.
btime = btime + 1.
ENDIF.
* AT END OF tknum.
** ULINE.
* ENDAT.
AT END OF tknum.
CLEAR i_output.
bpercent = ( btime / btotal ) * 100.
i_output-tdlnr = i_item-tdlnr.
i_output-tknum = i_item-tknum.
CLEAR i_item.
i_item-tdlnr = i_output-tdlnr.
i_item-tknum = i_output-tknum.
i_item-zbolnr = 'Summary'.
i_item-kunnr = btotal.
i_item-rort01 = btime.
i_item-rregio = bpercent.
i_item-col = 'C31'.
APPEND i_item.
* WRITE:/ i_output-tdlnr, text-005, btotal, btime, bpercent.
CLEAR: btotal, btime, bpercent.
* ULINE.
ENDAT.
CLEAR: i_output, i_item, i_head.
ENDLOOP.
ENDIF.
ENDFORM. " GET_SHIPMENT_DATA
*&---------------------------------------------------------------------*
*& Form GET_SHIP_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM get_ship_data.
CLEAR: i_ship, i_bol, lines.
REFRESH: i_ship, i_bol.
SELECT * INTO CORRESPONDING FIELDS OF TABLE i_ship
FROM vttk AS a JOIN vtts AS b
ON a~tknum EQ b~tknum
WHERE a~dplen IN s_dplen
AND a~tdlnr IN s_tdlnr
AND a~tplst IN s_tplst
AND a~vsart IN s_vsart
AND b~kunnz IN s_kunnz.
DESCRIBE TABLE i_ship LINES lines.
IF lines IS INITIAL.
EXIT.
ENDIF.
ENDFORM. " GET_SHIP_DATA</b>
Regards
vijay
Message was edited by: Vijay Babu Dudla
User | Count |
---|---|
87 | |
10 | |
10 | |
10 | |
7 | |
6 | |
6 | |
5 | |
5 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.