Events in classical report
Hi Gurus,
Please provide me the correct sequence of all possible events in a classical report.
Thanks,
Binay
Hi,
Events in Classical List Proceesing:
When u start the Report:
LOAD-OF-PROGRAM
INITIALIZATION
Before displayins Selection Screen:
AT SELECTION-SCREEN OUTPUT.
Before leaving Selection Screen:
AT SELECTION-SCREEN.
After processing Selection Screen when the List starts:
START-OF-SELECTION.
Before displaying the List .. After completing START-OF-SELECTION.
END-OF-SELECTION.
For Every page:
TOP-OF-PAGE .
END-OF-PAGE.
For more details check this link -
Events in Report
Reward points if found helpful
..
Cheers,
Chandra Sekhar.
Similar Messages
-
Default event in classical reports
what is the default event in classical reports?
Regards,
pandu.hi,
Let us take you developed a program then LOAD-OF-PROGRAM and INITIALIZATION these will be fired first when running the program, before the selection screen, if there is one, is fired.
If there is a selection screen, AT SELECTION-SCREEN OUTPUT event will be fired automatically before the screen is shown.
Also, if there is a selection screen, the START-OF-SELECTION event will only be fired when the user clicks the "Execute" button on the selection screen.
TOP-OF-PAGE will automically be fired when you use the first WRITE statement as well as anytime the line count is reached. -
HI
WHAT IS CLASSICAL REPORT??Hi,
<b>Classical Reports:</b>
These are the most simple reports. Programmers learn this one first. It is just an output of data using the Write statement inside a loop.
Classical reports are normal reports. These reports are not having any sub reports. IT IS HAVING ONLY ONE SCREEN/LIST FOR OUTPUT.
<b>Events In Classical Reports:</b>
<b>INTIALIZATION:</b> This event triggers before selection screen display.
<b>AT-SELECTION-SCREEN:</b> This event triggers after proccesing user input still selection screen is in active mode.
<b>START OF SELECTION:</b> Start of selection screen triggers after proceesing selection screen.
<b>END-OF-SELECTION:</b> It is for Logical Database Reporting.
Pls do reward points.
Regards,
Ameet -
WHAT ARE EVENTS IN A CLASSICAL REPORT ?
WHAT ARE EVENTS IN A CLASSICAL REPORT ? PLEASE EXPLAIN THEM ?
BEST REGARDS
RYANWhen u start the Report:
LOAD-OF-PROGRAM
INITIALIZATION
Before displayins Selection Screen:
AT SELECTION-SCREEN OUTPUT.
Before leaving Selection Screen:
AT SELECTION-SCREEN.
After processing Selection Screen when the List starts:
START-OF-SELECTION.
Before displaying the List .. After completing START-OF-SELECTION.
END-OF-SELECTION.
For Every page:
TOP-OF-PAGE .
END-OF-PAGE.
For more details check this link -
Events in Report -
How to create a dynamic action from link column in classic report
I Have an apex page that display a modal window utilizing jquery. In the modal window I have a classic report with a link column that I want to capture its click event.
I was thinking I could create a dynamic action with selection type=jquery selector. Not for sure if I need to do anything on link column and do not know the syntax
for jquery selector. Would appreciate any help or direction???Thank you for your response. I am very new to Jquery so don't understand all that well.
What I did:
I created a dynamic action
Event: Click
Selection Type: jQuery Selector
jQuery Selector: tdheaders
Created True Actions
I created an alert to see if this is being executed.
Alert 'I made it here'
What I have:
I created a report region with the following query:
Select empno, ename, 'SELECT' from emp
where (ename like '%'||ltrim(rtrim(:P2_SEARCHPU))||'%'
or :P2_SEARCHPU is null)
I created 'SELECT' column as Link Column
Report Attributes
Link Text Select
Target Page in this Application
Page 2
Region Header
<div id="ModalForm2" title="Employee List" style="display:none">
Region Footer
</div>
This report is displayed in a modal form when a button is clicked.
Code for modal window in Page Header
<script type="text/javascript">
$( function() {
$('#ModalForm2').dialog(
{ modal : true ,
autoOpen : false ,
buttons : {
Cancel : function() {
closeForm2();
function openForm2()
$('#ModalForm2').dialog('open');
function closeForm2()
$('#ModalForm2 input[type="text"]').val('');
$('#ModalForm2').dialog('close');
</script>
I am trying to capture the click event on the link column of the report in the modal form. I want to pass a couple of column values
back to the main form and close the modal window. I do not want to do the submit that happens if I click on the link column and link back to the main page(2)
If I let the submit to happen, all other entered fields are cleared on my main form.
Just don't understand the jQuery selector. I have no problem catching the button clicks on the modal form. -
Classical Report on clicking button on ALV Report
I have a requirement where I have to display a classical report based on the user-click on a "custom button" on my ALV. I am unable to display the classical report. Please help with code example..
Hi,
See the example.Change the code according to your requirement.
*& Report ZDEMO_ALVGRID *
*& Example of a simple ALV Grid Report *
*& The basic requirement for this demo is to display a number of *
*& fields from the EKKO table. *
REPORT zdemo_alvgrid .
TABLES: ekko.
type-pools: slis. "ALV Declarations
*Data Declaration
TYPES: BEGIN OF t_ekko,
ebeln TYPE ekpo-ebeln,
ebelp TYPE ekpo-ebelp,
statu TYPE ekpo-statu,
aedat TYPE ekpo-aedat,
matnr TYPE ekpo-matnr,
menge TYPE ekpo-menge,
meins TYPE ekpo-meins,
netpr TYPE ekpo-netpr,
peinh TYPE ekpo-peinh,
END OF t_ekko.
DATA: it_ekko TYPE STANDARD TABLE OF t_ekko INITIAL SIZE 0,
wa_ekko TYPE t_ekko.
*ALV data declarations
data: fieldcatalog type slis_t_fieldcat_alv with header line,
gd_tab_group type slis_t_sp_group_alv,
gd_layout type slis_layout_alv,
gd_repid like sy-repid,
gt_events type slis_t_event,
gd_prntparams type slis_print_alv.
*Start-of-selection.
START-OF-SELECTION.
perform data_retrieval.
perform build_fieldcatalog.
perform build_layout.
perform build_events.
perform build_print_params.
perform display_alv_report.
*& Form BUILD_FIELDCATALOG
Build Fieldcatalog for ALV Report
form build_fieldcatalog.
There are a number of ways to create a fieldcat.
For the purpose of this example i will build the fieldcatalog manualy
by populating the internal table fields individually and then
appending the rows. This method can be the most time consuming but can
also allow you more control of the final product.
Beware though, you need to ensure that all fields required are
populated. When using some of functionality available via ALV, such as
total. You may need to provide more information than if you were
simply displaying the result
I.e. Field type may be required in-order for
the 'TOTAL' function to work.
fieldcatalog-fieldname = 'EBELN'.
fieldcatalog-seltext_m = 'Purchase Order'.
fieldcatalog-col_pos = 0.
fieldcatalog-outputlen = 10.
fieldcatalog-emphasize = 'X'.
fieldcatalog-key = 'X'.
fieldcatalog-do_sum = 'X'.
fieldcatalog-no_zero = 'X'.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'EBELP'.
fieldcatalog-seltext_m = 'PO Item'.
fieldcatalog-col_pos = 1.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'STATU'.
fieldcatalog-seltext_m = 'Status'.
fieldcatalog-col_pos = 2.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'AEDAT'.
fieldcatalog-seltext_m = 'Item change date'.
fieldcatalog-col_pos = 3.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'MATNR'.
fieldcatalog-seltext_m = 'Material Number'.
fieldcatalog-col_pos = 4.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'MENGE'.
fieldcatalog-seltext_m = 'PO quantity'.
fieldcatalog-col_pos = 5.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'MEINS'.
fieldcatalog-seltext_m = 'Order Unit'.
fieldcatalog-col_pos = 6.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'NETPR'.
fieldcatalog-seltext_m = 'Net Price'.
fieldcatalog-col_pos = 7.
fieldcatalog-outputlen = 15.
fieldcatalog-do_sum = 'X'.
fieldcatalog-datatype = 'CURR'.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'PEINH'.
fieldcatalog-seltext_m = 'Price Unit'.
fieldcatalog-col_pos = 8.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
endform. " BUILD_FIELDCATALOG
*& Form BUILD_LAYOUT
Build layout for ALV grid report
form build_layout.
gd_layout-no_input = 'X'.
gd_layout-colwidth_optimize = 'X'.
gd_layout-totals_text = 'Totals'(201).
gd_layout-totals_only = 'X'.
gd_layout-f2code = 'DISP'. "Sets fcode for when double
"click(press f2)
gd_layout-zebra = 'X'.
gd_layout-group_change_edit = 'X'.
gd_layout-header_text = 'helllllo'.
endform. " BUILD_LAYOUT
*& Form DISPLAY_ALV_REPORT
Display report using ALV grid
form display_alv_report.
gd_repid = sy-repid.
call function 'REUSE_ALV_GRID_DISPLAY'
exporting
i_callback_program = gd_repid
i_callback_top_of_page = 'TOP-OF-PAGE' "see FORM
i_callback_user_command = 'USER_COMMAND'
i_grid_title = outtext
is_layout = gd_layout
it_fieldcat = fieldcatalog[]
it_special_groups = gd_tabgroup
it_events = gt_events
is_print = gd_prntparams
i_save = 'X'
is_variant = z_template
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 DATA_RETRIEVAL
Retrieve data form EKPO table and populate itab it_ekko
form data_retrieval.
select ebeln ebelp statu aedat matnr menge meins netpr peinh
up to 10 rows
from ekpo
into table it_ekko.
endform. " DATA_RETRIEVAL
Form TOP-OF-PAGE *
ALV Report Header *
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 Table Report'.
append wa_header to t_header.
clear wa_header.
Date
wa_header-typ = 'S'.
wa_header-key = 'Date: '.
CONCATENATE sy-datum+6(2) '.'
sy-datum+4(2) '.'
sy-datum(4) INTO wa_header-info. "todays date
append wa_header to t_header.
clear: wa_header.
Total No. of Records Selected
describe table it_ekko lines ld_lines.
ld_linesc = ld_lines.
concatenate 'Total No. of Records Selected: ' ld_linesc
into t_line separated by space.
wa_header-typ = 'A'.
wa_header-info = t_line.
append wa_header to t_header.
clear: wa_header, t_line.
call function 'REUSE_ALV_COMMENTARY_WRITE'
exporting
it_list_commentary = t_header.
i_logo = 'Z_LOGO'.
endform.
FORM USER_COMMAND *
--> R_UCOMM *
--> RS_SELFIELD *
FORM user_command USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
Check function code
CASE r_ucomm.
WHEN '&IC1'.
Check field clicked on within ALVgrid report
IF rs_selfield-fieldname = 'EBELN'.
Read data table, using index of row user clicked on
READ TABLE it_ekko INTO wa_ekko INDEX rs_selfield-tabindex.
Set parameter ID for transaction screen field
SET PARAMETER ID 'BES' FIELD wa_ekko-ebeln.
Sxecute transaction ME23N, and skip initial data entry screen
CALL TRANSACTION 'ME23N' AND SKIP FIRST SCREEN.
ENDIF.
ENDCASE.
ENDFORM.
*& Form BUILD_EVENTS
Build events table
form build_events.
data: ls_event type slis_alv_event.
call function 'REUSE_ALV_EVENTS_GET'
exporting
i_list_type = 0
importing
et_events = gt_events[].
read table gt_events with key name = slis_ev_end_of_page
into ls_event.
if sy-subrc = 0.
move 'END_OF_PAGE' to ls_event-form.
append ls_event to gt_events.
endif.
read table gt_events with key name = slis_ev_end_of_list
into ls_event.
if sy-subrc = 0.
move 'END_OF_LIST' to ls_event-form.
append ls_event to gt_events.
endif.
endform. " BUILD_EVENTS
*& Form BUILD_PRINT_PARAMS
Setup print parameters
form build_print_params.
gd_prntparams-reserve_lines = '3'. "Lines reserved for footer
gd_prntparams-no_coverpage = 'X'.
endform. " BUILD_PRINT_PARAMS
*& Form END_OF_PAGE
form END_OF_PAGE.
data: listwidth type i,
ld_pagepos(10) type c,
ld_page(10) type c.
write: sy-uline(50).
skip.
write:/40 'Page:', sy-pagno .
endform.
*& Form END_OF_LIST
form END_OF_LIST.
data: listwidth type i,
ld_pagepos(10) type c,
ld_page(10) type c.
skip.
write:/40 'Page:', sy-pagno .
endform.
Pls. reward if useful... -
Print Logo in Classic Report (Write Method,Not ALV)
Hi All,
I'm currently doing conversion of the All the Classic Report with addition of Header with 'LOGO'.
I'm willing to find out that Function (CALL FUNCTION 'WWW_GET_MIME_OBJECT') is only able for display but not show out during printing.
Is that any method, I can do it(Print with Logo) without conversion to SAP Script or Smartform that was exhausted.
*Please take note is Classic Report with Write Method (Line by Line), Not ALV.
Thank you all in advance
Regards,
Trevor Wong.Hi,
It is possible to include logo in classical report but its not possible to print logo in classical report. It can be done in ALV's.
Write the code in Top-of-page event in ALV.
The following is the code for inserting the logo in ALV.
FORM TOP_OF_PAGE.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
I_LOGO = 'ENJOYSAP_LOGO'
IT_LIST_COMMENTARY = GT_LIST_TOP_OF_PAGE.
ENDFORM.
Regards
Purnand -
Print LOGO in classical report printout
Hi GURUS,
Is it possible to take print of logo in classical report.refer this link:[click|http://tinyurl.com/5s22vp]
the code is copied from that link.
Make the changes in the code as given below.
REPORT zgb_prog06.
* START OF DO NOT CHANGE***********************************
DATA: docking TYPE REF TO cl_gui_docking_container,
picture_control_1 TYPE REF TO cl_gui_picture,
url(256) TYPE c .
DATA: query_table LIKE w3query OCCURS 1 WITH HEADER LINE,
html_table LIKE w3html OCCURS 1,
return_code LIKE w3param-ret_code,
content_type LIKE w3param-cont_type,
content_length LIKE w3param-cont_len,
pic_data LIKE w3mime OCCURS 0,
pic_size TYPE i.
* END OF DO NOT CHANGE*************************************
DATA : sum(4) , num1(4) , num2(4).
PARAMETERS: p_dummy(4) DEFAULT '4' .
PARAMETERS: p_dummy1(4) DEFAULT '5' .
AT SELECTION-SCREEN OUTPUT. "Remove this event
START-OF-SELECTION.
write 'Testing picture printing in classic report'.
PERFORM show_pic. "Add it here
end-of-selection.
*& Form show_pic
FORM show_pic.
DATA: repid LIKE sy-repid.
repid = sy-repid.
CREATE OBJECT picture_control_1 EXPORTING parent = docking.
CHECK sy-subrc = 0.
CALL METHOD picture_control_1->set_3d_border
EXPORTING
border = 5.
CALL METHOD picture_control_1->set_display_mode
EXPORTING
display_mode = cl_gui_picture=>DISPLAY_MODE_FIT.
CALL METHOD picture_control_1->set_position "change positions
EXPORTING
height = 70
left = 800
top = 20
width = 190.
*CHANGE POSITION AND SIZE ABOVE***************************
IF url IS INITIAL.
REFRESH query_table.
query_table-name = '_OBJECT_ID'.
*CHANGE IMAGE NAME BELOW UPLOADED IN SWO0******************
query_table-value = 'ZLOGO'.
APPEND query_table.
CALL FUNCTION 'WWW_GET_MIME_OBJECT'
TABLES
query_string = query_table
html = html_table
mime = pic_data
CHANGING
return_code = return_code
content_type = content_type
content_length = content_length
EXCEPTIONS
object_not_found = 1
parameter_not_found = 2
OTHERS = 3.
IF sy-subrc <> 0.
* MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
* WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
CALL FUNCTION 'DP_CREATE_URL'
EXPORTING
type = 'image'
subtype = cndp_sap_tab_unknown
size = pic_size
lifetime = cndp_lifetime_transaction
TABLES
data = pic_data
CHANGING
url = url
EXCEPTIONS
OTHERS = 1.
ENDIF.
CALL METHOD picture_control_1->load_picture_from_url
EXPORTING
url = url.
*Syntax for URL
*url = 'file://D:\corp-gbanerji\pickut\cartoon_184.gif'.
*url = 'http://l.yimg.com/a/i/ww/beta/y3.gif'.
ENDFORM. "show_pic -
Triggering END_OF_PAGE IN CLASSIC REPORT
Hi Experts,
I have one classical reporting in that END_OF_PAGE is not Triggered At last Page due to Less No of Records in last Page,can anyone
tell me how to trigger END_OF_PAGE . i want to display the page total for every page but for last page i cant display Page total Due To Less
No Of Records can any one suggest how to solve this problem.
Thanks in advance.Hello,
If you read F1 help, it is mention as below.
Effect
This statement defines an event block that is raised by the ABAP-runtime during creation of a basic list, if there is a line reservation in the addition LINE-COUNT of the initiating statement for a page footer, which was reached while writing to this page. A list output that takes place in the event block, is placed in this area. Output statements that exceed the reserved area will be ignored. -
I have question about checkbox in classic report.
I need to choose only one checkbox in every row, hot to ensure that only one checkbox can be checked at same time?
Checkboxes are defined in SQL query as:
apex_item.checkbox(1,msisdn,'UNCHECKED') as clear,
apex_item.checkbox(2,msisdn,'UNCHECKED') as to_analysis,
apex_item.checkbox(3,msisdn,'UNCHECKED') as to_barring
here is the picture:
http://www.deviantpics.com/images/mNgGR.jpg
Tnx!amend your api calls to add onclick event to every checkbox column
apex_item.checkbox(1,msisdn,'UNCHECKED onclick="chkckbox(1,this);"' ) as clear,
apex_item.checkbox(2,msisdn,'UNCHECKED onclick="chkckbox(2,this);"') as to_analysis,
apex_item.checkbox(3,msisdn,'UNCHECKED onclick="chkckbox(3,this);"') as to_barringCreate a javascript function in your page header > Javascript
function chkckbox(pId, pThis) {
//get current row index
var currIndex = $('input[name="f0'+pId+'"]').index(pThis);
if (pThis.checked) {
//simply uncheck other check boxes
if (pId == 1) {
$('select[name="f02"]')[currIndex].checked = false;
$('select[name="f03"]')[currIndex].checked = false;
} else if (pId == 2) {
$('select[name="f01"]')[currIndex].checked = false;
$('select[name="f03"]')[currIndex].checked = false;
} else if (pId == 3) {
$('select[name="f02"]')[currIndex].checked = false;
$('select[name="f03"]')[currIndex].checked = false;
}Please note that I have not tested this code but it should work, if you have any problem just try debugging using console.log -
How to Get checkbox value when List value changed in classic report
hi ,
i worked with apex 4.2 and i create normal classic report with one checkbox column and one column change it to select list(named loved) now i want when user change list
take value of checkbox item and show it in message .
SQL for report
SELECT
'<INPUT TYPE="checkbox" NAME="f01" VALUE="'
||SEQ
||'">' SEQ,
ID,
DEPT_NO,
EMP_NAME} i change the column attributes of Dept_NO to Display as Select list of department name (named lov).
now i want when user change name of department the value of SEQ SHOW IN ALERT MESSAGE
i create JavaScript on the page
function test(pThis) {
var f01_value = $('select[name="f01"]').value;
alert('#SEQ : '+ f01_value);
</script>
I call this javascript function when list change but the value undefined..
My Question :
How can get this value Or any value of item in reports
regards
AhmedHi Ahmed,
>
i worked with apex 4.2 and i create normal classic report with one checkbox column and one column change it to select list(named loved) now i want when user change list
take value of checkbox item and show it in message .
SQL for report
SELECT
'<INPUT TYPE="checkbox" NAME="f01" VALUE="'
||SEQ
||'">' SEQ,
ID,
DEPT_NO,
EMP_NAME} i change the column attributes of Dept_NO to Display as Select list of department name (named lov).
>
You should not create checkboxes like this. Either use the APEX_ITEM.CHECKBOX2 API or change the Column Type to Simple Checkbox.
>
now i want when user change name of department the value of SEQ SHOW IN ALERT MESSAGE
i create JavaScript on the page
function test(pThis) {
var f01_value = $('select[name="f01"]').value;
alert('#SEQ : '+ f01_value);
</script>
>
name="f01" returns an array, what you need is single element value.
Try
<script type="text/javascript>
function test(pThis) {
var f01_value = $v(pThis);
alert('#SEQ : '+ f01_value);
</script>
{code}
{quote}
I call this javascript function when list change but the value undefined..
My Question :
How can get this value Or any value of item in reports
{quote}
Depends in how you are invoking/triggering the change event. Are you using DA or have you written an "onchange" event on the element?
Cheers, -
hi friends i need help on classical reports,
sold-party,
material
sales and distrubitutation channel ,division,
incoming orders,order number,invoice ,credit,
i need sub totals and final total of invoice and each customer should display in new page .Hi
Use the Tables KNA1,VBAk,VBAP,VBRK and VBRP and design the report
see the sample report using KNA1,VBAK and VBAP.
REPORT ZTEJ_INTAB1 LINE-SIZE 103 LINE-COUNT 35(5) NO STANDARD PAGE
HEADING.
*TABLES DECLARATION
TABLES : KNA1, VBAK, VBAP.
*SELECT OPTIONS
SELECT-OPTIONS: CUST_NO FOR KNA1-KUNNR.
*INITIALIZATION
INITIALIZATION.
CUST_NO-LOW = '01'.
CUST_NO-HIGH = '5000'.
CUST_NO-SIGN = 'I'.
CUST_NO-OPTION = 'BT'.
APPEND CUST_NO.
*SELECTION SCREEN VALIDATION
AT SELECTION-SCREEN ON CUST_NO.
LOOP AT SCREEN.
IF CUST_NO-LOW < 1 OR CUST_NO-HIGH > 5000.
MESSAGE E001(ZTJ1).
ENDIF.
ENDLOOP.
*BASIC LIST SELECTION
START-OF-SELECTION.
SELECT KUNNR NAME1 ORT01 LAND1 INTO
(KNA1-KUNNR, KNA1-NAME1,KNA1-ORT01,KNA1-LAND1)
FROM KNA1
WHERE KUNNR IN CUST_NO.
WRITE:/1 SY-VLINE,
KNA1-KUNNR UNDER 'CUSTOMER NO.' HOTSPOT ON,
16 SY-VLINE,
KNA1-NAME1 UNDER 'NAME',
61 SY-VLINE,
KNA1-ORT01 UNDER 'CITY',
86 SY-VLINE,
KNA1-LAND1 UNDER 'COUNTRY',
103 SY-VLINE.
HIDE: KNA1-KUNNR.
ENDSELECT.
ULINE.
*SECONDARY LIST ACCESS
AT user-command.
IF SY-UCOMM = 'IONE'.
PERFORM SALES_ORD.
ENDIF.
IF SY-UCOMM = 'ITWO'.
PERFORM ITEM_DET.
ENDIF.
*TOP OF PAGE
TOP-OF-PAGE.
FORMAT COLOR 1.
WRITE : 'CUSTOMER DETAILS'.
FORMAT COLOR 1 OFF.
ULINE.
FORMAT COLOR 3.
WRITE : 1 SY-VLINE,
3 'CUSTOMER NO.',
16 SY-VLINE,
18 'NAME',
61 SY-VLINE,
63 'CITY',
86 SY-VLINE,
88 'COUNTRY',
103 SY-VLINE.
ULINE.
FORMAT COLOR 3 OFF.
*TOP OF PAGE FOR SECONDARY LISTS
TOP-OF-PAGE DURING LINE-SELECTION.
*TOP OF PAGE FOR 1ST SECONDARY LIST
IF SY-UCOMM = 'IONE'.
ULINE.
FORMAT COLOR 1.
WRITE : 'SALES ORDER DETAILS'.
ULINE.
FORMAT COLOR 1 OFF.
FORMAT COLOR 3.
WRITE : 1 SY-VLINE,
3 'CUSTOMER NO.',
16 SY-VLINE,
18 'SALES ORDER NO.',
40 SY-VLINE,
42 'DATE',
60 SY-VLINE,
62 'CREATOR',
85 SY-VLINE,
87 'DOC DATE',
103 SY-VLINE.
ULINE.
ENDIF.
FORMAT COLOR 3 OFF.
*TOP OF PAGE FOR 2ND SECONDARY LIST
IF SY-UCOMM = 'ITWO'.
ULINE.
FORMAT COLOR 1.
WRITE : 'ITEM DETAILS'.
ULINE.
FORMAT COLOR 1 OFF.
FORMAT COLOR 3.
WRITE : 1 SY-VLINE,
3 'SALES ORDER NO.',
40 SY-VLINE,
42 'SALES ITEM NO.',
60 SY-VLINE,
62 'ORDER QUANTITY',
103 SY-VLINE.
ULINE.
ENDIF.
FORMAT COLOR 3 OFF.
*END OF PAGE
END-OF-PAGE.
ULINE.
WRITE :'USER :',SY-UNAME,/,'DATE :', SY-DATUM, 85 'END OF PAGE:',
SY-PAGNO.
SKIP.
*& Form SALES_ORD
*& FIRST SECONDARY LIST FORM
FORM SALES_ORD .
SELECT KUNNR VBELN ERDAT ERNAM AUDAT INTO
(VBAK-KUNNR, VBAK-VBELN, VBAK-ERDAT, VBAK-ERNAM, VBAK-AUDAT)
FROM VBAK
WHERE KUNNR = KNA1-KUNNR.
WRITE:/1 SY-VLINE,
VBAK-KUNNR UNDER 'CUSTOMER NO.' HOTSPOT ON,
16 SY-VLINE,
VBAK-VBELN UNDER 'SALES ORDER NO.' HOTSPOT ON,
40 SY-VLINE,
VBAK-ERDAT UNDER 'DATE',
60 SY-VLINE,
VBAK-ERNAM UNDER 'CREATOR',
85 SY-VLINE,
VBAK-AUDAT UNDER 'DOC DATE',
103 SY-VLINE.
HIDE : VBAK-VBELN.
ENDSELECT.
ULINE.
ENDFORM. " SALES_ORD
*& Form ITEM_DET
*& SECOND SECONDARY LIST FORM
FORM ITEM_DET .
SELECT VBELN POSNR KWMENG INTO
(VBAP-VBELN, VBAP-POSNR, VBAP-KWMENG)
FROM VBAP
WHERE VBELN = VBAK-VBELN.
WRITE : /1 SY-VLINE,
VBAP-VBELN UNDER 'SALES ORDER NO.',
40 SY-VLINE,
VBAP-POSNR UNDER 'SALES ITEM NO.',
60 SY-VLINE,
VBAP-KWMENG UNDER 'ORDER QUANTITY',
103 SY-VLINE.
ENDSELECT.
ULINE.
ENDFORM. " ITEM_DET
REPORT demo_list_at_pf.
START-OF-SELECTION.
WRITE 'Basic List, Press PF5, PF6, PF7, or PF8'.
AT pf5.
PERFORM out.
AT pf6.
PERFORM out.
AT pf7.
PERFORM out.
AT pf8.
PERFORM out.
FORM out.
WRITE: 'Secondary List by PF-Key Selection',
/ 'SY-LSIND =', sy-lsind,
/ 'SY-UCOMM =', sy-ucomm.
ENDFORM.
After executing the program, the system displays the basic list. The user can press the function keys F5 , F6 , F7 , and F8 to create secondary lists. If, for example, the 14th key the user presses is F6 , the output on the displayed secondary list looks as follows:
Secondary List by PF-Key Selection
SY-LSIND = 14
SY-UCOMM = PF06
Example for AT USER-COMMAND.
REPORT demo_list_at_user_command NO STANDARD PAGE HEADING.
START-OF-SELECTION.
WRITE: 'Basic List',
/ 'SY-LSIND:', sy-lsind.
TOP-OF-PAGE.
WRITE 'Top-of-Page'.
ULINE.
TOP-OF-PAGE DURING LINE-SELECTION.
CASE sy-pfkey.
WHEN 'TEST'.
WRITE 'Self-defined GUI for Function Codes'.
ULINE.
ENDCASE.
AT LINE-SELECTION.
SET PF-STATUS 'TEST' EXCLUDING 'PICK'.
PERFORM out.
sy-lsind = sy-lsind - 1.
AT USER-COMMAND.
CASE sy-ucomm.
WHEN 'FC1'.
PERFORM out.
WRITE / 'Button FUN 1 was pressed'.
WHEN 'FC2'.
PERFORM out.
WRITE / 'Button FUN 2 was pressed'.
WHEN 'FC3'.
PERFORM out.
WRITE / 'Button FUN 3 was pressed'.
WHEN 'FC4'.
PERFORM out.
WRITE / 'Button FUN 4 was pressed'.
WHEN 'FC5'.
PERFORM out.
WRITE / 'Button FUN 5 was pressed'.
ENDCASE.
sy-lsind = sy-lsind - 1.
FORM out.
WRITE: 'Secondary List',
/ 'SY-LSIND:', sy-lsind,
/ 'SY-PFKEY:', sy-pfkey.
ENDFORM.
When you run the program, the system displays the following basic list with a the page header defined in the program:
You can trigger the AT LINE-SELECTION event by double-clicking a line. The system sets the status TEST and deactivates the function code PICK. The status TEST contains function codes FC1 to FC5. These are assigned to pushbuttons in the application toolbar. The page header of the detail list depends on the status.
Here, double-clicking a line no longer triggers an event. However, there is now an application toolbar containing five user-defined pushbuttons. You can use these to trigger the AT USER-COMMAND event. The CASE statement contains a different reaction for each pushbutton.
For each interactive event, the system decreases the SY-LSIND system field by one, thus canceling out the automatic increase. All detail lists now have the same level as the basic list and thus overwrite it. While the detail list is being created, SY-LSIND still has the value 1.
Reward points for useful Answers
Regards
Anji -
Enter command in Classical Report
Hi ,
I have a classical report with one of the fields editable , when the user modifed one of the rows and presses enter i want to do some processing , how can this be implemeted. i.e. how can i handle ENTER command in a classical report.
Regards,
ArunHi Arun,
You have to set your own GUI staus and then set the function code for enter key in Function key of the GUI STATUS .After that write the code in At user-command event to handle the user-input in the list.
The following code change the color of the list line in which user has entered the telephone no for vendor.
START-OF-SELECTION.
SET PF-STATUS 'GUI_LIST1'.
SELECT * FROM lfa1 INTO TABLE it_lfa1 WHERE lifnr IN s_lifnr.
FORMAT COLOR 2 ON.
LOOP AT it_lfa1 INTO x_lfa1.
val = sy-tabix MOD 2.
IF val = 0.
FORMAT INTENSIFIED ON.
ELSE.
FORMAT INTENSIFIED OFF.
ENDIF.
WRITE :/2 x_lfa1-sel AS CHECKBOX,6 x_lfa1-lifnr,17 x_lfa1-name1,
46 x_lfa1-telf1 INPUT.
HIDE: x_lfa1-sel,x_lfa1-lifnr.
ENDLOOP.
AT USER-COMMAND.
CASE sy-ucomm .
WHEN 'ENTER'.
CLEAR cnt.
DO.
READ LINE sy-index FIELD VALUE x_lfa1-sel x_lfa1-lifnr x_lfa1-telf1.
IF sy-subrc = 0 .
MODIFY LINE sy-index FIELD VALUE x_lfa1-sel LINE FORMAT COLOR 4 INTENSIFIED ON.
ELSE.
EXIT.
ENDIF.
ENDDO.
ENDCASE. -
Process Flow of Events in ABAP Report
Hi every one,
Could some body explain about each and every event how and when it trigerrs.
I am always confusing with these events.
Plz tell me abt all the Driver events, User Events, Program events how they are Trigerred .
Explain me with complete details.
And more over what is the first event trigerred if i have all the events in my report program.
If you have Good Links plz do send me .
Thanks & Regards,
Sudheer.Hi,
Chk this info.
CLASSICAL REPORT EVENTS :
INITIALIZATION : TO INITIALISE THE SELECTION SCREEN ELEMENTS
START- OF-SELECTION: NORMALLY WE WRITE THE REPORT LOGIC HERE
AT SELECTION-SCREEN : SELECTION SCREEN VALIDATIONS
WHETHER U ENTERED IS CORRECT OR NOT AT SELECTION SCREEN LEVEL
AT SELECTION-SCREEN ON FIELD : TO PROVIDE INPUT HELP[S FOR THE FILDS AT SELECTION SCREEN
FOR EX : MATNR IF U PREESS F4 AT SELECTION SCREEN.
TOP-OF-PAGE : TO PROVIDE LIST HEADING ( OUTPUT HEADINGS)
END-OF-PAGE : TO PROVIDE FOOTER I.E., PAGE NUMBERS
END-OF-SELECTION : TO FREE THE MEMORY , NO NEED OF USING THIS SPECIALLY
INTERACTIVE EVENTS :
AT LINE-SELECTION : IT IS USED TO HENDLE SECONDARY LISTS
AT USER-COMMAND : TO PROVIDE OUR OWN GUI ( PUSH BUTTONS ETC) AT OUTPUT
AT PF-STATUS : TO PROVIDE FUNCTIONS FOR OUR OWN PROVIDED GUI BUTTONS AT OUTPUT
LOAD-OF-PROGRAM.
Triggers the associated event in an internal session after loading a program of type 1, M, F, or S. Also runs the associated processing block once and once only for each program and internal session.
INITIALIZATION.
the associated event is executed before the selection screen is displayed.
START-OF-SELECTION.
In an executable program, the corresponding event is processed after the selection screen has been displayed and before data is read using a logical database
GET
Triggers the associated events when data is read in an executable (type 1) program using a logical database.
END-OF-SELECTION.
The END-OF-SELECTION event is triggered in type 1 programs once the logical database has finished reading all data and before the list processor is started.
END of page and top page
while displaying the list as the name suggest fired at the top and end of page
SM62 is the Transaction code for creating Events.
Here you can see
System event names
User event names
System event names are standard events .
User event names are customized event name, here click "Maintain" and double click it. it takes to another screen . From here you can create your customized Events.
Regards
Sandeep REddy -
Refresh classic report based on select list value selected
hello,
can anyone please help me out with this issue. I have a parameterized classic report based on a select list and I want to refresh this report whenever the select list value is changed. I am using oracle apex version 3.2. i just want to have a javascript function onchange event for the select list which refreshes my report whenever a value is selected.
My select list item is p1_datastore
select distinct datastore d,datastore r from my_table1 order by 1;
My classic report query is
select * from my_table2 where datastore = :p1_datastore order by last_updated_dt desc;
****************************************************thanks,
ortoncan anyone please help me out with this issue.
thanks,
orton
Maybe you are looking for
-
Site-to-site VPN failover via 3G HWIC
Small problem. Branch utilizes a 2811 router connected via MPLS to core via serial interface. If serial ip sla reachability fails, fire up the cell interface, dial out and connect to the internet. Establish ipsec tunnel to a peer ASA and pass loca
-
Throughput on Aironet 1300 bridges
I have a pair of 1300 series Aironet bridges that I use to connect two buildings approximately 3/4 of a mile apart. The line of sight is completely clear. In my logs I keep getting these messages repeatedly: %DOT11-4-TKIP_MIC_FAILURE: TKIP Michael
-
Web links in .pdfs inoperable- "Acrob. could not run the browser"
I keep my Adobe Reader updated often, but I've been experiencing a severe inconsistency with the ability to open a (FFox) web page by clicking a link given by the author of any given .pdf., embedded in it. Sometimes it works and opens up the new FFox
-
I want to create serial communicatios between two notebooks via Bluetooth
Hi, I'm trying to accomplish serial communications between two laptops via a Bluetooth connection. The two laptops are NOT Toshiba notebook, but they are both running the Toshiba Bluetooth Stack For Windows. They are also both using the default Bluet
-
PSE5 - backup catalog fails - need to move my photos
I'm trying to move my photos to my new laptop with PSE8. I bought a 8 gig flash drive to use since I have lots of photos. When I went to do the File - Backup Catalog it stuck at recovering at 66% for about 20 mins. then the screen went blank and it s