Double Header in ALV Report
Hi,
Is there any way of putting double headers to an ALV report?.
Example:
JANUARY
WEEK1 WEEK2 WEEK3 WEEK4
Rgds,
Jose
Hi Jose,
ALV Header
http://abap4.tripod.com/download/alvstub.txt
http://www.sapdevelopment.co.uk/reporting/alv/alvgrid_endlist.htm
If using OOPs approach Refer Sample code:
data: o_html TYPE REF TO cl_dd_document.
CLASS lcl_event_receiver IMPLEMENTATION.
*-- Top of Page
METHOD handle_print_top_of_page.
ENDMETHOD. "handle_print_top_of_page
METHOD handle_top_of_page.
ENDMETHOD. "handle_top_of_page
ENDCLASS. "lcl_event_receiver IMPLEMENTATION
DATA: lws_text TYPE sdydo_text_element.
IF cl_gui_alv_grid=>offline( ) IS INITIAL.
*-- Object for HTML top container
CREATE OBJECT o_html
EXPORTING style = 'ALV_GRID'
background_color = 35.
*-- Top of Page
CALL METHOD o_alvgrid->list_processing_events
EXPORTING
i_event_name = 'TOP_OF_PAGE'
i_dyndoc_id = o_html.
*-- Total Record Text
CALL METHOD o_html->add_text
EXPORTING
text = text-012
sap_emphasis = text-015.
CALL METHOD o_html->add_gap
EXPORTING
width = 8.
**-- Total record Value
lws_text = cnt_total.
CALL METHOD o_html->add_text
EXPORTING
text = lws_text
sap_emphasis = text-015.
CLEAR lws_text.
CALL METHOD o_html->new_line
EXPORTING
repeat = 1.
Reward Points if this Helps.
Manish
Similar Messages
-
How to add the double headings in Alv Report.
Hi All,
Plz suggest me how to add the double headings in ALv Report.
RamHi,
Try out this program....
REPORT ypm_historycard_rep.
TYPE-POOLS : slis.
DATA : it_cbm TYPE STANDARD TABLE OF mara.
DATA : it_layout TYPE STANDARD TABLE OF slis_layout_alv WITH HEADER LINE,
wa_fcat TYPE slis_fieldcat_alv,
it_fcat TYPE slis_t_fieldcat_alv.
START-OF-SELECTION.
SELECT *
FROM mara
INTO CORRESPONDING FIELDS OF TABLE it_cbm
where matnr = 'D80K7'.
END-OF-SELECTION.
it_layout-zebra = 'X'.
it_layout-colwidth_optimize = 'X'.
it_layout-f2code = '&ETA'.
APPEND it_layout.
DEFINE macro4fcat.
wa_fcat-col_pos = &1.
wa_fcat-fieldname = &2.
wa_fcat-tabname = &3.
wa_fcat-seltext_l = &4.
append wa_fcat to it_fcat.
clear wa_fcat.
END-OF-DEFINITION.
macro4fcat '1' 'MATNR' 'IT_CBM' 'MATERIAL NO' .
DESCRIBE TABLE it_cbm.
IF sy-ucomm = '&F03'.
MESSAGE 'hi hello good morning "press enter button" this is quiz' TYPE 'S'.
ENDIF.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = sy-repid
i_callback_html_top_of_page = 'HTML_TOP_OF_PAGE'
is_layout = it_layout
it_fieldcat = it_fcat
i_save = 'A'
TABLES
t_outtab = it_cbm
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 html_top_of_page
* text
* -->TOP text
FORM html_top_of_page USING top TYPE REF TO cl_dd_document.
DATA: l_text(255) TYPE c.
DATA: text1(255) TYPE c.
DATA: t_header TYPE REF TO cl_dd_table_element ,
wa_header TYPE REF TO cl_dd_table_area.
CALL METHOD top->add_gap
EXPORTING
width = 10.
CALL METHOD top->add_text
EXPORTING
text = 'hello'
sap_style = 'HEADING'
CALL METHOD top->add_gap
EXPORTING
width = 20.
CALL METHOD top->add_text
EXPORTING
text = 'HOW ARE YOU'
sap_style = 'HEADING'.
CALL METHOD TOP->new_line
* EXPORTING
* repeat =
CALL METHOD top->add_gap
EXPORTING
width = 50.
CALL METHOD top->add_text
EXPORTING
text = '____________________________________________________________'
sap_style = 'HEADING'.
CALL METHOD TOP->new_line
* EXPORTING
* repeat =
CALL METHOD top->add_gap
EXPORTING
width = 90.
CALL METHOD top->add_text
EXPORTING
text = 'YOU CAN TRY LIKE THIS'
sap_style = 'HEADING'.
ENDFORM. "html_top_of_page
Regards
Debarshi -
Double Click on ALV Report Output, Bringing to selections creen
Hello Gurus,
Please help me When i do double click on ALV Report output , it is going back to Selection screen, actually its working as Back button. Now how to stop it.. I did debugging but i cannot trace it.PERFORM SUB_CREATE_FCAT.
DATA W_REPID LIKE SY-REPID.
W_REPID = SY-REPID.
ls_layout-colwidth_optimize = 'X'.
ls_layout-zebra = 'X'.
PERFORM SUB_SORT.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
* I_INTERFACE_CHECK = ' '
* I_BYPASSING_BUFFER = ' '
* I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = SY-CPROG
I_CALLBACK_PF_STATUS_SET = 'STATUS'
I_CALLBACK_USER_COMMAND = 'C_USERCOMMAND '
* I_CALLBACK_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_END_OF_LIST = ' '
* I_STRUCTURE_NAME =
* I_BACKGROUND_ID = ' '
* I_GRID_TITLE =
* I_GRID_SETTINGS =
IS_LAYOUT = ls_layout
IT_FIELDCAT = IT_FIELDCAT
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS =
IT_SORT = IT_SORT
* IT_FILTER =
* IS_SEL_HIDE =
* I_DEFAULT = 'X'
I_SAVE = 'U'
* IS_VARIANT =
* IT_EVENTS =
* IT_EVENT_EXIT =
* IS_PRINT =
* IS_REPREP_ID =
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* I_HTML_HEIGHT_TOP = 0
* I_HTML_HEIGHT_END = 0
* IT_ALV_GRAPHICS =
* IT_HYPERLINK =
* IT_ADD_FIELDCAT =
* IT_EXCEPT_QINFO =
* IR_SALV_FULLSCREEN_ADAPTER =
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
TABLES
t_outtab = T_FINAL
* EXCEPTIONS
* PROGRAM_ERROR = 1
* OTHERS = 2
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF. -
Double Click in ALV Report in Web dynpro ABAP4
Hi All,
I am very much new to WDA4 , can anybody plz guide me how to enable double click in ALV Report in Web dynpro ..
Plz help it is urgent .....
Thnks
SahilHi All,
I am very much new to WDA4 , can anybody plz guide me how to enable double click in ALV Report in Web dynpro ..
Plz help it is urgent .....
Thnks
Sahil -
Hi all,
I have below output in alv report.
matnr 101_102 121_122 123_124
10000 23 34 45
10001 34 34 456
if i m clicking on 23 in combination of 121_122 and 10000 then i want to see detail for 121_122 and if i m clicking on 34 combination of 101_102 then i want to see detail according to it.
plz help me. its urgent.
thanks in advance.Check the below report and do compare and modify the report as per your req.
REPORT ZZ_22038_22098_002 NO STANDARD PAGE HEADING LINE-SIZE 650
MESSAGE-ID ZZ_9838 .
TYPE-POOLS: SLIS.
*type declaration for values from ekko
TYPES: BEGIN OF I_EKKO,
EBELN LIKE EKKO-EBELN,
AEDAT LIKE EKKO-AEDAT,
BUKRS LIKE EKKO-BUKRS,
BSART LIKE EKKO-BSART,
LIFNR LIKE EKKO-LIFNR,
END OF I_EKKO.
DATA: IT_EKKO TYPE STANDARD TABLE OF I_EKKO INITIAL SIZE 0,
WA_EKKO TYPE I_EKKO.
*type declaration for values from ekpo
TYPES: BEGIN OF I_EKPO,
EBELN LIKE EKPO-EBELN,
EBELP LIKE EKPO-EBELP,
MATNR LIKE EKPO-MATNR,
MENGE LIKE EKPO-MENGE,
MEINS LIKE EKPO-MEINS,
NETPR LIKE EKPO-NETPR,
END OF I_EKPO.
DATA: IT_EKPO TYPE STANDARD TABLE OF I_EKPO INITIAL SIZE 0,
WA_EKPO TYPE I_EKPO .
*variable for Report ID
DATA: V_REPID LIKE SY-REPID .
*declaration for fieldcatalog
DATA: I_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
DATA: IT_LISTHEADER TYPE SLIS_T_LISTHEADER.
declaration for events table where user comand or set PF status will
be defined
DATA: V_EVENTS TYPE SLIS_T_EVENT,
WA_EVENT TYPE SLIS_ALV_EVENT.
declartion for layout
DATA: ALV_LAYOUT TYPE SLIS_LAYOUT_ALV.
declaration for variant(type of display we want)
DATA: I_VARIANT TYPE DISVARIANT,
I_VARIANT1 TYPE DISVARIANT,
I_SAVE(1) TYPE C.
*PARAMETERS : p_var TYPE disvariant-variant.
*Title displayed when the alv list is displayed
DATA: I_TITLE_EKKO TYPE LVC_TITLE VALUE 'FIRST LIST DISPLAYED'.
DATA: I_TITLE_EKPO TYPE LVC_TITLE VALUE 'SECONDRY LIST DISPLAYED'.
INITIALIZATION.
V_REPID = SY-REPID.
PERFORM BUILD_FIELDCATLOG.
PERFORM EVENT_CALL.
PERFORM POPULATE_EVENT.
START-OF-SELECTION.
PERFORM DATA_RETRIEVAL.
PERFORM BUILD_LISTHEADER USING IT_LISTHEADER.
PERFORM DISPLAY_ALV_REPORT.
*& Form BUILD_FIELDCATLOG
Fieldcatalog has all the field details from ekko
FORM BUILD_FIELDCATLOG.
WA_FIELDCAT-TABNAME = 'IT_EKKO'.
WA_FIELDCAT-FIELDNAME = 'EBELN'.
WA_FIELDCAT-SELTEXT_M = 'PO NO.'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-TABNAME = 'IT_EKKO'.
WA_FIELDCAT-FIELDNAME = 'AEDAT'.
WA_FIELDCAT-SELTEXT_M = 'DATE.'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-TABNAME = 'IT_EKKO'.
WA_FIELDCAT-FIELDNAME = 'BUKRS'.
WA_FIELDCAT-SELTEXT_M = 'COMPANY CODE'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-TABNAME = 'IT_EKKO'.
WA_FIELDCAT-FIELDNAME = 'BUKRS'.
WA_FIELDCAT-SELTEXT_M = 'DOCMENT TYPE'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-TABNAME = 'IT_EKKO'.
WA_FIELDCAT-FIELDNAME = 'LIFNR'.
WA_FIELDCAT-NO_OUT = 'X'.
WA_FIELDCAT-SELTEXT_M = 'VENDOR CODE'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
ENDFORM. "BUILD_FIELDCATLOG
*& Form EVENT_CALL
we get all events - TOP OF PAGE or USER COMMAND in table v_events
FORM EVENT_CALL.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = V_EVENTS
EXCEPTIONS
LIST_TYPE_WRONG = 1
OTHERS = 2
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. "EVENT_CALL
*& Form POPULATE_EVENT
Events populated for TOP OF PAGE & USER COMAND
FORM POPULATE_EVENT.
READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'TOP_OF_PAGE'.
IF SY-SUBRC EQ 0.
WA_EVENT-FORM = 'TOP_OF_PAGE'.
MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =
WA_EVENT-FORM.
ENDIF.
READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'USER_COMMAND'.
IF SY-SUBRC EQ 0.
WA_EVENT-FORM = 'USER_COMMAND'.
MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =
WA_EVENT-NAME.
ENDIF.
ENDFORM. "POPULATE_EVENT
*& Form data_retrieval
retreiving values from the database table ekko
FORM DATA_RETRIEVAL.
SELECT EBELN AEDAT BUKRS BSART LIFNR FROM EKKO INTO TABLE IT_EKKO.
ENDFORM. "data_retrieval
*& Form bUild_listheader
text
-->I_LISTHEADEtext
FORM BUILD_LISTHEADER USING I_LISTHEADER TYPE SLIS_T_LISTHEADER.
DATA HLINE TYPE SLIS_LISTHEADER.
HLINE-INFO = 'this is my first alv pgm'.
HLINE-TYP = 'H'.
ENDFORM. "build_listheader
*& Form display_alv_report
text
FORM DISPLAY_ALV_REPORT.
V_REPID = SY-REPID.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = V_REPID
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE'
I_GRID_TITLE = I_TITLE_EKKO
I_GRID_SETTINGS =
IS_LAYOUT = ALV_LAYOUT
IT_FIELDCAT = I_FIELDCAT[]
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
i_default = 'ZLAY1'
I_SAVE = 'A'
is_variant = i_variant
IT_EVENTS = V_EVENTS
TABLES
T_OUTTAB = IT_EKKO
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. "display_alv_report
*& Form TOP_OF_PAGE
text
FORM TOP_OF_PAGE.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = IT_LISTHEADER
i_logo =
I_END_OF_LIST_GRID =
ENDFORM. "TOP_OF_PAGE
*& Form USER_COMMAND
text
-->R_UCOMM text
-->, text
-->RS_SLEFIELDtext
FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM
RS_SELFIELD TYPE SLIS_SELFIELD.
CASE R_UCOMM.
WHEN '&IC1'.
READ TABLE IT_EKKO INTO WA_EKKO INDEX RS_SELFIELD-TABINDEX.
PERFORM BUILD_FIELDCATLOG_EKPO.
PERFORM EVENT_CALL_EKPO.
PERFORM POPULATE_EVENT_EKPO.
PERFORM DATA_RETRIEVAL_EKPO.
PERFORM BUILD_LISTHEADER_EKPO USING IT_LISTHEADER.
PERFORM DISPLAY_ALV_EKPO.
ENDCASE.
ENDFORM. "user_command
*& Form BUILD_FIELDCATLOG_EKPO
text
FORM BUILD_FIELDCATLOG_EKPO.
WA_FIELDCAT-TABNAME = 'IT_EKPO'.
WA_FIELDCAT-FIELDNAME = 'EBELN'.
WA_FIELDCAT-SELTEXT_M = 'PO NO.'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-TABNAME = 'IT_EKPO'.
WA_FIELDCAT-FIELDNAME = 'EBELP'.
WA_FIELDCAT-SELTEXT_M = 'LINE NO'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-TABNAME = 'I_EKPO'.
WA_FIELDCAT-FIELDNAME = 'MATNR'.
WA_FIELDCAT-SELTEXT_M = 'MATERIAL NO.'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-TABNAME = 'I_EKPO'.
WA_FIELDCAT-FIELDNAME = 'MENGE'.
WA_FIELDCAT-SELTEXT_M = 'QUANTITY'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-TABNAME = 'I_EKPO'.
WA_FIELDCAT-FIELDNAME = 'MEINS'.
WA_FIELDCAT-SELTEXT_M = 'UOM'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-TABNAME = 'I_EKPO'.
WA_FIELDCAT-FIELDNAME = 'NETPR'.
WA_FIELDCAT-SELTEXT_M = 'PRICE'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
ENDFORM. "BUILD_FIELDCATLOG_EKPO
*& Form event_call_ekpo
we get all events - TOP OF PAGE or USER COMMAND in table v_events
FORM EVENT_CALL_EKPO.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = V_EVENTS
EXCEPTIONS
LIST_TYPE_WRONG = 1
OTHERS = 2
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. "event_call_ekpo
*& Form POPULATE_EVENT
Events populated for TOP OF PAGE & USER COMAND
FORM POPULATE_EVENT_EKPO.
READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'TOP_OF_PAGE'.
IF SY-SUBRC EQ 0.
WA_EVENT-FORM = 'TOP_OF_PAGE'.
MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =
WA_EVENT-FORM.
ENDIF.
ENDFORM. "POPULATE_EVENT
*& Form TOP_OF_PAGE
text
FORM F_TOP_OF_PAGE.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = IT_LISTHEADER
i_logo =
I_END_OF_LIST_GRID =
ENDFORM. "TOP_OF_PAGE
*& Form USER_COMMAND
text
-->R_UCOMM text
-->, text
-->RS_SLEFIELDtext
*retreiving values from the database table ekko
FORM DATA_RETRIEVAL_EKPO.
SELECT EBELN EBELP MATNR MENGE MEINS NETPR FROM EKPO INTO TABLE IT_EKPO.
ENDFORM.
FORM BUILD_LISTHEADER_EKPO USING I_LISTHEADER TYPE SLIS_T_LISTHEADER.
DATA: HLINE1 TYPE SLIS_LISTHEADER.
HLINE1-TYP = 'H'.
HLINE1-INFO = 'CHECKING PGM'.
ENDFORM.
FORM DISPLAY_ALV_EKPO.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER = ' '
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = V_REPID
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = 'F_USER_COMMAND'
I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE'
I_CALLBACK_HTML_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME =
I_BACKGROUND_ID = ' '
I_GRID_TITLE = I_TITLE_EKPO
I_GRID_SETTINGS =
IS_LAYOUT =
IT_FIELDCAT = I_FIELDCAT[]
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT =
I_SAVE = 'A'
IS_VARIANT =
IT_EVENTS = V_EVENTS
TABLES
T_OUTTAB = IT_EKPO
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.
Thanks
Seshu -
Change Column Heading in ALV Report
Hi,
I have developed a ALV Report, showing correct output.
Problem is that Column Heading is not showing correct...means it is showing as per field name. But We want to change as per our understand. i.e. One column heading is like Unrestricted Stock but we want Unrestricted Stock...(BILF is an indicator)..
We have write in the code..
FORM build_fieldcat10.
CLEAR fieldcat_ln.
ADD 1 TO col_pos.
fieldcat_ln-ref_tabname = 'MARD'.
fieldcat_ln-fieldname = 'LABST'.
fieldcat_ln-seltext_m = 'BILF Unrest.Stock'.
fieldcat_ln-key = space.
fieldcat_ln-do_sum = space.
fieldcat_ln-col_pos = col_pos.
fieldcat_ln-no_out = space.
fieldcat_ln-qfieldname = space.
fieldcat_ln-hotspot = space.
APPEND fieldcat_ln TO fieldcat.
ENDFORM. " BUILD_FIELDCAT1
But after change the selection text...not showing correct text..How can i change Column heading???
Please help me..Thanks a lot dear..
My problem resolved by using SCRTEXT_L. -
Hi Experts,
I want to dispaly a P/L acount in ALV report format as given below , the items will diplay should be in Excel format as:
1.Current Month and YTD should be under in current Year Column it and again in next column Current
month and YTD should be under Last Year Column.
Current Year Last Year
ITEM No Current Month YTD Current Month YTD
Please reply me ASAP.
Thanksexample:
REPORT ZHIERSEQ_ALV.
TYPE-POOLS: slis. " ALV Global types
CONSTANTS :
c_x VALUE 'X',
c_gt_vbap TYPE slis_tabname VALUE 'GT_VBAP',
c_gt_vbak TYPE slis_tabname VALUE 'GT_VBAK'.
SELECTION-SCREEN :
SKIP, BEGIN OF LINE,COMMENT 5(27) v_1 FOR FIELD p_max. "#EC NEEDED
PARAMETERS p_max(02) TYPE n DEFAULT '10' OBLIGATORY.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN :
SKIP, BEGIN OF LINE,COMMENT 5(27) v_2 FOR FIELD p_expand. "#EC NEEDED
PARAMETERS p_expand AS CHECKBOX DEFAULT c_x.
SELECTION-SCREEN END OF LINE.
TYPES :
1st Table
BEGIN OF ty_vbak,
vbeln TYPE vbak-vbeln, " Sales document
kunnr TYPE vbak-kunnr, " Sold-to party
netwr TYPE vbak-netwr, " Net Value of the Sales Order
erdat TYPE vbak-erdat, " Creation date
waerk TYPE vbak-waerk, " SD document currency
expand TYPE xfeld,
END OF ty_vbak,
2nd Table
BEGIN OF ty_vbap,
vbeln TYPE vbap-vbeln, " Sales document
posnr TYPE vbap-posnr, " Sales document
matnr TYPE vbap-matnr, " Material number
arktx TYPE vbap-arktx, " Material description
netwr TYPE vbap-netwr, " Net Value of the Sales Order
waerk TYPE vbap-waerk, " SD document currency
END OF ty_vbap.
DATA :
1st Table
gt_vbak TYPE TABLE OF ty_vbak,
2nd Table
gt_vbap TYPE TABLE OF ty_vbap.
INITIALIZATION.
v_1 = 'Maximum of records to read'.
v_2 = 'With ''EXPAND'' field'.
START-OF-SELECTION.
Read Sales Document: Header Data
SELECT vbeln kunnr netwr waerk erdat
FROM vbak
UP TO p_max ROWS
INTO CORRESPONDING FIELDS OF TABLE gt_vbak.
IF gt_vbak[] IS NOT INITIAL.
Read Sales Document: Item Data
SELECT vbeln posnr matnr arktx netwr waerk
FROM vbap
INTO CORRESPONDING FIELDS OF TABLE gt_vbap
FOR ALL ENTRIES IN gt_vbak
WHERE vbeln = gt_vbak-vbeln.
ENDIF.
END-OF-SELECTION.
PERFORM f_display.
Form F_DISPLAY
FORM f_display.
Macro definition
DEFINE m_fieldcat.
ls_fieldcat-tabname = &1.
ls_fieldcat-fieldname = &2.
ls_fieldcat-ref_tabname = &3.
ls_fieldcat-cfieldname = &4. " Field with currency unit
append ls_fieldcat to lt_fieldcat.
END-OF-DEFINITION.
DEFINE m_sort.
ls_sort-tabname = &1.
ls_sort-fieldname = &2.
ls_sort-up = c_x.
append ls_sort to lt_sort.
END-OF-DEFINITION.
DATA:
ls_layout TYPE slis_layout_alv,
ls_keyinfo TYPE slis_keyinfo_alv,
ls_sort TYPE slis_sortinfo_alv,
lt_sort TYPE slis_t_sortinfo_alv," Sort table
ls_fieldcat TYPE slis_fieldcat_alv,
lt_fieldcat TYPE slis_t_fieldcat_alv." Field catalog
ls_layout-group_change_edit = c_x.
ls_layout-colwidth_optimize = c_x.
ls_layout-zebra = c_x.
ls_layout-detail_popup = c_x.
ls_layout-get_selinfos = c_x.
IF p_expand = c_x.
ls_layout-expand_fieldname = 'EXPAND'.
ENDIF.
Build field catalog and sort table
m_fieldcat c_gt_vbak 'VBELN' 'VBAK' ''.
m_fieldcat c_gt_vbak 'KUNNR' 'VBAK' ''.
m_fieldcat c_gt_vbak 'NETWR' 'VBAK' 'WAERK'.
m_fieldcat c_gt_vbak 'WAERK' 'VBAK' ''.
m_fieldcat c_gt_vbak 'ERDAT' 'VBAK' ''.
m_fieldcat c_gt_vbap 'POSNR' 'VBAP' ''.
m_fieldcat c_gt_vbap 'MATNR' 'VBAP' ''.
m_fieldcat c_gt_vbap 'ARKTX' 'VBAP' ''.
m_fieldcat c_gt_vbap 'NETWR' 'VBAP' 'WAERK'.
m_fieldcat c_gt_vbap 'WAERK' 'VBAP' ''.
m_sort c_gt_vbak 'KUNNR'.
m_sort c_gt_vbap 'NETWR'.
ls_keyinfo-header01 = 'VBELN'.
ls_keyinfo-item01 = 'VBELN'.
ls_keyinfo-item02 = 'POSNR'.
Dipslay Hierarchical list
CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
EXPORTING
i_callback_program = sy-cprog
i_callback_user_command = 'USER_COMMAND'
is_layout = ls_layout
it_fieldcat = lt_fieldcat
it_sort = lt_sort
i_tabname_header = c_gt_vbak
i_tabname_item = c_gt_vbap
is_keyinfo = ls_keyinfo
i_save = 'A'
TABLES
t_outtab_header = gt_vbak
t_outtab_item = gt_vbap
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. " F_LIST_DISPLAY
Form USER_COMMAND *
FORM user_command USING i_ucomm TYPE sy-ucomm
is_selfield TYPE slis_selfield. "#EC CALLED
DATA ls_vbak TYPE ty_vbak.
CASE i_ucomm.
WHEN '&IC1'. " Pick
CASE is_selfield-tabname.
WHEN c_gt_vbap.
WHEN c_gt_vbak.
READ TABLE gt_vbak INDEX is_selfield-tabindex INTO ls_vbak.
IF sy-subrc EQ 0.
Sales order number
SET PARAMETER ID 'AUN' FIELD ls_vbak-vbeln.
Display Sales Order
CALL TRANSACTION 'VA03' AND SKIP FIRST SCREEN.
ENDIF.
ENDCASE.
ENDCASE.
ENDFORM. " USER_COMMAND -
Heading in ALV report is showing up blank
Hello Friends
First of all thanks to you all for giving so much of help. I appreciate it.
I would appreciate if some could please let me know, why my code is not printing the header in my ALV report. It shows up as blank. I have written the Form 'TOP-OF-PAGE'.
Thanks a lot in advance
RamThis coding will give u the solution ....
this is an interactive ALV ...
*& Report ZMR001_MATERIAL_STOCK_VALUE
REPORT zmr001_material_stock_value.
MODULE MMxxxxxxxx. *
Objective :.......................................... *
Program : Updates Tables ( ) Downloads data ( ) *
Outputs List ( ) *
Technical Spec No ............... *
Date Created 07/12/2006 *
Author Jayakumar.T.... *
Location April Business / Banglore *
LDB ..... *
External Dependencies *
Amendment History *
Who Change ID Reason *
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ *
XXXXXXXXX AADDMMYYYY Where XXXX = Developers Name................. *
AA- Developers Initial ................................ *
Includes *
*INCLUDE : *
Tables *
*TABLES : *
TABLES : mchb , mara , mbew , tvkos , t001w.
Types Begin with TY_ *
*TYPES : *
TYPES : BEGIN OF ty_mchb,
matnr LIKE mchb-matnr,
charg LIKE mchb-charg,
clabs LIKE mchb-clabs,
werks LIKE mchb-werks,
spart LIKE mara-spart,
maktx LIKE makt-maktx,
value LIKE mchb-clabs,
total LIKE mchb-clabs,
END OF ty_mchb.
TYPE-POOLS: slis.
CONSTANTS:
c_formname_top_of_page TYPE slis_formname VALUE 'TOP_OF_PAGE'.
DATA gt_list_top_of_page TYPE slis_t_listheader.
Constants Begin with C_ *
*CONSTANTS: *
Data Begin with W_ *
*DATA : *
Infotypes ( HR Module Specific) *
*INFOTYPES : *
Internal tables Begin with IT_ *
*DATA : *
DATA : it_mchb TYPE TABLE OF ty_mchb,
wa_mchb TYPE ty_mchb ,
it_final TYPE TABLE OF ty_mchb,
wa_final TYPE ty_mchb,
it_temp TYPE TABLE OF ty_mchb,
wa_temp TYPE ty_mchb,
it_temp1 TYPE TABLE OF ty_mchb,
wa_temp1 TYPE ty_mchb
DATA: it_listheader TYPE slis_t_listheader.
Field Symbols Begin with FS_ *
*FIELD-SYMBOLS: *
Insert *
*INSERT : *
Select Options Begin with SO_ *
*SELECT-OPTIONS : *
Parameters Begin with PR_ *
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001 .
PARAMETERS : pr_vkorg LIKE tvko-vkorg OBLIGATORY .
SELECT-OPTIONS : so_werks FOR mchb-werks.
SELECT-OPTIONS : so_spart FOR mara-spart.
SELECTION-SCREEN END OF BLOCK b1.
Initialisation *
*INITIALISATION :
DATA: wa_variant LIKE disvariant , "Variant
wa_fieldcat TYPE slis_fieldcat_alv ,
it_fieldcat TYPE slis_t_fieldcat_alv ,
it_fieldcat1 TYPE slis_t_fieldcat_alv ,
wa_layout TYPE slis_layout_alv ,
wa_print TYPE slis_print_alv ,
it_sort TYPE slis_t_sortinfo_alv ,
it_sp_group TYPE slis_t_sp_group_alv ,
it_events TYPE slis_t_event ,
it_list_top_of_page TYPE slis_t_listheader,
w_title1 TYPE lvc_title,
w_datum LIKE sy-datum.
DATA slis_ev_top_of_page TYPE slis_formname VALUE 'TOP_OF_PAGE'.
DATA w_top_of_page TYPE slis_formname VALUE 'TOP_OF_PAGE'. " for top of page
DATA it_event TYPE slis_t_event.
INITIALIZATION.
PERFORM eventtab_build USING it_event[].
*set pf-status '002'.
At selection-screen *
AT SELECTION-SCREEN.
SELECT SINGLE * FROM tvkos WHERE vkorg = pr_vkorg AND spart IN so_spart.
IF sy-subrc NE 0 .
MESSAGE text-008 TYPE 'E'.
ENDIF.
SELECT SINGLE * FROM t001w WHERE vkorg = pr_vkorg AND werks IN so_werks.
IF sy-subrc NE 0 .
MESSAGE text-009 TYPE 'E'.
ENDIF.
S T A R T O F S E L E C T I O N *
START-OF-SELECTION.
SELECT mc~matnr charg clabs werks spart maktx
INTO CORRESPONDING
FIELDS OF TABLE it_mchb FROM mchb AS mc
INNER JOIN mara AS ma
ON mamatnr = mcmatnr
INNER JOIN makt AS mt
ON mamatnr = mtmatnr
WHERE werks IN so_werks AND
spart IN so_spart
AND spras = 'EN'
it_temp[] = it_mchb[].
SORT it_temp BY matnr.
DELETE ADJACENT DUPLICATES FROM it_temp COMPARING matnr.
LOOP AT it_temp INTO wa_temp.
it_temp1[] = it_mchb[].
DELETE it_temp1 WHERE matnr NE wa_temp-matnr.
LOOP AT it_temp1 INTO wa_temp1.
SUM.
EXIT.
ENDLOOP.
wa_final-matnr = wa_temp1-matnr.
wa_final-charg = wa_temp1-charg.
wa_final-maktx = wa_temp1-maktx.
wa_final-clabs = wa_temp1-clabs.
wa_final-werks = wa_temp1-werks.
wa_final-spart = wa_temp1-spart.
APPEND wa_final TO it_final.
ENDLOOP.
SORT it_mchb BY matnr.
LOOP AT it_mchb INTO wa_mchb.
ON CHANGE OF wa_mchb-matnr.
IF wa_final-matnr IS NOT INITIAL.
SELECT SINGLE * FROM mbew WHERE matnr = wa_final-matnr
AND bwkey = wa_final-werks.
IF mbew-vprsv = 'V'.
wa_final-value = mbew-verpr.
ELSEIF mbew-vprsv = 'S'.
wa_final-value = mbew-stprs.
ENDIF.
wa_final-total = wa_final-value * wa_final-clabs.
APPEND wa_final TO it_final.
CLEAR wa_final.
ENDIF.
ENDON.
wa_final-clabs = wa_mchb-clabs + wa_final-clabs .
wa_final-matnr = wa_mchb-matnr.
wa_final-werks = wa_mchb-werks.
wa_final-charg = wa_mchb-charg.
wa_final-maktx = wa_mchb-maktx.
ENDLOOP.
IF it_final IS INITIAL.
MESSAGE text-010 TYPE 'I'.
ELSE.
PERFORM fieldcat.
PERFORM display_data.
ENDIF.
LOOP AT it_mchb INTO wa_mchb.
WRITE : / , wa_mchb-matnr , wa_mchb-charg , wa_mchb-maktx , wa_mchb-clabs , wa_mchb-werks , wa_mchb-spart .
ENDLOOP.
WRITE : / , 'Jaya'.
LOOP AT it_final INTO wa_final.
WRITE : / , wa_final-matnr , wa_final-charg , wa_final-maktx , wa_final-clabs , wa_final-werks , wa_final-spart .
ENDLOOP.
*GET XX.
*END-OF-SELECTION.
E N D O F S E L E C T I O N *
At line selection *
*AT LINE-SELECTION.
User Command Processing *
*AT USER-COMMAND.
Top Of Page *
*TOP-OF-PAGE.
End Of Page *
*END-OF-PAGE.
FORM eventtab_build USING rt_events TYPE slis_t_event.
*"Registration of events to happen during list display
DATA: ls_event TYPE slis_alv_event.
to get the events
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = rt_events.
READ TABLE rt_events INTO ls_event WITH KEY name = slis_ev_top_of_page
IF sy-subrc = 0.
ls_event-form = slis_ev_top_of_page.
MODIFY rt_events FROM ls_event TRANSPORTING form WHERE
name = ls_event-form.
ENDIF.
READ TABLE rt_events INTO ls_event WITH KEY name = 'USER_COMMAND'.
IF sy-subrc EQ 0.
ls_event-form = 'USER_COMMAND'.
MODIFY rt_events FROM ls_event TRANSPORTING form WHERE name = ls_event-name.
ENDIF.
ENDFORM. "eventtab_build
*& Form fieldcat
FORM fieldcat .
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'MATNR'.
wa_fieldcat-seltext_m = text-002 .
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'MAKTX'.
wa_fieldcat-seltext_m = text-003 .
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'CLABS'.
wa_fieldcat-seltext_m = text-004 .
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'VALUE'.
wa_fieldcat-seltext_m = text-006 .
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'TOTAL'.
wa_fieldcat-seltext_m = text-007 .
APPEND wa_fieldcat TO it_fieldcat.
ENDFORM. "fieldcat
*& Form display_data
FORM display_data .
PERFORM comment_build USING gt_list_top_of_page[].
wa_layout-info_fieldname = 'LINE_COLOR'. " Line Color
wa_print-no_coverpage = 'X'.
wa_print-no_print_listinfos = 'X'. " Remove the default first page.
to get thr grid display
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = sy-repid
i_background_id = 'ALV_BACKGROUND'
i_callback_top_of_page = 'TOP_OF_PAGE'
i_callback_user_command = 'USER_COMMAND'
is_layout = wa_layout
it_fieldcat = it_fieldcat
i_default = 'X'
i_save = 'A'
it_events = it_event[]
is_print = wa_print
TABLES
t_outtab = it_final
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. " eventtab_build
*& Form comment_build
FORM comment_build USING lt_top_of_page TYPE slis_t_listheader.
DATA: ls_line TYPE slis_listheader.
CLEAR ls_line.
ls_line-typ = 'H'.
to get the company text
DATA w_name(50) TYPE c.
ls_line-info = text-005 .
APPEND ls_line TO lt_top_of_page.
CLEAR ls_line.
ls_line-typ = 'S'.
ls_line-info = ''.
APPEND ls_line TO lt_top_of_page.
ENDFORM. "comment_build
*& Form top_of_page
to print at top of page
FORM top_of_page.
to pass the comment bulid for the top of page into the alv
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = gt_list_top_of_page.
ENDFORM. "top_of_page
*& Form USER_COMMAND
text
-->R_UCOMM text
-->RS_SELFIELDtext
FORM user_command USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
CASE r_ucomm.
WHEN '&IC1'.
MESSAGE 'jj' TYPE 'I'.
READ TABLE it_final INTO wa_final INDEX rs_selfield-tabindex.
PERFORM build_fieldcatlog.
PERFORM event_call USING it_event[].
PERFORM POPULATE_EVENT_EKPO.
PERFORM data_retrieval.
PERFORM build_listheader USING it_listheader.
PERFORM DISPLAY_ALV.
ENDCASE.
ENDFORM. "user_command
*& Form BUILD_FIELDCATLOG
text
FORM build_fieldcatlog.
clear it_fieldcat1[].
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'MATNR'.
wa_fieldcat-seltext_m = text-002 .
APPEND wa_fieldcat TO it_fieldcat1.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'MAKTX'.
wa_fieldcat-seltext_m = text-003 .
APPEND wa_fieldcat TO it_fieldcat1.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'CHARG'.
wa_fieldcat-seltext_m = text-003 .
APPEND wa_fieldcat TO it_fieldcat1.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'CLABS'.
wa_fieldcat-seltext_m = text-004 .
APPEND wa_fieldcat TO it_fieldcat1.
ENDFORM. "BUILD_FIELDCATLOG
*& Form EVENT_CALL
text
-->RT_EVENTS text
FORM event_call USING rt_events TYPE slis_t_event.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = rt_events
EXCEPTIONS
LIST_TYPE_WRONG = 1
OTHERS = 2
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. "event_call
*& Form DATA_RETRIEVAL
text
FORM data_retrieval.
it_temp[] = it_mchb[].
DELETE it_temp WHERE matnr NE wa_final-matnr.
ENDFORM. "DATA_RETRIEVAL
*& Form BUILD_LISTHEADER
text
-->I_LISTHEADEtext
FORM build_listheader USING i_listheader TYPE slis_t_listheader.
DATA: hline1 TYPE slis_listheader.
hline1-typ = 'H'.
hline1-info = 'CHECKING PGM'.
ENDFORM. "BUILD_LISTHEADER
FORM DISPLAY_ALV.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER = ' '
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = sy-REPID
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = 'F_USER_COMMAND'
I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE'
I_CALLBACK_HTML_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME =
I_BACKGROUND_ID = ' '
I_GRID_TITLE = TITLE_EKPO
I_GRID_SETTINGS =
IS_LAYOUT =
IT_FIELDCAT = It_FIELDCAT1[]
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT =
I_SAVE = 'A'
IS_VARIANT =
IT_EVENTS = it_EVENTS[]
TABLES
T_OUTTAB = IT_temp[]
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. -
Two line column heading in ALV Report
Hi Experts,
My requirement is that I have to create an ALV report with columns having two lines of headings. Like a main heading called Consultants under which 5 to 10 columns of departments(Dept Num, Num of Ppl , Manager etc. ) and then Contractors(Name, Address Etc ) underwhich there would be 5 to 10 departments. Right now my report has the depts of...
How can i do that . If u would suggest by CL_SALV_TABLE then it would be great.
Thanks a lot !
Saui don't think you can do it using cl_gui_alv_grid or cl_salv_table.
-
Two column header in ALV Report
Hi Experts,
Can I have 2 headers in ALV report kind of one header and one sub header below that.
like i have to display a report having the same information for 3 systems so in header I can have the system name and below that
usual headers.
Thanks
Yogesh Guptait is is not possible using the ALV GRID function, ALV OO.
it is possible with ALV List function. you might loose some functionalities layout etc.
check this sample..
cehck this image..
http://img100.imageshack.us/img100/3846/output6ef.th.gif
REPORT ZTEST_ALV message-id zz .
TYPE-POOLS: SLIS.
DATA: X_FIELDCAT TYPE SLIS_FIELDCAT_ALV,
IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
L_LAYOUT type slis_layout_alv,
x_events type slis_alv_event,
it_events type SLIS_T_EVENT.
DATA: BEGIN OF ITAB OCCURS 0,
VBELN LIKE VBAK-VBELN,
POSNR LIKE VBAP-POSNR,
MALE type i,
female type i,
END OF ITAB.
SELECT VBELN
POSNR
FROM VBAP
UP TO 20 ROWS
INTO TABLE ITAB.
X_FIELDCAT-FIELDNAME = 'VBELN'.
X_FIELDCAT-SELTEXT_L = 'VBELN'.
X_FIELDCAT-TABNAME = 'ITAB'.
X_FIELDCAT-COL_POS = 1.
APPEND X_FIELDCAT TO IT_FIELDCAT.
CLEAR X_FIELDCAT.
X_FIELDCAT-FIELDNAME = 'POSNR'.
X_FIELDCAT-SELTEXT_L = 'POSNR'.
X_FIELDCAT-TABNAME = 'ITAB'.
X_FIELDCAT-COL_POS = 2.
APPEND X_FIELDCAT TO IT_FIELDCAT.
CLEAR X_FIELDCAT.
X_FIELDCAT-FIELDNAME = 'MALE'.
X_FIELDCAT-SELTEXT_L = 'MALE'.
X_FIELDCAT-TABNAME = 'ITAB'.
X_FIELDCAT-COL_POS = 3.
APPEND X_FIELDCAT TO IT_FIELDCAT.
CLEAR X_FIELDCAT.
X_FIELDCAT-FIELDNAME = 'FEMALE'.
X_FIELDCAT-SELTEXT_L = 'FEMALE'.
X_FIELDCAT-TABNAME = 'ITAB'.
X_FIELDCAT-COL_POS = 3.
APPEND X_FIELDCAT TO IT_FIELDCAT.
CLEAR X_FIELDCAT.
x_events-NAME = SLIS_EV_TOP_OF_PAGE.
x_events-FORM = 'TOP_OF_PAGE'.
APPEND x_events TO iT_EVENTS.
CLEAR x_events .
L_LAYOUT-NO_COLHEAD = 'X'.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = SY-REPID
IS_LAYOUT = L_LAYOUT
IT_FIELDCAT = IT_FIELDCAT
it_events = it_events
TABLES
T_OUTTAB = ITAB
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.
IF SY-SUBRC ne 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
FORM TOP_OF_PAGE.
*-To display the headers for main list
FORMAT COLOR COL_HEADING.
WRITE: / SY-ULINE(103).
WRITE: / SY-VLINE,
(8) ' ' ,
SY-VLINE,
(8) ' ' ,
SY-VLINE,
(19) '***'(015) centered,
sy-vline.
WRITE: / SY-VLINE,
(8) 'VBELN'(013) ,
SY-VLINE,
(8) 'POSNR'(014) ,
SY-VLINE,
(8) 'MALE'(016) ,
sy-vline,
(8) 'FMALE'(017) ,
sy-vline.
FORMAT COLOR OFF.
ENDFORM. -
Double click in alv report rows
Hi to all!!
I have an alv report and I want it to go directly to a transaction IW38 when I double click the row, I know that i have to use the reuse_alv_grid_display's IT_EVENT parameter and also the I_CALLBACK_USERCOMMAND but I don't know exactly how.
Can anybody show me an example or help me?
THANKS A LOT!!!Hi,
Take a look at the following code ( 2 main perform ):
* ITAB_user_command *
FORM itab_user_command USING ucomm TYPE sy-ucomm
s_selfield TYPE slis_selfield.
CASE ucomm.
WHEN '&IC1'.
* Call Transaction MM03
IF s_selfield-fieldname = 'MATNR' .
READ TABLE t_bom INDEX s_selfield-tabindex.
SET PARAMETER ID 'MAT' FIELD t_bom-matnr.
CALL TRANSACTION 'MM03' AND SKIP FIRST SCREEN.
ENDIF.
ENDCASE.
*& Form display_data
FORM display_data.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
* i_background_id = 'SIWB_WALLPAPER'
i_background_id = 'ALV_BACKGROUND'
i_callback_program = w_repid
* i_callback_html_top_of_page = w_html_top_of_page
* i_structure_name = 'TRDIR'
i_bypassing_buffer = 'X'
i_default = 'X'
i_save = w_variant_save "'A'
is_variant = w_variant
is_layout = w_layout
i_callback_user_command = 'ITAB_USER_COMMAND'
* i_callback_pf_status_set = 'SET_PF_STATUS'
it_fieldcat = i_fieldcat_alv[]
it_events = i_events[]
it_event_exit = i_event_exit[]
* it_excluding = i_excluding
is_print = w_print
* i_screen_start_column = 1
* i_screen_start_line = 1
* i_screen_end_column = 70
* i_screen_end_line = 30
TABLES
t_outtab = t_bom
EXCEPTIONS
program_error = 1.
ENDFORM. " display_data
Best regards,
Erwan -
Hi All,
I want to print a report in the following manner:
DATE:
CLASS GROUP :
MATNR CLASS ADSIZE
123 c col1
124 c col2
156 c col2
DATE:
CLASS GROUP :
MATNR CLASS ADSIZE
125 a col3
128 a col4
150 a col5
How do i do it...I am planning to do it with REUSE_ALV_LIST _DISPLAY...but i dont know how to print the header..plz help<b>Note : In the below i am passing my purchase order Ebeln with internal table to the Form header so that all purchase order are passed to Header by this way you can also pass it .</b>
<b>Add Title(heading) to ALV Grid</b>
In order to insert a report heading in to the ALV grid you need to perform the following steps:
1. Update 'REUSE_ALV_GRID_DISPLAY' FM call to include 'top-of-page' FORM
2. Create 'top-of-page' FORM
call function 'REUSE_ALV_GRID_DISPLAY'
exporting
i_callback_program = gd_repid
i_callback_top_of_page = 'TOP-OF-PAGE' "see FORM
is_layout = gd_layout
it_fieldcat = fieldcatalog[]
i_save = 'X'
tables
t_outtab = it_ekko
exceptions
program_error = 1
others = 2.
Form top-of-page.
*ALV Header declarations
data: t_header type slis_t_listheader,
wa_header type slis_listheader,
t_line like wa_header-info,
ld_lines type i,
ld_linesc(10) type c.
* Title
wa_header-typ = 'H'.
wa_header-info = EKKO-ebeln.
append wa_header to t_header.
clear wa_header.
endform.
reward points if it is usefull .....
Girish -
Hi All,
is there any way for subheading in ALV report.
For Example: staff worker
L1 L2 R1 R2 R3 R4 w1 w2 w3 w4 w5 w6
thks
shaileshhi,
try this REUSE_ALV_HIERSEQ_LIST_DISPLAY
hope this will help u...
Regards
Shishir Deshmukh -
How To Add Two Heading in ALV Report
Hello Guys,
Currently I am Working on a report Contain 45 Column. Each 45 Column have there own heading like Days Target,Days Achieve..like this.
Our Requirement is That
1.Upper side of the First 10 Column one more heading required like Production Details .
2. From 11 to 20 One More Heading Called Furnace Oil. like that only.
I ask users That is not possible in ALV but they are adhere to that requirement.
Can it's is possible in ALV Grid To have a two Heading Column.
Thanks in Advance.
Regards
Swati NamdevHi swati,
Normally the specified requirment is not possible with the ALV...
But you can try with the tricky way... where you need to use the Hierarchical ALV.
Here you need to specify the two fields in the header table for the specified headings, and you need to declare these two fields in the item table also.
But in this case you will have one blank line on the report output(for the header data).
Regards,
Satya. -
Need to generate Header, item ALV report
Hi All,
I need to create an ALV something with like the following format as given bewlo:
Comapny Code - <Description> Date From: __/__/__ To __/__/__
Contract Sold-to Ship-to
Kindly Help.
-Ramesh K S ChakradharRamesh,
FORM fill_list_header is for header in below code.
REPORT zvendor_detail LINE-SIZE 255 LINE-COUNT 65.
** Vendor payment details
** Amit Gujargoud - 2008/07/16
** modification history
** by date description
TABLES: bsik, bsak, bsis, bsas, bseg, ekpo, lfa1.
TYPE-POOLS : slis. "TYPE POOL SLIS
SELECTION-SCREEN: BEGIN OF BLOCK blk1 WITH FRAME TITLE text-010,
SKIP.
SELECT-OPTIONS: s_lifnr FOR bsik-lifnr,
s_bukrs FOR bsik-bukrs,
s_budat FOR bsik-budat.
PARAMETERS: p_grdat LIKE bsik-augdt.
SELECTION-SCREEN: SKIP,
END OF BLOCK blk1.
DATA: BEGIN OF i_docs OCCURS 0,
lifnr LIKE bseg-lifnr,
hkont LIKE bseg-hkont,
dmbtr LIKE bsis-dmbtr,
kostl LIKE bseg-kostl,
sgtxt LIKE bseg-sgtxt,
bukrs LIKE bseg-bukrs,
belnr LIKE bseg-belnr,
buzei LIKE bseg-buzei,
blart LIKE bkpf-blart,
shkzg LIKE bseg-shkzg,
budat LIKE bkpf-budat,
augbl LIKE bseg-augbl,
gjahr LIKE bseg-gjahr,
name1 LIKE lfa1-name1,
flag TYPE c,
docsum TYPE p DECIMALS 0,
END OF i_docs.
DATA: i_revs LIKE i_docs OCCURS 100 WITH HEADER LINE,
lifnr LIKE i_docs-lifnr,
bukrs LIKE i_docs-bukrs,
belnr LIKE i_docs-belnr,
blart LIKE i_docs-blart,
hkont LIKE i_docs-hkont,
dmbtr LIKE i_docs-dmbtr,
kostl LIKE i_docs-kostl,
sgtxt LIKE i_docs-sgtxt,
budat LIKE i_docs-budat,
total LIKE i_docs-dmbtr,
gjahr LIKE i_docs-gjahr,
w_ebeln LIKE ekpo-ebeln,
w_ebelp LIKE ekpo-ebelp,
w_zuonr LIKE bseg-zuonr,
toggle TYPE i VALUE 1.
DATA: v_grir_acct LIKE bsis-hkont,
v_coa LIKE t001-ktopl.
*--------------------------ALV Declearation-----------------------------
DATA: it_fieldcat TYPE slis_t_fieldcat_alv,
wa_fieldcat LIKE LINE OF it_fieldcat,
it_top_of_page TYPE slis_t_listheader,
ls_layout TYPE slis_layout_alv,
gt_events TYPE slis_t_event.
START-OF-SELECTION.
CASE sy-mandt.
WHEN '500'.
v_coa = 'MACK'.
WHEN '600'.
v_coa = 'COA1'.
ENDCASE.
PERFORM data_selection."amit
PERFORM calculation.
"PERFORM interactive.
*********************************GET ALV DATA
PERFORM alv_get_data.
*********************************ALV GRID DATA
PERFORM alv_grid.
PERFORM top_of_page.
*& Form data_selection
* text
FORM data_selection.
SELECT konts FROM t030 INTO v_grir_acct
WHERE ktopl = v_coa
AND ktosl = 'WRX'.
ENDSELECT.
SELECT hkont dmbtr kostl sgtxt bukrs belnr
buzei blart shkzg budat augbl gjahr
FROM bsis
INTO CORRESPONDING FIELDS OF TABLE i_docs
* WHERE hkont = '211200' "goods received w/o invoice
WHERE hkont = v_grir_acct
AND bukrs IN s_bukrs
AND budat IN s_budat.
* AND blart = 'WE'.
SELECT hkont dmbtr kostl sgtxt bukrs belnr
buzei blart shkzg budat augbl gjahr
FROM bsas
APPENDING CORRESPONDING FIELDS OF TABLE i_docs
* WHERE hkont = '211200' "goods received w/o invoice
WHERE hkont = v_grir_acct
AND bukrs IN s_bukrs
AND budat IN s_budat
* AND blart = 'WE'
AND augdt GE p_grdat.
LOOP AT i_docs.
SELECT SINGLE lifnr ebeln ebelp FROM bseg
INTO (i_docs-lifnr, w_ebeln, w_ebelp)
WHERE bukrs = i_docs-bukrs
AND belnr = i_docs-belnr
AND lifnr NE ''.
" AND buzei = i_docs-buzei."commented by amit
IF i_docs-lifnr IN s_lifnr.
IF NOT w_ebeln IS INITIAL AND i_docs-sgtxt IS INITIAL.
SELECT SINGLE txz01 FROM ekpo INTO i_docs-sgtxt
WHERE ebeln = w_ebeln
AND ebelp = w_ebelp.
ENDIF.
MODIFY i_docs.
ELSE.
DELETE i_docs.
ENDIF.
ENDLOOP.
SELECT lifnr hkont dmbtr kostl sgtxt bukrs belnr
buzei blart shkzg budat augbl gjahr
FROM bsik
APPENDING TABLE i_docs
WHERE lifnr IN s_lifnr
AND bukrs IN s_bukrs
AND budat IN s_budat
* AND blart IN ('KR', 'RE').
AND blart IN ('KR', 'RE', 'KN', 'RN').
*see if there are reversal documents
SELECT lifnr hkont dmbtr kostl sgtxt bukrs belnr
buzei blart shkzg budat augbl gjahr
FROM bsik
APPENDING TABLE i_revs
WHERE lifnr IN s_lifnr
AND bukrs IN s_bukrs
AND blart IN ('KA').
SELECT lifnr hkont dmbtr kostl sgtxt bukrs belnr
buzei blart shkzg budat augbl gjahr
FROM bsak
APPENDING TABLE i_docs
WHERE lifnr IN s_lifnr
AND bukrs IN s_bukrs
AND budat IN s_budat
* AND blart IN ('KR', 'RE').
AND blart IN ('KR', 'RE', 'KN', 'RN').
* check for reversal
SELECT lifnr hkont dmbtr kostl sgtxt bukrs belnr
buzei blart shkzg budat augbl gjahr
FROM bsak
APPENDING TABLE i_revs
WHERE lifnr IN s_lifnr
AND bukrs IN s_bukrs
AND blart IN ('KA').
SORT: i_docs BY lifnr bukrs budat hkont,
i_revs BY lifnr bukrs augbl.
ENDFORM. "data_selection
*& Form calculation
* text
FORM calculation.
LOOP AT i_docs.
i_docs-docsum = 1.
MODIFY i_docs TRANSPORTING docsum.
toggle = toggle * -1.
* on CHANGE OF i_docs-lifnr.
SELECT SINGLE name1 FROM lfa1 INTO i_docs-name1
WHERE lifnr = i_docs-lifnr.
CLEAR total.
MODIFY i_docs TRANSPORTING name1.
* ENDon.
IF i_docs-blart = 'KR' OR i_docs-blart EQ 'KN'.
SELECT SINGLE hkont kostl gjahr FROM bseg
INTO (i_docs-hkont, i_docs-kostl, i_docs-gjahr)
WHERE bukrs = i_docs-bukrs
AND belnr = i_docs-belnr
AND kostl <> ' '.
MODIFY i_docs TRANSPORTING hkont kostl gjahr.
ELSEIF i_docs-blart = 'RE' OR i_docs-blart = 'RN'.
SELECT SINGLE hkont kostl gjahr ebeln ebelp FROM bseg
INTO (i_docs-hkont, i_docs-kostl, i_docs-gjahr,
w_ebeln, w_ebelp)
WHERE bukrs = i_docs-bukrs
AND belnr = i_docs-belnr
AND ebeln <> ' '.
MODIFY i_docs TRANSPORTING hkont kostl gjahr.
IF NOT w_ebeln IS INITIAL
AND i_docs-sgtxt IS INITIAL.
SELECT SINGLE txz01 FROM ekpo INTO i_docs-sgtxt
WHERE ebeln = w_ebeln
AND ebelp = w_ebelp.
MODIFY i_docs TRANSPORTING sgtxt.
ENDIF.
ENDIF.
CASE i_docs-shkzg.
WHEN 'S'.
i_docs-dmbtr = i_docs-dmbtr * -1.
* CONDENSE i_docs-dmbtr.
MODIFY i_docs TRANSPORTING dmbtr.
ENDCASE.
lifnr = i_docs-lifnr.
bukrs = i_docs-bukrs.
belnr = i_docs-belnr.
blart = i_docs-blart.
hkont = i_docs-hkont.
dmbtr = i_docs-dmbtr.
kostl = i_docs-kostl.
sgtxt = i_docs-sgtxt.
budat = i_docs-budat.
gjahr = i_docs-gjahr.
* PERFORM print_document USING lifnr lfa1-name1 bukrs belnr blart
* hkont dmbtr kostl sgtxt budat gjahr.
total = total + dmbtr.
IF i_docs-blart = 'KR' OR i_docs-blart EQ 'KN'.
READ TABLE i_revs WITH KEY lifnr = i_docs-lifnr
bukrs = i_docs-bukrs
belnr = i_docs-augbl
blart = 'KA'.
IF sy-subrc EQ 0.
dmbtr = i_revs-dmbtr * -1.
lifnr = i_revs-lifnr.
bukrs = i_revs-bukrs.
belnr = i_revs-belnr.
blart = i_revs-blart.
hkont = i_revs-hkont.
kostl = i_revs-kostl.
sgtxt = space.
budat = i_revs-budat.
gjahr = i_revs-gjahr.
* PERFORM print_document USING lifnr lfa1-name1 bukrs belnr blart
* hkont dmbtr kostl sgtxt budat gjahr.
total = total + dmbtr.
ENDIF.
ENDIF.
* ON CHANGE OF i_docs-lifnr.
* i_docs-flag = 'X'.
* SUM.
** i_docs-docsum = i_docs-docsum.
* i_docs-dmbtr = i_docs-dmbtr.
* MODIFY i_docs TRANSPORTING dmbtr flag.
* ENDON.
AT END OF lifnr.
i_docs-flag = 'X'.
SUM.
* i_docs-docsum = i_docs-docsum.
i_docs-dmbtr = i_docs-dmbtr.
MODIFY i_docs TRANSPORTING dmbtr flag.
ENDAT.
ENDLOOP.
* SORT i_docs STABLE by lifnr belnr dmbtr DESCENDING.
DELETE ADJACENT DUPLICATES FROM i_docs COMPARING belnr.
" SORT i_docs by lifnr dmbtr ASCENDING.
LOOP AT i_docs.
AT END OF lifnr.
SUM.
i_docs-docsum = i_docs-docsum.
MODIFY i_docs TRANSPORTING docsum.
ENDAT.
* i_docs-docsum = 1.
ENDLOOP.
LOOP AT i_docs WHERE flag NE 'X'.
DELETE i_docs INDEX sy-tabix.
ENDLOOP.
ENDFORM."amit
*FORM interactive.
*AT LINE-SELECTION.
* CHECK belnr NE space.
* SET PARAMETER ID: 'BLN' FIELD i_docs-belnr,
* 'BUK' FIELD i_docs-bukrs,
* 'GJR' FIELD i_docs-gjahr.
* CALL TRANSACTION 'FB03'.
*endform.
* FORM print_document *
*FORM print_document USING lifnr name1 bukrs belnr blart hkont dmbtr
* kostl sgtxt budat gjahr.
** IF toggle GT 0.
** FORMAT COLOR COL_NORMAL INTENSIFIED OFF.
** ELSE.
** FORMAT COLOR COL_NORMAL INTENSIFIED ON.
** ENDIF.
** WRITE:/ lifnr,
** name1,
** bukrs,
** belnr COLOR COL_KEY HOTSPOT,
** blart,
** (6) hkont,
** (14) dmbtr,
** (7) kostl,
** sgtxt,
** budat.
* HIDE: i_docs-belnr, i_docs-lifnr, i_docs-bukrs, i_docs-gjahr.
*ENDFORM.
FORM alv_get_data.
CLEAR it_fieldcat.
***************** Vendor Number
wa_fieldcat-fieldname = 'LIFNR'.
wa_fieldcat-seltext_m = 'Vendor Number'.
wa_fieldcat-just = 'L'.
wa_fieldcat-no_zero(1) = 'X'.
wa_fieldcat-outputlen = 15.
wa_fieldcat-tabname = 'I_DOCS'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
***************** Vendor Name
* wa_fieldcat-col_pos = '2'. " ALV O/P COL-1
wa_fieldcat-fieldname = 'NAME1'.
wa_fieldcat-seltext_m = 'Vendor Name'.
wa_fieldcat-just = 'L'.
wa_fieldcat-no_zero(1) = 'X'.
wa_fieldcat-outputlen = 20.
wa_fieldcat-tabname = 'I_DOCS'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
*****************Comapany Code
* wa_fieldcat-col_pos = '2'. " ALV O/P COL-1
wa_fieldcat-fieldname = 'BUKRS'.
wa_fieldcat-seltext_m = 'Comapany Code'.
wa_fieldcat-just = 'L'.
wa_fieldcat-no_zero(1) = 'X'.
wa_fieldcat-outputlen = 20.
wa_fieldcat-tabname = 'I_DOCS'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
*********************Doc. Number
* wa_fieldcat-fieldname = 'BELNR'.
* wa_fieldcat-seltext_m = 'Doc. Number'.
* wa_fieldcat-just = 'L'.
* wa_fieldcat-tabname = 'I_DOCS'.
* wa_fieldcat-outputlen = 15.
* APPEND wa_fieldcat TO it_fieldcat.
* CLEAR wa_fieldcat.
********************* Doc. type
* wa_fieldcat-fieldname = 'BLART'.
* wa_fieldcat-seltext_l = 'Doc. type'.
** wa_fieldcat-seltext_l = 'Total number of days'.
* wa_fieldcat-just = 'L'.
* wa_fieldcat-tabname = 'I_DOCS'.
* wa_fieldcat-outputlen = 20.
* APPEND wa_fieldcat TO it_fieldcat.
* CLEAR wa_fieldcat.
********************** GL Code
* wa_fieldcat-fieldname = 'HKONT'.
* wa_fieldcat-seltext_l = 'GL Code'.
* wa_fieldcat-just = 'L'.
* wa_fieldcat-tabname = 'I_DOCS'.
* wa_fieldcat-outputlen = 20.
* APPEND wa_fieldcat TO it_fieldcat.
* CLEAR wa_fieldcat.
*********************Amount
wa_fieldcat-fieldname = 'DMBTR'.
wa_fieldcat-seltext_l = 'Amount'.
wa_fieldcat-just = 'R'.
wa_fieldcat-tabname = 'I_DOCS'.
wa_fieldcat-outputlen = 15.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
******************* Cost Center
* wa_fieldcat-fieldname = 'KOSTL'.
* wa_fieldcat-seltext_m = 'Cost Center'.
* wa_fieldcat-just = 'L'.
* wa_fieldcat-no_zero(1) = 'X'.
* wa_fieldcat-outputlen = 15.
* wa_fieldcat-tabname = 'I_DOCS'.
* APPEND wa_fieldcat TO it_fieldcat.
* CLEAR wa_fieldcat.
****************** Text
** wa_fieldcat-col_pos = '2'. " ALV O/P COL-1
* wa_fieldcat-fieldname = 'SGTXT'.
* wa_fieldcat-seltext_m = 'Text'.
* wa_fieldcat-just = 'L'.
* wa_fieldcat-no_zero(1) = 'X'.
* wa_fieldcat-outputlen = 20.
* wa_fieldcat-tabname = 'I_DOCS'.
* APPEND wa_fieldcat TO it_fieldcat.
* CLEAR wa_fieldcat.
*****************Posting Date
* wa_fieldcat-col_pos = '2'. " ALV O/P COL-1
wa_fieldcat-fieldname = 'BUDAT'.
wa_fieldcat-seltext_m = 'Posting Date'.
wa_fieldcat-just = 'L'.
wa_fieldcat-no_zero(1) = 'X'.
wa_fieldcat-outputlen = 20.
wa_fieldcat-tabname = 'I_DOCS'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
******************** document sum
wa_fieldcat-fieldname = 'DOCSUM'.
wa_fieldcat-seltext_l = 'Total number of documents'.
wa_fieldcat-just = 'L'.
wa_fieldcat-tabname = 'I_DOCS'.
wa_fieldcat-outputlen = 20.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
********************* Average Days
* wa_fieldcat-fieldname = 'DAYBET'.
** wa_fieldcat-seltext_l = 'Days between PR creation to PO'.
* wa_fieldcat-seltext_l = 'Total number of days'.
* wa_fieldcat-just = 'L'.
* wa_fieldcat-tabname = 'IT_FINAL'.
* wa_fieldcat-outputlen = 20.
* APPEND wa_fieldcat TO it_fieldcat.
* CLEAR wa_fieldcat.
********************* Average Days
* wa_fieldcat-fieldname = 'AVERAGE'.
* wa_fieldcat-seltext_l = 'Average days per PO'.
* wa_fieldcat-just = 'L'.
* wa_fieldcat-tabname = 'IT_FINAL'.
* wa_fieldcat-outputlen = 20.
* APPEND wa_fieldcat TO it_fieldcat.
* CLEAR wa_fieldcat.
ENDFORM. "alv_get_data
*& Form alv_grid
* text
FORM alv_grid .
PERFORM fill_list_header USING it_top_of_page[].
PERFORM event-build USING gt_events[].
PERFORM fill_layout USING ls_layout.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = sy-repid
* i_callback_top_of_page = 'TOP-OF-PAGE'
is_layout = ls_layout
it_fieldcat = it_fieldcat
it_events = gt_events[]
i_save = 'A'
TABLES
t_outtab = i_docs
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_grid
*& Form fill_layout
* text
* -->P_LS_LAYOUT text
FORM fill_layout USING p_ls_layout TYPE slis_layout_alv.
p_ls_layout-zebra = 'X'.
p_ls_layout-cell_merge = 'X'.
ENDFORM. " fill_layout
*& Form fill_list_header
* text
* -->P_IT_TOP_OF_PAGE[] text
FORM fill_list_header USING p_slis_t_listheader TYPE slis_t_listheader.
DATA: ls_line TYPE slis_listheader,
ls_line_1 TYPE slis_listheader.
DATA : w_date TYPE sy-datum,
w_str TYPE string,
str TYPE string,
str1 TYPE string,
str_low1 TYPE string,
str_high1 TYPE string,
str_low TYPE string,
str_high TYPE string.
w_str = 'Vendor detail Report '.
CLEAR ls_line.
ls_line-typ = 'H'.
ls_line-info = w_str.
APPEND ls_line TO it_top_of_page.
CLEAR ls_line.
IF NOT s_lifnr[] IS INITIAL.
LOOP AT s_bukrs.
ls_line-typ = 'S'.
ls_line-key = 'Vendor Number'. "'text-100.
str_low = s_lifnr-low.
str_high = s_lifnr-high.
IF str_high = ' ' .
MOVE str_low TO str.
ELSE.
CONCATENATE str_low str_high INTO str SEPARATED BY ' To '.
ENDIF.
ENDLOOP.
ls_line-typ = 'S'.
ls_line-key = 'Vendor Number'.
ls_line-info = str.
APPEND ls_line TO it_top_of_page.
CLEAR ls_line.
ENDIF.
IF NOT s_bukrs[] IS INITIAL.
LOOP AT s_bukrs.
ls_line-typ = 'S'.
ls_line-key = 'Company Code'. "'text-100.
str_low = s_bukrs-low.
str_high = s_bukrs-high.
* move s_budat-low to str_low.
* move s_budat-high to str_high.
IF str_high = ' ' .
MOVE str_low TO str.
ELSE.
CONCATENATE str_low str_high INTO str SEPARATED BY ' To '.
ENDIF.
ENDLOOP.
ENDIF.
ls_line-typ = 'S'.
ls_line-key = 'Company Code'.
ls_line-info = str.
APPEND ls_line TO it_top_of_page.
CLEAR ls_line.
IF NOT s_budat[] IS INITIAL.
LOOP AT s_budat.
ls_line-typ = 'S'.
ls_line-key = 'Posting DATE'. "'text-100.
***********date calculation
CONCATENATE s_budat-low+6(2) '.' s_budat-low+4(2) '.' s_budat-low+0(4) INTO str_low.
CONCATENATE s_budat-high+6(2) '.' s_budat-high+4(2) '.' s_budat-high+0(4) INTO str_high.
IF str_high = '' OR str_high = '00.00.0000'.
MOVE str_low TO str.
ELSE.
CONCATENATE str_low str_high INTO str SEPARATED BY ' To '.
ENDIF.
ENDLOOP.
ls_line-typ = 'S'.
ls_line-key = 'Posting DATE'.
ls_line-info = str.
APPEND ls_line TO it_top_of_page.
CLEAR ls_line.
ENDIF.
ENDFORM. " fill_list_header
*& Form event-build
* text
* -->P_GT_EVENTS[] text
FORM event-build USING lt_events TYPE slis_t_event.
DATA: ls_event TYPE slis_alv_event.
MOVE 'TOP_OF_PAGE' TO ls_event-name.
MOVE 'TOP_OF_PAGE' TO ls_event-form.
APPEND ls_event TO lt_events.
CLEAR ls_event.
ENDFORM. " event-build
*& Form top_of_page
* text
* --> p1 text
* <-- p2 text
FORM top_of_page .
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = it_top_of_page.
ENDFORM. " top_of_page
Maybe you are looking for
-
Agewise Outstanding Report for Vendors report
Hi All, In SAP, Agewise Outstanding Report for Vendors report coming with Vendor Master Details along with Address details in the report S_ALR_87012085 - Vendor Payment History with OI Sorted List which is not really required. Hence we need to remo
-
My hp 6500 all in one will not print from photo gallery
hav downlaoded digital pics and tried to print from photo gallery with no success. documents will print from ms word but cannot print pics
-
Selection screen variant...
Hi Gurus, My requirement is I need to call a prepare a selection screen and create a variant of that screen.. Then user will put the name of the variant as selection id in "Production Planning run " screen...I neeed to fetch all product ids based on
-
Known issues with the Adobe CreatePDF Printer
Hi, everyone. Hopefully if you're a subscriber to the CreatePDF service, you've discovered an incredible feature called the Adobe CreatePDF Printer. It allows you to convert ANY printable file type to PDF. You can learn more about it here. Instructio
-
System Crashed after registerin​g and updating with At Home agent
Got a FIOS connects over the weekend and completed the registration process and associated software downloads just today. An hour or so after this, my laptop just died on me. When i try to restart the system, i get an "Operating System Not Found" me