I_callback_html_top_of_page = 'HTML_TOP_OF_PAGE'
Hi Experts
I am using an ALV Grid with the HTML functionality by basically
CALL METHOD top->add_gap
EXPORTING
width = 155.
CALL METHOD top->add_text
EXPORTING
text = l_text2.
12**********************
when i run the report it displays all my text at the top of page my problem arises when i print or do a print preview then it does display my text on the top of the page and prints the rest of the alv grid.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_pf_status_set = pf_status_formname
i_callback_html_top_of_page = 'HTML_TOP_OF_PAGE'
i_callback_program = pgm
i_callback_user_command = 'USER_COMMAND'
is_layout = ls_layo
it_fieldcat = i_fieldcat_alv
i_save = 'A'
is_variant = disvariant
it_events = gt_events[]
it_event_exit = gt_event_exit[]
it_excluding = i_excluding[]
it_sort = lt_sort[]
it_filter = i_filter[]
is_print = w_print
TABLES
t_outtab = itab
EXCEPTIONS
program_error = 1
OTHERS = 2.
Hello,
What exactly is your problem? Does it not print your TOP_OF_PAGE ?
Plz revert back.
BR,
Suhas
Similar Messages
-
Printing the header of a report and checking the join statement...
Hi All,
This report of mne is working fine but there are things that i want to include: when i print this report i want it to display heading of which is in the html_top_of_page but it does not print it, i am not familiar with smart forms so i won't be able to use smart forms.If anyone can help me out i will really appreciated and will immediately reward points......please help me guys as the due date is very close...and please check the joins on the select statement, not sure whether i've joined the tables properly!
REPORT Z_ORDER_AUDIT_NEW.
TYPE-POOLS: SLIS.
LIST OF TABLES
Tables: vbak, likp, vbrk, kna1, vbrp, nast.
DEFINITION OF FIELDS *
DATA: itb_fieldcat TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,
w_fieldcat TYPE slis_fieldcat_alv.
DATA: w_cnt LIKE sy-tabix.
DATA: lv_layout TYPE slis_layout_alv,
lv_tab_group TYPE slis_t_sp_group_alv,
lv_repid LIKE sy-repid,
lv_events TYPE slis_t_event,
lv_print TYPE slis_print_alv,
lv_user TYPE slis_formname VALUE 'USER_COMMAND'.
SELECTION SCREEN *
SELECT-OPTIONS:
s_lfdat FOR likp-lfdat,
s_imwrk FOR likp-imwrk.
DEFINITION OF AN INTERNAL TABLE *
DATA: Begin of i_ordertab occurs 0,
audat LIKE vbak-audat,
vbeln LIKE vbak-vbeln,
lfdat LIKE likp-lfdat,
erdat LIKE likp-erdat,
vbeln1 LIKE likp-vbeln,
vbeln2 LIKE vbrk-vbeln,
erdat1 LIKE vbrk-erdat,
kunrg LIKE vbrk-kunrg,
name1 LIKE kna1-name1,
regio LIKE vbrk-regio,
inco1 LIKE vbrk-inco1,
vrkme LIKE vbrp-vrkme,
ntgew LIKE vbrp-ntgew,
gewei LIKE vbrp-gewei,
volum LIKE vbrp-volum,
voleh LIKE vbrp-voleh,
netwr LIKE vbrk-netwr,
End of i_ordertab.
READ THE DATA *
SELECT vbakaudat vbakvbeln likplfdat likperdat likpvbeln vbrkvbeln
vbrkerdat vbrkkunrg kna1name1 vbrkregio vbrkinco1 vbrpvrkme
vbrpntgew vbrpgewei vbrpvolum vbrpvoleh vbrk~netwr
FROM likp join kna1 on likpkunnr EQ kna1kunnr
join vbrk on kna1kunnr EQ vbrkkunrg
join vbrp on vbrkvbeln EQ vbrpvbeln
join vbak on kna1kunnr EQ vbakkunnr
INTO i_ordertab
WHERE likp~lfdat IN s_lfdat
AND likp~imwrk IN s_imwrk.
APPEND i_ordertab.
ENDSELECT.
PERFORM STATEMENTS *
PERFORM build_fieldcatalog.
PERFORM build_layout.
PERFORM build_event.
PERFORM build_print.
PERFORM display_alv_report.
FORM build_fieldcatalog.
w_cnt = 1.
itb_fieldcat-fieldname = 'AUDAT'.
itb_fieldcat-seltext_m = 'Document date'.
itb_fieldcat-col_pos = w_cnt.
itb_fieldcat-emphasize = 'X'.
itb_fieldcat-key = 'X'.
APPEND itb_fieldcat TO itb_fieldcat.
CLEAR itb_fieldcat.
w_cnt = w_cnt + 1.
itb_fieldcat-fieldname = 'VBELN'.
itb_fieldcat-seltext_m = 'S/O number'.
itb_fieldcat-col_pos = w_cnt.
itb_fieldcat-emphasize = 'X'.
APPEND itb_fieldcat TO itb_fieldcat.
CLEAR itb_fieldcat.
w_cnt = w_cnt + 1.
itb_fieldcat-fieldname = 'LFDAT'.
itb_fieldcat-seltext_m = 'Deliv. date'.
itb_fieldcat-col_pos = w_cnt.
itb_fieldcat-emphasize = 'X'.
APPEND itb_fieldcat TO itb_fieldcat.
CLEAR itb_fieldcat.
w_cnt = w_cnt + 1.
itb_fieldcat-fieldname = 'ERDAT'.
itb_fieldcat-seltext_m = 'Del. Crt Date'.
itb_fieldcat-col_pos = w_cnt.
itb_fieldcat-emphasize = 'X'.
APPEND itb_fieldcat TO itb_fieldcat.
CLEAR itb_fieldcat.
w_cnt = w_cnt + 1.
itb_fieldcat-fieldname = 'VBELN1'.
itb_fieldcat-seltext_m = 'Delivery No.'.
itb_fieldcat-col_pos = w_cnt.
itb_fieldcat-emphasize = 'X'.
APPEND itb_fieldcat TO itb_fieldcat.
CLEAR itb_fieldcat.
w_cnt = w_cnt + 1.
itb_fieldcat-fieldname = 'VBELN2'.
itb_fieldcat-seltext_m = 'Invoice No.'.
itb_fieldcat-col_pos = w_cnt.
itb_fieldcat-emphasize = 'X'.
APPEND itb_fieldcat TO itb_fieldcat.
CLEAR itb_fieldcat.
w_cnt = w_cnt + 1.
itb_fieldcat-fieldname = 'ERDAT1'.
itb_fieldcat-seltext_m = 'Invoice Date'.
itb_fieldcat-col_pos = w_cnt.
itb_fieldcat-emphasize = 'X'.
APPEND itb_fieldcat TO itb_fieldcat.
CLEAR itb_fieldcat.
w_cnt = w_cnt + 1.
itb_fieldcat-fieldname = 'KUNRG'.
itb_fieldcat-seltext_m = 'Payer'.
itb_fieldcat-col_pos = w_cnt.
itb_fieldcat-emphasize = 'X'.
APPEND itb_fieldcat TO itb_fieldcat.
CLEAR itb_fieldcat.
w_cnt = w_cnt + 1.
itb_fieldcat-fieldname = 'NAME1'.
itb_fieldcat-seltext_m = 'Payer-Description'.
itb_fieldcat-col_pos = w_cnt.
itb_fieldcat-emphasize = 'X'.
APPEND itb_fieldcat TO itb_fieldcat.
CLEAR itb_fieldcat.
w_cnt = w_cnt + 1.
itb_fieldcat-fieldname = 'REGIO'.
itb_fieldcat-seltext_m = 'Region'.
itb_fieldcat-col_pos = w_cnt.
itb_fieldcat-emphasize = 'X'.
APPEND itb_fieldcat TO itb_fieldcat.
CLEAR itb_fieldcat.
w_cnt = w_cnt + 1.
itb_fieldcat-fieldname = 'INCO1'.
itb_fieldcat-seltext_m = 'Incoterms'.
itb_fieldcat-col_pos = w_cnt.
itb_fieldcat-emphasize = 'X'.
APPEND itb_fieldcat TO itb_fieldcat.
CLEAR itb_fieldcat.
w_cnt = w_cnt + 1.
itb_fieldcat-fieldname = 'VRKME'.
itb_fieldcat-seltext_m = 'Billed Quantity'.
itb_fieldcat-col_pos = w_cnt.
itb_fieldcat-emphasize = 'X'.
APPEND itb_fieldcat TO itb_fieldcat.
CLEAR itb_fieldcat.
w_cnt = w_cnt + 1.
itb_fieldcat-fieldname = 'NTGEW'.
itb_fieldcat-seltext_m = 'Net weight'.
itb_fieldcat-col_pos = w_cnt.
itb_fieldcat-emphasize = 'X'.
APPEND itb_fieldcat TO itb_fieldcat.
CLEAR itb_fieldcat.
w_cnt = w_cnt + 1.
itb_fieldcat-fieldname = 'GEWEI'.
itb_fieldcat-seltext_m = 'Weight Unit'.
itb_fieldcat-col_pos = w_cnt.
itb_fieldcat-emphasize = 'X'.
APPEND itb_fieldcat TO itb_fieldcat.
CLEAR itb_fieldcat.
w_cnt = w_cnt + 1.
itb_fieldcat-fieldname = 'VOLUM'.
itb_fieldcat-seltext_m = 'Volume'.
itb_fieldcat-col_pos = w_cnt.
itb_fieldcat-emphasize = 'X'.
APPEND itb_fieldcat TO itb_fieldcat.
CLEAR itb_fieldcat.
w_cnt = w_cnt + 1.
itb_fieldcat-fieldname = 'VOLEH'.
itb_fieldcat-seltext_m = 'VOLUME UNIT'.
itb_fieldcat-col_pos = w_cnt.
itb_fieldcat-emphasize = 'X'.
APPEND itb_fieldcat TO itb_fieldcat.
CLEAR itb_fieldcat.
w_cnt = w_cnt + 1.
itb_fieldcat-fieldname = 'NETWR'.
itb_fieldcat-seltext_m = 'Net Value'.
itb_fieldcat-col_pos = w_cnt.
itb_fieldcat-emphasize = 'X'.
itb_fieldcat-ref_tabname = 'VBRK' .
itb_fieldcat-ref_fieldname = 'NETWR' .
itb_fieldcat-do_sum = 'X' .
APPEND itb_fieldcat TO itb_fieldcat.
CLEAR itb_fieldcat.
ENDFORM.
FORM build_layout.
lv_layout-no_input = 'X'.
lv_layout-colwidth_optimize = 'X'.
lv_layout-totals_text = 'Totals'(201).
lv_layout-detail_popup = 'X'.
ENDFORM.
FORM build_event.
DATA i_event TYPE slis_alv_event.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = lv_events[].
READ TABLE lv_events WITH KEY name = slis_ev_user_command
INTO i_event.
if sy-subrc = 0.
MOVE lv_user TO i_event-form.
APPEND i_event TO lv_events.
endif.
ENDFORM.
FORM build_print.
lv_print-reserve_lines = '2'.
lv_print-no_coverpage = 'X'.
ENDFORM.
*& FUNCTION ALV DISPLAY
FORM display_alv_report.
lv_repid = sy-repid.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = lv_repid
I_CALLBACK_USER_COMMAND = slis_ev_user_command
I_CALLBACK_HTML_TOP_OF_PAGE = 'HTML_TOP_OF_PAGE' " see FORM
I_CALLBACK_HTML_END_OF_LIST = 'END_OF_LIST_HTML' "see FORM
IS_LAYOUT = lv_layout
IT_FIELDCAT = itb_fieldcat[]
IT_SPECIAL_GROUPS = lv_tab_group
I_SAVE = 'X'
IT_EVENTS = lv_events
IS_PRINT = lv_print
TABLES
t_outtab = i_ordertab
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.
IF sy-subrc <> 0.
ENDIF.
ENDFORM.
*& Form html_top_of_page
FORM html_top_of_page USING document TYPE REF TO cl_dd_document.
DATA: text TYPE sdydo_text_element.
CALL METHOD document->add_gap
EXPORTING
width = 100.
text = 'Cadbury: Daily Audit of Orders'.
CALL METHOD document->add_text
EXPORTING
text = text
sap_style = 'HEADING'.
CALL METHOD document->new_line.
CALL METHOD document->new_line.
CALL METHOD document->new_line.
text = 'User Name : '.
CALL METHOD document->add_text
EXPORTING
text = text
sap_emphasis = 'Strong'.
CALL METHOD document->add_gap
EXPORTING
width = 6.
text = sy-uname.
CALL METHOD document->add_text
EXPORTING
text = text
sap_style = 'Key'.
CALL METHOD document->add_gap
EXPORTING
width = 50.
text = 'Date : '.
CALL METHOD document->add_text
EXPORTING
text = text
sap_emphasis = 'Strong'.
CALL METHOD document->add_gap
EXPORTING
width = 6.
text = sy-datum.
CALL METHOD document->add_text
EXPORTING
text = text
sap_style = 'Key'.
CALL METHOD document->add_gap
EXPORTING
width = 50.
text = 'Time : '.
CALL METHOD document->add_text
EXPORTING
text = text
sap_emphasis = 'Strong'.
CALL METHOD document->add_gap
EXPORTING
width = 6.
text = sy-uzeit.
CALL METHOD document->add_text
EXPORTING
text = text
sap_style = 'Key'.
ENDFORM.
FORM end_of_list_html USING end TYPE REF TO cl_dd_document.
DATA: ls_text TYPE sdydo_text_element,
l_grid TYPE REF TO cl_gui_alv_grid,
f(14) TYPE c VALUE 'SET_ROW_HEIGHT',
w_lines type i,
w_lines1(9) type n.
DESCRIBE TABLE i_ordertab LINES w_lines.
w_lines1 = w_lines.
concatenate: 'TOTAL NUMBER OF RECORDS SELECTED: ' w_lines1 INTO ls_text
SEPARATED BY space.
adds test (via variable)
CALL METHOD end->add_text
EXPORTING
text = ls_text
sap_emphasis = 'strong'.
adds new line (start new line)
CALL METHOD end->new_line.
*set height of this section
CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
IMPORTING
e_grid = l_grid.
CALL METHOD l_grid->parent->parent->(f)
EXPORTING
id = 3
height = 14.
ENDFORM. "end_of_list_html.
--END OF THE REPORT--Hi
1. first remove the ENDSELECT..use INTO table itab or INTO CORRESPONDING fields, Since you are joining the more tables this will take lot of time.
2. You are just using two fields from LIKP as selection screen fields to fetch the so much data.
see the table linkings apartfrom KUNNR between the tables
LIKP-VBELN = LIPS-VBELN
LIPS-VGBEL = VBAK-VBELN and LIPS-VGPOS = VBAP-POSNR
and
VBRP-AUBEL = VBAK-VBELN and VBRP-AUPOS = VBAP-POSNR and
VBRP-VGBEL = LIKP-VBELN and VBRP-VGPOS = LIPS-POSNR
use the above links and code again.
<b>Reward points for useful Answers</b>
Regards
Anji -
Issue in displaying header details in ALV report
Hi,
I have used slis_t_listheader and REUSE_ALV_COMMENTARY_WRITE to display the header details in ALV report.I want the details to be displayed as below.
Requester : ---------------------- Page: 1
Program: ----------------------- Date:---------
Title of Report
But when I use the structure slis_t_listheader to display the header details,all the fields are coming one below the other.
How can I get the fields as shown in the above format
Edited by: Abaper12345 on Jun 25, 2009 7:54 AMHi,
Go through following code... its showing the data exactly the way you want....
REPORT TEST3.
TYPE-POOLS:slis.
TABLES:MARA.
*Type Declaration
TYPES:BEGIN OF t_mara,
matnr TYPE mara-matnr,
ersda TYPE mara-ersda,
ernam TYPE mara-ernam,
END OF t_mara.
*Internal Table
data:it_mara type standard table of t_mara.
*Work Area
data:wa_mara type t_mara.
DATA:i_repid TYPE sy-repid .
i_repid = sy-repid.
*Declaration for field catalog
DATA : fcat TYPE slis_t_fieldcat_alv,
wa_fcat TYPE slis_fieldcat_alv.
*Declaration for Layout
data : WA_LAYOUT type SLIS_LAYOUT_ALV.
*Initializing ColumnWidth_Optimize For Layout
WA_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
START-OF-SELECTION
START-OF-SELECTION.
*Fetching data into internal tables
PERFORM get_data.
*Buil Fieldcatalog
PERFORM build_fcat.
*Display ALV Report
PERFORM alv_display.
*Build Fieldcat
FORM build_fcat .
wa_fcat-tabname = 'IT_MARA'.
wa_fcat-fieldname = 'MATNR'.
wa_fcat-inttype = 'C'.
wa_fcat-seltext_m = 'Material Number'.
wa_fcat-outputlen = 25.
wa_fcat-col_pos = 1.
APPEND wa_fcat TO fcat.
CLEAR wa_fcat.
wa_fcat-tabname = 'IT_MARA'.
wa_fcat-fieldname = 'ERSDA'.
wa_fcat-inttype = 'C'.
wa_fcat-seltext_m = 'Date'.
wa_fcat-outputlen = 25.
wa_fcat-col_pos = 1.
APPEND wa_fcat TO fcat.
CLEAR wa_fcat.
wa_fcat-tabname = 'IT_MARA'.
wa_fcat-fieldname = 'ERNAM'.
wa_fcat-inttype = 'C'.
wa_fcat-seltext_m = 'User'.
wa_fcat-outputlen = 25.
wa_fcat-col_pos = 1.
APPEND wa_fcat TO fcat.
CLEAR wa_fcat.
endform.
*& Form GET_DATA
text
--> p1 text
<-- p2 text
form GET_DATA .
select matnr ersda ernam from mara into table it_mara.
endform. " GET_DATA
*& Form ALV_DISPLAY
text
--> p1 text
<-- p2 text
form ALV_DISPLAY .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER = ' '
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = i_repid
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = ' '
I_CALLBACK_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_TOP_OF_PAGE = 'HTML_TOP_OF_PAGE'
I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME =
I_BACKGROUND_ID = ' '
I_GRID_TITLE =
I_GRID_SETTINGS =
IS_LAYOUT =
IT_FIELDCAT = fcat
TABLES
t_outtab = it_mara
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
*& Form html_top_of_page " I_CALLBACK_HTML_TOP_OF_PAGE "
FORM html_top_of_page USING document TYPE REF TO cl_dd_document.
CALL METHOD document->add_text
EXPORTING
text = 'Program'
sap_color = document->list_group
sap_fontstyle = document->standard
sap_emphasis = document->strong.
CALL METHOD document->new_line
EXPORTING
repeat = 1
CALL METHOD document->add_text
EXPORTING
text = 'Requester'
sap_color = document->list_group
sap_fontstyle = document->standard
sap_emphasis = document->strong.
CALL METHOD document->new_line
EXPORTING
repeat = 1
CALL METHOD document->add_gap
EXPORTING
width = 125
CALL METHOD document->add_text
EXPORTING
text = 'This Is Test Data'
sap_color = document->list_group
sap_fontsize = document->LARGE
sap_fontstyle = document->standard
sap_emphasis = document->strong.
ENDFORM. "HTML_TOP_OF_PAGE
Thanks & Regards
Ashu SIngh -
Hi Experts,
I have written few lines of code in "HTML_TOP_OF_PAGE" sub routine. This subroutine I am using in ALV. like below...
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = G_REPID
I_CALLBACK_HTML_TOP_OF_PAGE = 'HTML_TOP_OF_PAGE'
IS_LAYOUT = GS_LAYOUT
IT_FIELDCAT = IT_FIELDS
IT_SORT = IT_SORT
I_SAVE = 'A'
IS_VARIANT = G_VARIANT
TABLES
T_OUTTAB = ITAB
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.
I would like to reserve some lines for the top of page. i mean After displaying the data in top of page, ITAB data should be displayed.Now we can only visible three lines data only. still there are six lines are there. After displaying another six lines the Itab data should be displayed in ALV table.
Of course, we can drag down my data table. But user doesn't want to see without any efforts.
Pls help me.
Thanks in advance
RaghuCALL METHOD document->add_gap
EXPORTING
width = 50. should help you..
FORM html_top_of_page USING document TYPE REF TO cl_dd_document.
DATA: text TYPE sdydo_text_element.
CALL METHOD document->add_gap
EXPORTING
width = 100.
text = 'Jay custom ALV'.
CALL METHOD document->add_text
EXPORTING
text = text
sap_style = 'HEADING'.
CALL METHOD document->new_line.
CALL METHOD document->new_line.
CALL METHOD document->new_line.
text = 'User Name : '.
CALL METHOD document->add_text
EXPORTING
text = text
sap_emphasis = 'Strong'.
CALL METHOD document->add_gap
EXPORTING
width = 6.
text = sy-uname.
CALL METHOD document->add_text
EXPORTING
text = text
sap_style = 'Key'.
CALL METHOD document->add_gap
EXPORTING
width = 50.
text = 'Date : '.
CALL METHOD document->add_text
EXPORTING
text = text
sap_emphasis = 'Strong'.
CALL METHOD document->add_gap
EXPORTING
width = 6.
DATA: zword TYPE string, zdd TYPE string, zmmm TYPE string,
zyyyy TYPE string, zfin TYPE string.
CALL FUNCTION 'CONVERSION_EXIT_IDATE_OUTPUT'
EXPORTING
input = sy-datum
IMPORTING
output = zword.
zdd = zword+3(2).
zmmm = zword+0(3).
zyyyy = zword+7(2).
CONCATENATE zdd '-' zmmm '-' zyyyy INTO zfin.
text = zfin.
CALL METHOD document->add_text
EXPORTING
text = text
sap_style = 'Key'.
CALL METHOD document->add_gap
EXPORTING
width = 50.
text = 'Time : '.
CALL METHOD document->add_text
EXPORTING
text = text
sap_emphasis = 'Strong'.
CALL METHOD document->add_gap
EXPORTING
width = 6.
text = sy-uzeit.
CALL METHOD document->add_text
EXPORTING
text = text
sap_style = 'Key'.
CALL METHOD document->new_line.
text = lv_count.
CALL METHOD document->add_text
EXPORTING
text = text
sap_style = 'Key'.
CALL METHOD document->new_line.
ENDFORM. "HTML_TOP_OF_PAGE -
The no of character in alv top of page
i have to display k:
Share\MM_SCUBCode_PDAtxt_Upload\OUT-1090000017-200903171823 - LY 2.txt
in the alv top of page but it is taking k:
Share\MM_SCUBCode_PDAtxt_Upload\OUT-1090000017-200903171823.
any idea how to do it
please check my code
form top_of_page .
DATA: wa_header TYPE slis_listheader.
IF p_file IS NOT INITIAL.
wa_header-typ = 'S'.
wa_header-key = 'File Path:'.
wa_header-info = p_file.
APPEND wa_header TO it_header.
CLEAR wa_header.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = it_header.
ENDIF.Hi,
To overcome this limitation we can use dynamic document, which can be implemented through the class CL_DD_DOCUMENT. As dynamic documents use HTML viewer control so instead of triggering the TOP_OF_PAGE event we should trigger event of HTML TOP_OF_PAGE.
First create a subroutine for top of page in HTML format and send that name in I_CALLBACK_HTML_TOP_OF_PAGE parameter of ALV function module. The input parameter for this subroutine will be a variable of class CL_DD_DOCUMENT.
* FORM html_top_of_page *
FORM html_top_of_page USING top TYPE REF TO cl_dd_document.
data: l_text(255) type c.
l_text = 'k:\\Share\MM_SCUBCode_PDAtxt_Upload\OUT-1090000017-200903171823 - LY 2.txt'.
CALL METHOD top->add_text EXPORTING text = 'Hello world '
sap_style = 'heading' .
CALL METHOD top->add_gap EXPORTING width = 200.
CALL METHOD top->add_picture EXPORTING picture_id = 'ENJOYSAP_LOGO'.
CALL METHOD top->NEW_LINE( ).
CALL METHOD top->add_text EXPORTING
text = l_text.
ENDFORM.
* Display ALV grid
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_html_top_of_page = 'HTML_TOP_OF_PAGE'
i_callback_program = g_repid
i_structure_name = 'STRUCTURE'
TABLES
t_outtab = gt_outtab.
Regards
Bala Krishna -
Allignment in ALV top of page using oops
I am displaying some fields with their values on top of page using Classes.but i am not able to get a proper alignment.
i want the field and their respective values one-below the other with once the field description and the values below after the description. eg...
field : 0125465
0123654
23654100
sales : au01
sd02
GH26
org : 101
102
103Check this sample..
Take the code from the HTML_TOP_OF_PAGE from the below report.
REPORT ztest_page.
DATA : it_flight TYPE TABLE OF sflight WITH HEADER LINE.
data: t type x.
START-OF-SELECTION.
SELECT * FROM sflight INTO TABLE it_flight.
END-OF-SELECTION.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = sy-repid
i_callback_html_top_of_page = 'HTML_TOP_OF_PAGE'
i_callback_top_of_page = 'TOP_OF_PAGE'
i_structure_name = 'SFLIGHT'
TABLES
t_outtab = it_flight
EXCEPTIONS
program_error = 1
OTHERS = 2.
*& Form TOP_OF_PAGE
* text
FORM top_of_page.
WRITE 'This is the Top of page which triggers in print'.
ENDFORM. "TOP_OF_PAGE
*& Form html_top_of_page
FORM html_top_of_page USING document TYPE REF TO cl_dd_document.
DATA : dl_text(255) TYPE c. "Text
* Add new-line
CALL METHOD document->new_line.
CALL METHOD document->new_line.
CLEAR : dl_text.
* program ID
dl_text = 'Program Name :'.
CALL METHOD document->add_gap.
CALL METHOD document->add_text
EXPORTING
text = dl_text
sap_emphasis = cl_dd_area=>heading
sap_color = cl_dd_area=>list_heading_int.
CLEAR dl_text.
dl_text = sy-repid.
CALL METHOD document->add_text
EXPORTING
text = dl_text
sap_emphasis = cl_dd_area=>heading
sap_color = cl_dd_area=>list_negative_inv.
* Add new-line
CALL METHOD document->new_line.
CLEAR : dl_text.
dl_text = sy-uname.
CALL METHOD document->add_gap
EXPORTING
width = 34.
CALL METHOD document->add_text
EXPORTING
text = dl_text
sap_emphasis = cl_dd_area=>heading
sap_color = cl_dd_area=>list_negative_inv.
* Add new-line
CALL METHOD document->new_line.
CLEAR : dl_text.
CALL METHOD document->add_gap
EXPORTING
width = 34.
* Move date
WRITE sy-datum TO dl_text.
CALL METHOD document->add_text
EXPORTING
text = dl_text
sap_emphasis = cl_dd_area=>heading
sap_color = cl_dd_area=>list_negative_inv.
* Add new-line
CALL METHOD document->new_line.
CLEAR : dl_text.
* Move time
WRITE sy-uzeit TO dl_text.
CALL METHOD document->add_gap
EXPORTING
width = 34.
CALL METHOD document->add_text
EXPORTING
text = dl_text
sap_emphasis = cl_dd_area=>heading
sap_color = cl_dd_area=>list_negative_inv.
* Add new-line
CALL METHOD document->new_line.
ENDFORM. "HTML_TOP_OF_PAGE
same Code can be used in the class. you take the above code and see.. -
Hi,
I have generated a ALV Report Output. Fine, but when I have selected 'Print' button or 'Download' button in Application Tool Bar I get dump 'GETWA_NOT_ASSIGNED'.
What should I do to rectify the error?
Thnx,
Shivaa...This is my declaration....
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 = gs_user_status
i_callback_user_command = gs_user_command
i_callback_top_of_page = 'TOP-OF-PAGE'
I_CALLBACK_HTML_TOP_OF_PAGE = 'HTML_TOP_OF_PAGE '
I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME =
I_BACKGROUND_ID = 'ALV_BACKGROUND'
I_GRID_TITLE =
I_GRID_SETTINGS =
is_layout = gs_layout
it_fieldcat = itfc
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
i_save = 'A'
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
IT_ALV_GRAPHICS =
IT_HYPERLINK =
IT_ADD_FIELDCAT =
IT_EXCEPT_QINFO =
I_HTML_HEIGHT_TOP =
I_HTML_HEIGHT_END =
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
tables
t_outtab = it_alv
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2
Plz let me know the changes I have to do.. -
Displaying items in a single line in ALV grid using ALV_TOP_OF_PAGE.
Hello Guys,
I am having a problem in displaying items in a single line in the ALV Grid using event ALV_TOP_OF_PAGE.
My requirement is to group items on a single line i.e. in the example below, Vendor code and posting date are on the same line. The next line the prints Vendor Name and Document no.
Vendor Code: 123123 Posting Date : 01.01.2011
Vendor Name: ABCD Document No: 152246598.
Here is my code in subroutine 'ALV_TOP_OF_PAGE',
wa_list_comments-typ = 'S'.
wa_list_comments-key = ''.
wa_list_comments-info = 'Vendor Code'.
APPEND wa_list_comments TO it_list_comments.
wa_list_comments-typ = 'S'.
wa_list_comments-key = ''.
wa_list_comments-info = 'Posting Date'.
APPEND wa_list_comments TO it_list_comments.
The above code prints in the following format i.e one below the other,
Vendor Code: 123123
Posting Date : 01.01.2011.
I also tried using HTML_TOP_OF_PAGE, but it didn't work.
Can anybody please help me out with this.
Regards,
Danish.Hi Danish,
Your problem is with the alignment and you need some fix positions .
The solution i feel is u can use as below :
In CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
use
i_callback_html_top_of_page = 'HTML_TOP_OF_PAGE'.
Now on calling routine call use cl_dd_document class :
FORM html_top_of_page USING document TYPE REF TO cl_dd_document .
data : doctable TYPE REF TO cl_dd_table_element,
col1_t1 TYPE REF TO cl_dd_area,
col2_t1 TYPE REF TO cl_dd_area,
col1_t2 TYPE REF TO cl_dd_area,
col2_t2 TYPE REF TO cl_dd_area.
add quick table with five columns
CALL METHOD lw_document->add_table
EXPORTING
no_of_columns = 2
border = '0'
cell_background_transparent = ' '
width = '100%'
IMPORTING
table = doctable.
Filling columns in row
CALL METHOD doctable->add_column
EXPORTING
width = '40%'
IMPORTING
column = col1_t1.
Filling columns in row
CALL METHOD doctable->add_column
EXPORTING
width = '60%'
IMPORTING
column = col2_t1.* Filling columns in row
Call method doctable->new_row.
CALL METHOD doctable->add_column
EXPORTING
width = '40%'
IMPORTING
column = col1_t2.
Filling columns in row
CALL METHOD doctable->add_column
EXPORTING
width = '60%'
IMPORTING
column = col2_t2.
*Now adding the texts
lw_text1 = 'your first text'
CALL METHOD col1_t1->add_text
EXPORTING
text = lw_text.
*Similarly add text for other columns
*Adujust % in width to adjust the column as required
Endform.
Hope this will solve your problem . -
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 -
How to make top of page in alv to be printed.
hello expert:
i used following function to output alv.
but after been printed into spool, i cannot find the top of page.
how to set the print parameter to print the top of ALV.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = w_repid
i_callback_html_top_of_page = 'HTML_TOP_OF_PAGE'
is_layout = wa_layout
it_fieldcat = it_fieldcat
TABLES
t_outtab = it_comp
EXCEPTIONS
program_error = 1
OTHERS = 2.
thank you and best regards,
Kevin GaoCALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
i_bypassing_buffer = 'X'
I_BUFFER_ACTIVE = ' '
i_callback_program = sy-repid
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = ' '
I_CALLBACK_TOP_OF_PAGE = 'HTML_TOP_OF_PAGE'
I_CALLBACK_HTML_TOP_OF_PAGE = 'HTML_TOP_OF_PAGE'
I_CALLBACK_HTML_END_OF_LIST = ' '
i_structure_name = <DYN_WA>
I_BACKGROUND_ID = ' '
I_GRID_TITLE =
I_GRID_SETTINGS =
is_layout = gds_layout
it_fieldcat = gdt_field_cata
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
it_sort = gdt_sortinfo
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
i_save = 'X'
is_variant = gt_var
it_events = gdt_eventcat
IT_EVENT_EXIT =
IS_PRINT = gds_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 = <dyn_table>
EXCEPTIONS
program_error = 1
OTHERS = 2 .
*& Form html_top_of_page
FORM html_top_of_page USING document TYPE REF TO cl_dd_document.
DATA: text TYPE sdydo_text_element.
CALL METHOD document->add_gap
EXPORTING
width = 100.
text = 'Company Code Data'.
CALL METHOD document->add_text
EXPORTING
text = text
sap_style = 'HEADING'.
CALL METHOD document->new_line.
CALL METHOD document->new_line.
CALL METHOD document->new_line.
text = 'User Name : '.
CALL METHOD document->add_text
EXPORTING
text = text
sap_emphasis = 'Strong'.
CALL METHOD document->add_gap
EXPORTING
width = 6.
text = sy-uname.
CALL METHOD document->add_text
EXPORTING
text = text
sap_style = 'Key'.
CALL METHOD document->add_gap
EXPORTING
width = 50.
text = 'Date : '.
CALL METHOD document->add_text
EXPORTING
text = text
sap_emphasis = 'Strong'.
CALL METHOD document->add_gap
EXPORTING
width = 6.
text = sy-datum.
CALL METHOD document->add_text
EXPORTING
text = text
sap_style = 'Key'.
CALL METHOD document->add_gap
EXPORTING
width = 50.
text = 'Time : '.
CALL METHOD document->add_text
EXPORTING
text = text
sap_emphasis = 'Strong'.
CALL METHOD document->add_gap
EXPORTING
width = 6.
text = sy-uzeit.
CALL METHOD document->add_text
EXPORTING
text = text
sap_style = 'Key'.
CALL METHOD document->new_line.
CALL METHOD document->new_line.
ENDFORM. "HTML_TOP_OF_PAGE -
Issue in header display for reuse_alv_grid_display
Hi All,
I have a requirement to place the items as shown below .
Date: 29.03.2011 XXX text System: xxxx
new text: ZRV_XXX some text :
User: u15 Report to display the material stock other comment :
So it can be seen that the various text has to be placed as left aligned , centered and even right aligned in the top_of_page.
But as im using grid display , im unable to place this data while using :
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = t_header.
how can i populate the t_header table so that i can use the alignements a shown.
I have read that I_CALLBACK_HTML_TOP_OF_PAGE can be used to align.
Actually i want to make a function module which can be used in any report and FM make such alignements before using 'REUSE_ALV_COMMENTARY_WRITE' in any object.
Kindly help.Hi,
Thanks for your replies. The problem is solved by using cl_dd_document class.
I used tables of TYPE REF TO cl_dd_table_element and coloumns of TYPE REF TO cl_dd_area.
Such top of page can be achieved using
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
i_callback_html_top_of_page = 'HTML_TOP_OF_PAGE'
and use the mentioned class in the form routine HTML_TOP_OF_PAGE.
Edited by: ujjwal_d15 on Apr 12, 2011 11:57 AM -
How to Open new screen for single click on ALV icon.
Hi All,
Can any body help me regarding the below ALV requirement.
I need to create a executable program ZPROGRAM with a table having field to store long text.The ALV report should display records according to the selection screen parameters with a icon in each record when clicked should open a new screen with present data in the field and must be able to save the entered long text.
Can any body give me the idea after displaying the simple ALV in the output,
How to open new screen(not the Pop-ups) after single click on the icon,
in that I should be able to modify & save the long text in my ZTABLE and
able to retrieve the same text for single clicked icon record.
which function modules/Classes/Methods can we use for this requirement.
And how retrieve the same text for this record.
Thanks in advance.
Regards,
Kalam A.*& Report ZTEST_ALV
REPORT ZTEST_ALV.
TYPE-POOLS slis.
DATA: gt_fieldcat TYPE TABLE OF slis_fieldcat_alv .
DATA: gs_layout TYPE slis_layout_alv.
DATA: gt_list_top_of_page TYPE slis_t_listheader.
DATA: gt_sortinfo_alv TYPE slis_t_sortinfo_alv.
DATA: gs_print_alv TYPE slis_print_alv.
DATA: gs_grid TYPE lvc_s_glay.
DATA: gt_event TYPE slis_t_event.
DATA: gs_event TYPE slis_alv_event.
DATA: BEGIN OF GT_DISPLAY OCCURS 100.
INCLUDE STRUCTURE MARA.
DATA: BOX.
DATA: END OF GT_DISPLAY.
START-OF-SELECTION.
SELECT * FROM MARA UP TO 50 ROWS
INTO CORRESPONDING FIELDS OF TABLE GT_DISPLAY.
End-of-Selection.
PERFORM build_alv.
PERFORM display_screen .
FORM build_alv .
DATA: ls_fieldcat LIKE LINE OF gt_fieldcat.
DATA: ls_top TYPE LINE OF slis_t_listheader.
DATA: ls_sort TYPE slis_sortinfo_alv.
CLEAR: ls_fieldcat, gt_fieldcat[], ls_top,gt_list_top_of_page[],
ls_sort,gs_grid,gs_print_alv,gt_sortinfo_alv[].
*&-----gs_layout definition.
gs_layout-zebra = 'X'.
gs_layout-detail_popup = 'X'. "ÊÇ·ñµ¯³öÏêϸÐÅÏ¢´°¿Ú
gs_layout-f2code = '&ETA'. "ÉèÖô¥·¢µ¯³öÏêϸÐÅÏ¢´°¿ÚµÄ¹¦ÄÜÂë,ÕâÀïÊÇË«»÷
gs_layout-no_vline = ' '. "ÉèÖÃÁмä¸ôÏß
gs_layout-colwidth_optimize = 'X'. "ÓÅ»¯Áпí
gs_layout-detail_initial_lines = 'X'.
gs_layout-coltab_fieldname = 'LINE_COLOR'. "Line_colorΪgt_displayµÄÒ»¸ö×Ö¶Î,¾ßÌåÑÕÉ«ÉèÖüûÏÂÃæ˵Ã÷.
gs_layout-hotspot_fieldname = 'MATNR'.
gs_layout-detail_titlebar = 'ÏêϸÄÚÈÝ'. "ÉèÖõ¯³ö´°¿ÚµÄ±êÌâÀ¸
gs_layout-group_change_edit = 'X'.
*&-----gs_grid definition.
gs_grid-top_p_only = 'X'.
*&-----gs_print_alv definition.
gs_print_alv-prnt_title = 'X'.
gs_print_alv-prnt_info = 'X'.
*&-----gt_sortinfo_alv definition. С¼Æ
ls_sort-fieldname = 'MTART'.
ls_sort-tabname = 'GT_DISPLAY'.
ls_sort-subtot = 'X'.
ls_sort-spos = 1.
ls_sort-up = 'X'.
ls_sort-group = 'UL'.
APPEND ls_sort TO gt_sortinfo_alv.
ls_sort-fieldname = 'AENAM'.
ls_sort-tabname = 'GT_DISPLAY'.
ls_sort-subtot = 'X'.
ls_sort-spos = 1.
ls_sort-up = 'X'.
ls_sort-group = 'UL'.
APPEND ls_sort TO gt_sortinfo_alv.
*&-----slis_t_listheader definition. title.
CLEAR ls_top.
ls_top-key = 'µ±Ç°ÈÕÆÚ:'.
ls_top-typ = 'S'. " H = Header, S = Selection, A = Action
CONCATENATE sy-datum0(4) '-' sy-datum4(2) '-' sy-datum+6(2) INTO ls_top-info .
APPEND ls_top TO gt_list_top_of_page.
CLEAR ls_top.
ls_top-key = 'title'.
ls_top-typ = 'S'. " H = Header, S = Selection, A = Action
ls_top-info = space.
APPEND ls_top TO gt_list_top_of_page.
*&-----gs_print_alv definition.
gs_print_alv-prnt_title = 'X'.
gs_print_alv-prnt_info = 'X'.
*&-----gt_fieldcat definition.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
i_program_name = sy-repid
i_internal_tabname = 'GT_DISPLAY'
i_structure_name = 'MARA'
I_CLIENT_NEVER_DISPLAY = 'X'
i_inclname = sy-repid
CHANGING
ct_fieldcat = gt_fieldcat[]
EXCEPTIONS
inconsistent_interface = 1
program_error = 2
OTHERS = 3.
ls_fieldcat-hotspot = 'X'.
MODIFY gt_fieldcat FROM ls_fieldcat INDEX 2.
**-1. definition with macro.
DEFINE macro.
col_pos = col_pos + 1.
ls_fieldcat-tabname = 'it_typ_data'.
ls_fieldcat-fieldname = '&1'.
ls_fieldcat-seltext_l = &2.
ls_fieldcat-col_pos = col_pos.
ls_fieldcat-outputlen = '&3'.
ls_fieldcat-datatype = '&4'.
ls_fieldcat-do_sum = &5.
ls_fieldcat-edit = &6.
ls_fieldcat-checkbox = &7.
ls_fieldcat-key = &9.
ls_fieldcat-fix_column = &10.
ls_fieldcat-no_out = &11.
ls_fieldcat-ref_fieldname = &4. " System F4 Effect.
ls_fieldcat-ref_tabname = &5. " System F4 Effect.
ls_fieldcat-hotspot = &6.
append ls_fieldcat to gt_fieldcat.
clear ls_fieldcat.
END-OF-DEFINITION.
macro matnr 'matnr' 18 'MATNR' 'MARA' 'X'.
macro MTART 'MTART' 18 'MTART' 'MARA' ''.
macro AENAM 'AENAM' 18 'MAENAM' 'MARA' ''.
**-2. definition one-by-one.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'MATNR'.
ls_fieldcat-seltext_s = 'ÎïÁÏ'.
ls_fieldcat-ref_fieldname = 'ROLLNAME'.
ls_fieldcat-ref_tabname = 'DD03L'.
APPEND ls_fieldcat TO gt_fieldcat.
ENDFORM. "build_alv
FORM display_screen .
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = gt_event
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.
READ TABLE gt_event INTO gs_event WITH KEY name = 'TOP_OF_PAGE'.
IF sy-subrc EQ 0.
gs_event-form = 'TOP_OF_PAGE'.
MODIFY gt_event FROM gs_event INDEX sy-tabix.
ENDIF.
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 = 'PF_STATUS_SET '
i_callback_user_command = 'USER_COMMAND'
i_callback_top_of_page = 'TOP_OF_PAGE'
I_CALLBACK_HTML_TOP_OF_PAGE = 'HTML_TOP_OF_PAGE'
I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME =
I_BACKGROUND_ID = 'ALV_BACKGROUND' "When top-of-page is initial.
I_GRID_TITLE =
I_GRID_SETTINGS =
is_layout = gs_layout
it_fieldcat = gt_fieldcat[]
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
it_sort = gt_sortinfo_alv[]
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = 'A'
IS_VARIANT =
IT_EVENTS = gt_event
IT_EVENT_EXIT =
IS_PRINT = gs_print_alv
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 = gt_display
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_screen
FORM user_command USING ucomm LIKE sy-ucomm
selfield TYPE slis_selfield.
Data ref1 type ref to cl_gui_alv_grid.
CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR' "Check Box need fieldcat-checkbox, input and edit.
IMPORTING
E_GRID = ref1.
CASE ucomm.
WHEN '&IC1'. " SAP standard code for double-clicking
READ TABLE gt_display INTO gs_display INDEX slis_selfield-tabindex.
CHECK sy-subrc = 0.
CASE selfield-fieldname .
WHEN 'PLNUM'.
SET PARAMETER ID 'PAF' FIELD gs_display-plnum.
CALL TRANSACTION 'MD12' AND SKIP FIRST SCREEN.
WHEN 'POSNR'.
SUBMIT rvscd100 USING SELECTION-SCREEN '1000' WITH vbeln = gs_display-vbeln
WITH posnr = gs_display-posnr
WITH zinfo = 'X'
AND RETURN.
ENDCASE.
IF selfield-sel_tab_field = 'OUT_ITAB-PI_SL'. " Line detail.
READ TABLE i_output INTO pisl_itab INDEX selfield-tabindex.
IF sy-subrc EQ 0.
ENDIF.
WHEN 'CHANGE'.
CALL METHOD ref1->check_changed_data.
CALL METHOD ref1->refresh_table_display.
*5´Ë´¦´úÂë×èÖ¹'REUSE_ALV_GRID_DISPLAY´´½¨ÐµÄÆÁÄ»£¬Ôì³ÉÆÁÄ»¶à²ã
selfield-refresh = 'X'.
WHEN 'SWITCH'.
PERFORM switch_edit_mode.
WHEN OTHERS.
ENDCASE.
ENDFORM. "user_command
Add your code in user_command form.
WHEN you click matnr ucomm eq '&IC1'.
Message was edited by:
Chunhai Hu -
hi to all experts ,
my requirement is print a barcode..The first part is an alv with two editable fields when user checks the checkbox and changes the second coloumn that no of prints are to be printed ....everything is fine but the problem is if suppose first 3 checkboxes are checked and qty to print is 3 for each .So the total no of prints should be 9 which im able to see in the print preview ......but the problem is when after seeing the print preview when we are back to the alv screen and uncheck one checkbox so now the pages should be 6 but it is still 9 what could be the problem here is my code since i cannot post full im sending in parts.......any help will greatly apprieciated ..........................thanks
TYPE-POOLS: slis.
*TYPES DECLARATIONS
TYPES:BEGIN OF ty_output,
cbox(1) TYPE c,"selection checkbox
menge1 TYPE char16,"QUANTITY TO PRINT
mblnr TYPE mkpf-mblnr,"MATERIAL DOCUMENT NUMBER
bwart TYPE mseg-bwart,"MOVEMENT TYPE
btext TYPE t156t-btext,"MOVEMENT TYPE DESCRIPTION
matnr TYPE mseg-matnr,"MATERIAL NUMBER
maktx TYPE makt-maktx,"MATERIAL DESCRIPTION
menge2 TYPE mseg-menge,"QUANTITY
meins TYPE mseg-meins,"BASE UNIT OF MEASUREMENT
werks TYPE mseg-werks,"PLANT
lgort TYPE mseg-lgort,"STORAGE LOCATION
ebeln TYPE mseg-ebeln,"PO DOCUMENT NUMBER
lifnr TYPE mseg-lifnr,"VENDOR
bldat TYPE mkpf-bldat,"DOCUMENT DATE
budat TYPE mkpf-budat,"POSTING DATE
usnam TYPE mkpf-usnam,"USER ID
xblnr TYPE mkpf-xblnr,"MATERIAL SLIP
END OF ty_output.
TYPES : BEGIN OF ty_data,
menge TYPE mseg-menge,"QUANTITY
mblnr TYPE mkpf-mblnr,"MATERIAL DOCUMENT NUMBER
bwart TYPE mseg-bwart,"MOVEMENT TYPE
matnr TYPE mseg-matnr,"MATERIAL NUMBER
meins TYPE mseg-meins,"BASE UNIT OF MEASUREMENT
werks TYPE mseg-werks,"PLANT
lgort TYPE mseg-lgort,"STORAGE LOCATION
ebeln TYPE mseg-ebeln,"PO DOCUMENT NUMBER
lifnr TYPE mseg-lifnr,"VENDOR
bldat TYPE mkpf-bldat,"DOCUMENT DATE
budat TYPE mkpf-budat,"POSTING DATE
usnam TYPE mkpf-usnam,"USER ID
xblnr TYPE mkpf-xblnr,"MATERIAL SLIP
END OF ty_data.
TYPES: BEGIN OF ty_btext,
btext TYPE t156t-btext,
bwart TYPE t156-bwart,
END OF ty_btext.
TYPES : BEGIN OF ty_maktx,
maktx TYPE makt-maktx,
matnr TYPE makt-matnr,
END OF ty_maktx.
TYPES: BEGIN OF ty_mard,
matnr TYPE mard-matnr,
lgpbe TYPE mard-lgpbe,
END OF ty_mard.
*INTERNAL TABLES
DATA: it_output TYPE STANDARD TABLE OF ty_output,
it_data TYPE STANDARD TABLE OF ty_data,
it_btext TYPE STANDARD TABLE OF ty_btext,
it_maktx TYPE STANDARD TABLE OF ty_maktx,
it_fieldcat TYPE STANDARD TABLE OF slis_fieldcat_alv,
it_events TYPE STANDARD TABLE OF slis_alv_event,
it_header TYPE slis_t_listheader,
it_smart TYPE STANDARD TABLE OF zmm_im_001_struc,
it_mard TYPE STANDARD TABLE OF ty_mard.
*WORK AREAS
DATA: wa_output TYPE ty_output,
wa_data TYPE ty_data,
wa_btext TYPE ty_btext,
wa_maktx TYPE ty_maktx,
wa_fieldcat TYPE slis_fieldcat_alv,
wa_events TYPE slis_alv_event,
wa_header TYPE slis_listheader,
wa_smart LIKE LINE OF it_smart,
wa_layout TYPE slis_layout_alv,
wa_mard TYPE ty_mard.
*FLAGS AND CONSTANTS
DATA: fl_sel TYPE flag.
DATA: fl_del TYPE flag,
gv_count TYPE i.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
SELECT-OPTIONS:
so_mblnr FOR mkpf-mblnr,
so_bwart FOR mseg-bwart,"MOVEMENT TYPE
so_bldat FOR mkpf-bldat,"DOCUMENT DATE
so_budat FOR mkpf-budat,"POSTING DATE
so_matnr FOR mseg-matnr,"MATERIAL ID
so_meins FOR mseg-meins,"BASE UNIT OF MEASUREMENT
so_werks FOR mseg-werks,"PLANT
so_lgort FOR mseg-lgort,"STORAGE LOCATION
so_lifnr FOR mseg-lifnr,"VENDOR
so_xblnr FOR mkpf-xblnr,"MATERIAL SLIP
so_ebeln FOR mseg-ebeln,"PURCHASE DOC
so_usnam FOR mkpf-usnam.
SELECTION-SCREEN END OF BLOCK b1.
SELECTION-SCREEN BEGIN OF BLOCK b2
WITH FRAME TITLE text-002.
PARAMETERS : 1x3 RADIOBUTTON GROUP
grp1 DEFAULT 'X',
2x4 RADIOBUTTON GROUP
grp1.
SELECTION-SCREEN END OF BLOCK b2.
*SELECTION-SCREEN BEGIN OF LINE.
*SELECTION-SCREEN COMMENT 1(82) text-007.
*SELECTION-SCREEN COMMENT 89(4) text-008. " First part of your comment
*SELECTION-SCREEN END OF LINE.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR so_mblnr-low.
*GETTING F4 HELP FOR THE
>FIELD MBLNR( MATERIAL DOCUMENT NUMBER)
PERFORM get_f4val .
AT SELECTION-SCREEN ON VALUE-REQUEST FOR so_mblnr-high.
GETTING F4 HELP FOR THE
FIELD MBLNR( MATERIAL DOCUMENT NUMBER)
PERFORM get_f4val .
AT SELECTION-SCREEN.
PERFORM valid_bwart.
PERFORM valid_selscreen.
if no records are found displaying an error message
IF sy-dbcnt EQ 0.
MESSAGE e003(zmimr012).
ENDIF.
START-OF-SELECTION.
PERFORM get_data.
PERFORM populate_data.
PERFORM get_fcat.
PERFORM get_events.
PERFORM populate_events.
PERFORM get_layout.
PERFORM display_alv.
Refresh : it_output,
it_data,
it_smart.
*& Form GET_DATA
FORM get_data .
SELECT b~menge
a~mblnr
b~bwart
b~matnr
b~meins
b~werks
b~lgort
b~ebeln
b~lifnr
a~bldat
a~budat
a~usnam
a~xblnr
INTO CORRESPONDING
FIELDS OF TABLE it_data
FROM mkpf AS a
INNER JOIN mseg AS b ON
amblnr = bmblnr
AND amjahr = bmjahr
WHERE a~mblnr IN so_mblnr
AND b~bwart IN so_bwart
AND b~bwart IN ('101', '105')
AND a~bldat IN so_bldat
AND a~budat IN so_budat
AND b~matnr IN so_matnr
AND b~matnr NE space
AND b~werks IN so_werks
AND b~lgort IN so_lgort
AND b~ebeln IN so_ebeln
AND b~lifnr IN so_lifnr
AND a~xblnr IN so_xblnr
AND a~usnam IN so_usnam.
SELECT btext
bwart
FROM t156t
INTO TABLE it_btext
FOR ALL ENTRIES IN it_data
WHERE spras EQ 'EN'
AND bwart = it_data-bwart
AND sobkz = ''
AND kzbew = 'B'
AND kzzug = ''
AND kzvbr = ''.
SELECT maktx
matnr
FROM makt INTO
TABLE it_maktx
FOR ALL ENTRIES IN it_data
WHERE matnr EQ it_data-matnr
AND spras EQ 'E'.
SELECT matnr
lgpbe
FROM mard INTO
TABLE it_mard
FOR ALL ENTRIES IN it_data
WHERE matnr EQ it_data-matnr
AND werks EQ it_data-werks
AND lgort EQ it_data-lgort.
ENDIF.
ENDFORM. " GET_DATA
*& Form GET_F4VAL
FORM get_f4val .
TYPES : BEGIN OF ly_mblnr,
mblnr TYPE mkpf-mblnr,
END OF ly_mblnr.
DATA: lc_mblnr TYPE dfies-fieldname
VALUE 'MBLNR',
lc_s_mblnr TYPE help_info-dynprofld
VALUE 'SO_MBLNR-LOW',
lc_dynnr
TYPE sy-dynnr VALUE '1000',
lc_repid TYPE sy-repid.
DATA: lt_mblnr TYPE STANDARD
TABLE OF ly_mblnr,
lv_mblnr TYPE ly_mblnr,
lt_return TYPE STANDARD TABLE OF
ddshretval WITH HEADER LINE.
CLEAR:lt_mblnr[],lv_mblnr,lt_return[],lt_return.
SELECT mblnr FROM mkpf
INTO TABLE lt_mblnr.
SORT lt_mblnr.
DELETE ADJACENT DUPLICATES FROM lt_mblnr.
lc_repid = sy-repid.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = lc_mblnr
value_org = 'S'
dynpprog = lc_repid
dynpnr = lc_dynnr
dynprofield = lc_s_mblnr
TABLES
value_tab = lt_mblnr
return_tab = lt_return
EXCEPTIONS
parameter_error = 1
no_values_found = 2
OTHERS = 3.
IF sy-subrc <> 0.
ELSE.
lc_mblnr = lt_return-fieldval.
ENDIF.
ENDFORM. " GET_F4VAL
Edited by: mozam khan on Feb 28, 2009 4:39 AM*& Form PF_STATUS
FORM pf_status_set USING
ex_tab TYPE slis_t_extab .
SET PF-STATUS 'ZMIMR012_GUI' EXCLUDING ex_tab.
ENDFORM. " PF_STATUS
*& Form user_command
text
FORM user_command USING r_ucomm TYPE sy-ucomm
rs_selfield TYPE slis_selfield .
DATA: p_ref1 TYPE REF TO cl_gui_alv_grid.
CASE r_ucomm .
WHEN 'EXEC' .
CLEAR p_ref1.
IF p_ref1 IS INITIAL.
CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
IMPORTING
e_grid = p_ref1.
ENDIF.
IF p_ref1 IS NOT INITIAL.
CALL METHOD p_ref1->check_changed_data.
ENDIF.
LOOP AT it_output INTO wa_output WHERE cbox EQ 'X'.
READ TABLE it_mard INTO wa_mard WITH KEY matnr = wa_output-matnr.
IF sy-subrc EQ 0.
wa_smart-lgpbe = wa_mard-lgpbe.
ENDIF.
wa_smart-matnr = wa_output-matnr.
wa_smart-maktx = wa_output-maktx.
wa_smart-meins = wa_output-meins.
wa_smart-bldat = wa_output-bldat.
wa_smart-no_cop = wa_output-menge1.
APPEND wa_smart TO it_smart.
CLEAR: wa_smart,wa_output.
ENDLOOP.
CALL METHOD p_ref1->REFRESH_TABLE_DISPLAY.
CHECK fl_del NE 'X'.
IF 1x3 = 'X'.
PERFORM print_smartform1x3.
ELSE.
PERFORM print_smartform2x4.
ENDIF.
WHEN 'SEL_ALL'.
fl_sel = 'X'." setting up the flag for all selection.
PERFORM sel_rec.
rs_selfield-refresh = 'X'.
WHEN 'DES_ALL'.
fl_del = 'X'.
PERFORM del_sel.
rs_selfield-refresh = 'X'.
ENDCASE.
ENDFORM. " user_command
" top_of_page
*& Form display_alv
FORM display_alv .
DATA: l_repid TYPE sy-repid.
l_repid = sy-repid.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = l_repid
i_callback_pf_status_set = 'PF-STATUS_SET'
i_callback_user_command = 'USER_COMMAND'
I_CALLBACK_TOP_OF_PAGE = 'top_of_page'
i_callback_html_top_of_page = 'HTML_TOP_OF_PAGE'
I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME =
I_BACKGROUND_ID = ' '
I_GRID_TITLE =
I_GRID_SETTINGS =
is_layout = wa_layout
it_fieldcat = it_fieldcat
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT =
it_events = 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 = it_output
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
*& Form get_layout
FORM get_layout .
wa_layout-box_fieldname = 'CBOX' .
wa_layout-box_tabname = 'IT_OUTPUT'.
wa_layout-colwidth_optimize = 'X'.
ENDFORM. " get_layout
" print_smartform_1x3
*& Form valid_bwart
text
--> p1 text
<-- p2 text
FORM valid_bwart .
TYPES:BEGIN OF ly_bwart,
bwart TYPE mseg-bwart,
END OF ly_bwart.
DATA:it_bwart TYPE TABLE OF ly_bwart WITH HEADER LINE.
IF so_bwart[] IS NOT INITIAL.
SELECT bwart FROM mseg INTO TABLE it_bwart
FOR ALL ENTRIES IN so_bwart[]
WHERE bwart <= so_bwart-high AND bwart => so_bwart-low.
LOOP AT it_bwart.
IF it_bwart-bwart NE '101' OR it_bwart-bwart NE '105' .
CONTINUE.
ENDIF.
ENDLOOP.
ENDIF.
ENDFORM. " valid_bwart
*& Form print_smartform2x4
text
-->P_WA_SMART text
-->P_IT_SMART text
FORM print_smartform1x3.
DATA : fm_name TYPE rs38l_fnam,
control_parameters TYPE ssfctrlop,
wa_job_output_info TYPE ssfcrescl,
ssfcompin TYPE ssfcompin,
ssfcompop TYPE ssfcompop.
ssfcompin-dialog = 'X'.
CALL FUNCTION 'SSF_OPEN'
EXPORTING
ARCHIVE_PARAMETERS =
USER_SETTINGS = 'X'
MAIL_SENDER =
MAIL_RECIPIENT =
MAIL_APPL_OBJ =
OUTPUT_OPTIONS =
control_parameters = control_parameters
IMPORTING
JOB_OUTPUT_OPTIONS =
EXCEPTIONS
formatting_error = 1
internal_error = 2
send_error = 3
user_canceled = 4
OTHERS = 5
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 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
formname = 'ZMM_IM_001'
variant = ' '
direct_call = ' '
IMPORTING
fm_name = fm_name
EXCEPTIONS
no_form = 1
no_function_module = 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.
control_parameters-no_open = 'X'.
control_parameters-no_close = 'X'.
LOOP AT it_smart INTO wa_smart.
IF wa_smart-no_cop IS NOT INITIAL.
MOVE wa_smart-no_cop TO gv_count.
ENDIF.
DO gv_count TIMES.
CALL FUNCTION fm_name
EXPORTING
ARCHIVE_INDEX =
ARCHIVE_INDEX_TAB =
ARCHIVE_PARAMETERS =
control_parameters = control_parameters
MAIL_APPL_OBJ =
MAIL_RECIPIENT =
MAIL_SENDER =
output_options = ssfcompop
USER_SETTINGS = 'X'
wa_display = wa_smart
IMPORTING
DOCUMENT_OUTPUT_INFO =
JOB_OUTPUT_INFO =
JOB_OUTPUT_OPTIONS =
EXCEPTIONS
formatting_error = 1
internal_error = 2
send_error = 3
user_canceled = 4
OTHERS = 5
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDDO.
CLEAR gv_count.
CLEAR : wa_smart.
ENDLOOP.
CALL FUNCTION 'SSF_CLOSE'
IMPORTING
job_output_info = wa_job_output_info
EXCEPTIONS
formatting_error = 1
internal_error = 2
send_error = 3
OTHERS = 4.
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. " print_smartform2x4
*& Form print_smartform2x4
text
--> p1 text
<-- p2 text
FORM print_smartform2x4 .
DATA : fm_name TYPE rs38l_fnam,
control_parameters TYPE ssfctrlop,
wa_job_output_info TYPE ssfcrescl,
ssfcompin TYPE ssfcompin,
ssfcompop TYPE ssfcompop.
ssfcompin-dialog = 'X'.
CALL FUNCTION 'SSF_OPEN'
EXPORTING
ARCHIVE_PARAMETERS =
USER_SETTINGS = 'X'
MAIL_SENDER =
MAIL_RECIPIENT =
MAIL_APPL_OBJ =
OUTPUT_OPTIONS =
control_parameters = control_parameters
IMPORTING
JOB_OUTPUT_OPTIONS =
EXCEPTIONS
formatting_error = 1
internal_error = 2
send_error = 3
user_canceled = 4
OTHERS = 5
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 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
formname = 'ZMM_IM_002'
variant = ' '
direct_call = ' '
IMPORTING
fm_name = fm_name
EXCEPTIONS
no_form = 1
no_function_module = 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.
control_parameters-no_open = 'X'.
control_parameters-no_close = 'X'.
LOOP AT it_smart INTO wa_smart.
IF wa_smart-no_cop IS NOT INITIAL.
MOVE wa_smart-no_cop TO gv_count.
ENDIF.
DO gv_count TIMES.
CALL FUNCTION fm_name
EXPORTING
ARCHIVE_INDEX =
ARCHIVE_INDEX_TAB =
ARCHIVE_PARAMETERS =
control_parameters = control_parameters
MAIL_APPL_OBJ =
MAIL_RECIPIENT =
MAIL_SENDER =
OUTPUT_OPTIONS = ssfcompop
USER_SETTINGS = 'X'
wa_display = wa_smart
IMPORTING
DOCUMENT_OUTPUT_INFO =
JOB_OUTPUT_INFO =
JOB_OUTPUT_OPTIONS =
EXCEPTIONS
formatting_error = 1
internal_error = 2
send_error = 3
user_canceled = 4
OTHERS = 5
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDDO.
CLEAR: gv_count.
ENDLOOP.
CALL FUNCTION 'SSF_CLOSE'
IMPORTING
job_output_info = wa_job_output_info
EXCEPTIONS
formatting_error = 1
internal_error = 2
send_error = 3
OTHERS = 4.
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. " print_smartform2x4
*& Form valid_selscreen
text
--> p1 text
<-- p2 text
FORM valid_selscreen .
SELECT b~menge
a~mblnr
b~bwart
b~matnr
b~meins
b~werks
b~lgort
b~ebeln
b~lifnr
a~bldat
a~budat
a~usnam
a~xblnr
INTO CORRESPONDING
FIELDS OF TABLE it_data
FROM mkpf AS a
INNER JOIN mseg AS b ON
amblnr = bmblnr
AND amjahr = bmjahr
WHERE a~mblnr IN so_mblnr
AND b~bwart IN so_bwart
AND b~bwart IN ('101', '105')
AND a~bldat IN so_bldat
AND a~budat IN so_budat
AND b~matnr IN so_matnr
AND b~matnr NE space
AND b~werks IN so_werks
AND b~lgort IN so_lgort
AND b~ebeln IN so_ebeln
AND b~lifnr IN so_lifnr
AND a~xblnr IN so_xblnr
AND a~usnam IN so_usnam.
ENDFORM. " valid_selscreen
*& Form sel_rec
text
--> p1 text
<-- p2 text
FORM sel_rec .
DATA: lv_tabix TYPE sy-tabix.
LOOP AT it_output INTO wa_output.
lv_tabix = sy-tabix.
wa_output-cbox = 'X'.
MODIFY it_output FROM wa_output TRANSPORTING cbox.
CLEAR: wa_output.
ENDLOOP.
ENDFORM. " sel_rec -
Reg : Gird Title In REUSE_ALV_GRID_DISPLAY
Hi Friends,
I am working with ALV Grid Display . In that my requirement is i need keep the grid title at 30th column out of 60 colums.
So i am providing space infront of grid title like this : ' ALV Grid' but after 75 characters space it is going to dump.
So how can i rectify this problem . Please help me.
Thanks ,
LaxmiHi,
Laxmi
just go through the following piece of code..
REPORT alv_top_of_page.
TABLES : t001.
TYPE-POOLS: slis.
DATA : w_repid LIKE sy-repid.
TYPES : BEGIN OF ty_comp.
INCLUDE STRUCTURE t001.
TYPES : END OF ty_comp.
DATA: wa_layout TYPE slis_layout_alv.
DATA: it_fieldcat TYPE slis_t_fieldcat_alv,
wa_fieldcat TYPE slis_fieldcat_alv.
DATA : it_comp TYPE TABLE OF ty_comp.
INITIALIZATION.
w_repid = sy-repid.
START-OF-SELECTION.
SELECT * FROM t001 INTO TABLE it_comp.
END-OF-SELECTION.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
i_program_name = w_repid
i_internal_tabname = 'IT_COMP'
i_inclname = w_repid
CHANGING
ct_fieldcat = it_fieldcat[]
EXCEPTIONS
inconsistent_interface = 1
program_error = 2
OTHERS = 3.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = w_repid
i_callback_html_top_of_page = 'HTML_TOP_OF_PAGE'
is_layout = wa_layout
it_fieldcat = it_fieldcat
TABLES
t_outtab = it_comp
EXCEPTIONS
program_error = 1
OTHERS = 2.
*& Form html_top_of_page
FORM html_top_of_page USING document TYPE REF TO cl_dd_document.
DATA: text TYPE sdydo_text_element.
CALL METHOD document->add_gap
EXPORTING
width = 100.
text = 'Company Code Data'.
CALL METHOD document->add_text
EXPORTING
text = text
sap_style = 'HEADING'.
CALL METHOD document->new_line.
CALL METHOD document->new_line.
CALL METHOD document->new_line.
text = 'User Name : '.
CALL METHOD document->add_text
EXPORTING
text = text
sap_emphasis = 'Strong'.
CALL METHOD document->add_gap
EXPORTING
width = 6.
text = sy-uname.
CALL METHOD document->add_text
EXPORTING
text = text
sap_style = 'Key'.
CALL METHOD document->add_gap
EXPORTING
width = 50.
text = 'Date : '.
CALL METHOD document->add_text
EXPORTING
text = text
sap_emphasis = 'Strong'.
CALL METHOD document->add_gap
EXPORTING
width = 6.
text = sy-datum.
CALL METHOD document->add_text
EXPORTING
text = text
sap_style = 'Key'.
CALL METHOD document->add_gap
EXPORTING
width = 50.
text = 'Time : '.
CALL METHOD document->add_text
EXPORTING
text = text
sap_emphasis = 'Strong'.
CALL METHOD document->add_gap
EXPORTING
width = 6.
text = sy-uzeit.
CALL METHOD document->add_text
EXPORTING
text = text
sap_style = 'Key'.
CALL METHOD document->new_line.
CALL METHOD document->new_line.
ENDFORM. "HTML_TOP_OF_PAGE
i hope u will get the solution...
Thansk
Ashu -
Vendor wise print on separate page
Dear all,
I have an ALV Report which display vendor account statement for all the vendors entered in selection screen.
I want to take a print for all vendors but each vendor statement should display on separate page. For new Vendor print should be taken on new page.
e.g.
start page1
Vendor1.
Accno. Amount
123 50000
234 40000
end page1
start page2
Vendor2.
Accno. Amount
123 50000
234 40000
end page2
Pls, Suggest any good solution.
Thanks & regards,
Sandip SonarFor getting the vendor number page break you need to fill up the IT_SORT
like
PERFORM F_SORT USING 'LIFNR' 'T_OUTPUT' '' '*'.
FORM F_SORT USING l_FIELD l_TABLE l_UP l_group.
ADD 1 TO L_POS.
w_SORT-SPOS = l_POS.
w_SORT-FIELDNAME = l_FIELD.
w_SORT-TABNAME = l_TABLE.
w_SORT-UP = l_UP.
w_sort-group = l_group.
APPEND w_sort to IT_SORT.
ENDFORM.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = sy-repid
i_callback_top_of_page = 'TOP_OF_PAGE'
I_CALLBACK_HTML_TOP_OF_PAGE = 'HTML_TOP_OF_PAGE'
IS_LAYOUT = ws_layout
it_fieldcat = t_fieldcat
IT_SORT = it_sort
it_events = it_events
TABLES
t_outtab = T_OUTPUT.
a®
Maybe you are looking for
-
I have itunes set up on a PC with all my music, apps, etc. I want to stop using PC and move my iTunes and files to a Mac I bought and synch my iPhone with the Mac. Can I just synch iPhone with Mac iTunes and will it copy all my stuff onto Mac, or wil
-
I have an iMac, 2.5Ghz i5, 12GB RAM, OSX 10.8.4. Things were working fine, but recently I had to install Java (I had to avert my eyes) because it was needed to use a certain web site. This seemed to be the beginning of my problems, but they were easi
-
I just installed Flex Builder 3 on an Intel Mac with Leopard (10.5.4). Flex Builder runs OK. When it builds a project I get an error: "An internal build error has occurred. Right-click for more information." The right click provides no information. N
-
Deployed DC's not appearing on the Application Communication: Configuration
whenever i deploy any WD UI DC on the portal via NWDS , i am able to successfully deploy the DC. However i am not able to view any of my DC's on the the Application Communication: Confirguration in NWA. i have to assign the provider systems for the D
-
Concurrent programs schedule ended in error or fails
Gooday All, As a system Administrator,how can you be notified if any concurrent programs schedule ended in error or fails?. Does Oracle have that capabilities. Is there any mechanism that need to be turn on.