Events in Interactive reports
hi gurus,
i want detailed explanation each n every event of standard report...
Regards
baskar
HI
<b>INITIALIZATION</b>
This event keyword defines an event block whose event is triggered by the ABAP runtime environment during the flow of an executable program, directly after LOAD-OF-PROGRAM and before the selection screen processing of any existing standard selection screen. This gives you the one-time opportunity to initialize the input fields of the selection screen, including those defined in the logical database linked with the program.
When an executable program defines a standard selection screen, it is called again by the ABAP runtime environment after execution, which triggers the INITIALIZATION event again. In this case, initializing parameters or selection criteria of the selection screen has no effect, because they are automatically supplied with the preceding user inputs from the selection screen during the selection screen event AT SELECTION-SCREEN OUTPUT. To explicitly initialize the selection screen for each call, you must use the event AT SELECTION-SCREEN OUTPUT.
<b>START-OF-SELECTION</b>
This event keyword defines an event block whose event is triggered by the ABAP runtime environment when calling the executable program selection screen processing of a selection screen.
In an executable program, all statements that are not declarations, and are listed before the first explicit processing block, are assigned to this event block. If the program does not contain an explicitly defined event block START-OF-SELECTION, these statements form the complete event block START-OF-SELECTION. If a program contains an explicitly defined event block START-OF-SELECTION, these statements are added to the beginning of the event block. If the program contains no explicitly defined event blocks, these statements form the entire event block START-OF-SELECTION.
If the program is linked to a logical database, preparations can be made here before the logical database reads data. If the program is not linked to a logical database, this event block even displays a "main program" from which procedures or screen layouts are called.
<b>GET node</b>
Use GET to handle two types of events after submitting executable programs: Get events and events at the end of a hierarchy level of a logical database. If during a GET event a list is written, previously an automatic line feed is created.
The event blocks after GET are implemented internally as procedures. Declarative statements in GET event blocks create local data.
<b>END-OF-SELECTION</b>
This statement defines an event block, whose event is raised by the ABAP-runtime environment during the calling of an executable program , if the logical database, with which the program is linked, has completely finished its work.
In this event block, all data read by the logical data base , can be processed summarically. In an executable program without logical data base, there is no need to implement the event block END-OF-SELECTION.
<b>LOAD-OF-PROGRAM</b>
This event keyword defines an event block whose event is triggered by the ABAP-runtime environment when an executable program, a module pool, a function group or a sub-routine pool is loaded in the internal session.
When calling a program through SUBMIT or through a transaction code, then, at every call, a new internal session is opened and the event block is executed once at every call. You can initialize global data objects of the program here.
At the first call of an external Procedure (sub-program or function module), the framework program of the called procedure is loaded into the internal session of the caller, thus triggering the event LOAD-OF-PROGRAM. The event block is executed before the called procedure. At any further call of a procedure of the same framework program by a caller of the same internal session, the event LOAD-OF-PROGRAM is triggered no longer.
The event LOAD-Of-PROGRAM should mainly be used to initialize global data when calling external procedures or Transactions. If you call executable programs with SUBMIT, we recommend that you use the event INITIALIZATION, as the Starting values for parameter and selection criteria are set after LOAD-OF-PROGRAM (see program flow after SUBMIT).
<b>AT SELECTION-SCREEN</b>
AT SELECTION-SCREEN selscreen_event.
This statement defines event blocks for different events selscreen_event that are triggered by the ABAP runtime environment during selection screen processing.
Selection screen events occur immediately before sending a selection screen and after certain user actions on a displayed selection screen. They assist in selection screen processing in the ABAP program.
AT SELECTION-SCREEN is triggered at least twice during actions on selection screens that are linked into another selection screen as a subscreen - first for the linked selection screen itself, and then for the linking selection screens.
The event blocks after AT SELECTION-SCREEN are implemented internally as procedures. Declarative statments in these event blocks create local data.
<b>AT SELECTION-SCREEN OUTPUT</b>
This event is triggered at the screen event PBO of a selection screen. In the event block, the selection screen can be prepared through assignments to the data objects of parameters and selection criteria and through dynamic screen modifications.
The assignments to input fields in the event block AT SELECTION-SCREEN OUTPUT always affect the selection screen and overwrite the user inputs from previous displays of the same selection screen. Assignments in the event blocks LOAD-OF-PROGRAM oder INITIALIZATION, on the other hand, only have an effect at first program start.
<b>AT SELECTION-SCREEN ON {para|selcrit}</b>
This event is triggered at the screen event PAI of a selection screen if the content of the input field of a parameter para or a line of a selection criterion selcrit was passed to the ABAP program. In the event block, the user input can be checked. Sending a warning or an error message in the event block makes the fields para and selcrit ready for input again.
No parameter that is defined as a radio button can be specified. For this purpose, the addition ON RADIOBUTTON GROUP is provided.
If a user action takes place in the dialog box for the multiple selection of a selection criterion selcrit, the entries of the selection table are passed to the program, line by line. For each line, the event AT SELECTION-SCREEN ON selcrit is triggered.
<b>AT SELECTION-SCREEN ON END OF selcrit</b>
This event is triggered after the selection table selcrit has been fully passed to the program after a user action in the dialog box for the multiple selection has taken place. In the event block, the entire selection table can be checked.
<b>AT SELECTION-SCREEN ON BLOCK block</b>
This event is triggered at the screen event PAI of a selection screen if all the input fields of a block block of the selection screen were passed to the ABAP program. In the event block, the user inputs can be checked. Sending a warning or an error message in the event block makes all the fields of the block block ready for input again.
<b>AT SELECTION-SCREEN ON RADIOBUTTON GROUP radi</b>
This event is triggered at the screen event PAI of a selection screen if all the fields of a radio button group radi of the selection screen were passed to the ABAP program. In the event block, the user input can be checked. Sending a warning or error message in the event block makes all the radion buttons of the block radi ready for input again.
The individual fields of a radio button group are not passed individually and do not trigger the event AT SELECTION-SCREEN ON par.
<b>AT SELECTION-SCREEN { ON { HELP-REQUEST | VALUE-REQUEST } FOR
{para|selcrit-low|selcrit-high} }</b>
The two events ON HELP-REQUEST and ON VALUE-REQUEST are triggered at the screen events POH and POV of a selection screen if - for the input field of a parameter para or one of the input fields of a selection criterion selcrit - the field help F1 or the input help F4 was called. Other selection events are not triggered.
In the event blocks, a self-defined field or input field can be programmed, which overrides any helps possibly defined in the ABAP Dictionary.
These event blocks can only be implemented for fields of the selection screen that are defined in the same ABAP program and not in a possibly linked logical database.
With the events for the field and input help, no data is transported between the selection screen and the ABAP program. As with general screens, suitable function modules must be used for these. The parameters and selection criteria changed for the input help are transported to the selection screen.
<b>AT LINE-SELECTION</b>
This statement defines an event block whose event is triggered by the ABAP runtime environment during the display of a screen list - provided the scren cursor is on a list line and you select a function using the function code PICK. Through the definition of this event block, the standard list status is automatically enhanced in such a way that the function code F2 and, with it, the double-click mouse function is linked up to the function code PICK.
If the function key F2 is linked with a function code different than PICK, each double click will trigger its even, usually AT USER-COMMAND, and not AT LINE-SELECTION.
<b>AT USER-COMMAND</b>
This statement defines an event block whose event is triggered by the ABAP runtime environment if, during the display of a screen list, a function with a self-defined function code was chosen.
Self-defined function codes are all those that include character combinations, except for the following:
The function codes PICK and PF## ("##" stands for 01 to 24) do not cause the event AT USER-COMMAND, but the events AT LINE-SELECTION and AT PF##.
All function codes that start with the character "%" are interpreted as system functions and do not cause the event AT USER-COMMAND. The system functions for lists are listed in the following table 1.
The function codes in the following table 2, likewise, do not cause the event AT USER-COMMAND, but are handled by the list processor.
<b>AT PF##</b>
This statemet defines an event block whose event is triggered by the ABAP runtime environment during list display - provided the screen cursor is on a list line and a function is selected using the function code PF##. Here ## stands for a number between 01 and 24. In the= standard list status, these function codes are assigned to the function keys of the input device.
Instead of AT PF## , AT USER-COMMAND should always be used and special function codes should be assigned to the required function keys.
<b>TOP-OF-PAGE</b>
Effect
This statement defines an event block whose event is triggered by the ABAP runtime environment during the creation of a list. This occurs when a new page is started - that is, immediately before the first line in a new page is to be output. All list outputs that take place in the event block are placed below the standard page header of the list. You cannot output more lines than are available in the page within the event block. The NEW-PAGE statement is ignored within this event block.
The entire output written to the list in the event block belongs to the page header of the current list page. The top page header cannot be moved when you scroll vertically in a list displayed on the screen.
<b>TOP-OF-PAGE DURING LINE-SELECTION</b>
If you do not use an addition, an event block is triggered for event TOP-OF-PAGE during the creation of a basic list. If you use the addition DURING LINE-SELECTION, an event block is triggered for the corresponding events during the creation of details lists. You have to use system fields like sy-lsind to distinguish between the individual details lists.
<b>END-OF-PAGE</b>
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.
<b>Reward if usefull</b>
Similar Messages
-
What are the events in interactive reports?
what are the events in interactive reports?
could plz explainhi,
First event -
Initialization : triggered when the report is loaded in memory.
At selection-screen output : triggered when the selection screen is loaded in memory before being displayed.
At selection-screen : before leaving the selection screen.
start-of-selection : the first event for displaying the report.
This event keyword defines an event block whose event is triggered by the ABAP runtime environment
when calling the executable program selection screen processing of a selection screen.
In an executable program, all statements that are not declarations,
and are listed before the first explicit processing block, are assigned to this event block.
If the program does not contain an explicitly defined event block START-OF-SELECTION,
these statements form the complete event block START-OF-SELECTION.
If a program contains an explicitly defined event block START-OF-SELECTION,
these statements are added to the beginning of the event block.
If the program contains no explicitly defined event blocks,
these statements form the entire event block START-OF-SELECTION.
end-of-selection : after the start-of-selection is completed.
classiscal report events.
top-of-page : every time a new page is started in the list.
end-of-page : every time the list data reaches the footer region of the page.
interactive report events.
top of page during line selection : top of page event for secondary list.
at line-selection : evey time user dbl-clicks(F2) on the list data.
at pF<key> : function key from F5 to F12 to perform interactive action on the list.
at user-command
<b>http://help.sap.com/saphelp_47x200/helpdata/en/56/1eb6c705ad11d2952f0000e8353423/content.htm</b>
Rgds
Anver -
Catch the onClick event on Interactive Report to access columns content
Hi,
I am using Apex 4
I would like to display some rows into an interactive report. I have define a dynamic action on that report in order to catch the Mouse OnClick Event.
The Goal is to display the detail of the row in a form region in the sidebar.
To do this, I would like to get the content of a column of the row clicked and then execute a pl/sql block to get the detail of my row.
I am stuck to get the content of the column I have clicked within the dynamic action to pass it to execute the pl/sql block.
Any idee?
Many thanks
jko
Edited by: user617942 on 29-Jul-2010 04:19Hello,
Did I ask something stupid :-)
Jko
Edited by: user617942 on 29-Jul-2010 04:19
Edited by: user617942 on 29-Jul-2010 08:34 -
AT USER COMMAND event in interactive reports
hi experts,
Can anyone explain me about AT USER COMMAND event with one practical ex.
thanks in advance
R.vijaiHi vijaya kumar,
If the user chooses a function code during list processing that is neither processed by the system, or PICK or PF<nn>, the system triggers the event AT USER-COMMAND. For this event, you must define your own GUI status for a list. To react to your own function codes in a program, you must define the following event block:
AT USER-COMMAND.
<statements>.
In this event block, you can use an IF or CASE structure to tell the function codes apart. They are available in the system field SY-UCOMM. There are further system fields that are filled in list events, such as SY-LSIND and SY-PFKEY, that allow you to make further case distinctions.
REPORT Test_program.
START-OF-SELECTION.
SET PF-STATUS 'TEST'.
WRITE: 'Basic list, SY-LSIND =', sy-lsind.
AT LINE-SELECTION.
WRITE: 'LINE-SELECTION, SY-LSIND =', sy-lsind.
AT USER-COMMAND.
CASE sy-ucomm.
WHEN 'TEST'.
WRITE: 'TEST, SY-LSIND =', sy-lsind.
ENDCASE.
With this code double click on 'TEST' and define your own PF status and give user command as TEST and check out this useful programe.
All the very best to you.
Regards,
Mohan Vamsi Krishna.A -
WHAT ARE EVENTS IN INTERACTIVE LIST ?
WHAT ARE EVENTS IN INTERACTIVE LIST ? IS THERE A DIFFERENCE BETWEEN INTERACTIVE LIST AND INTERACTIVE REPORT ?
BEST REGARDS,
RYANHi
Events in Interactive Report
TOP-OF-PAGE DURING LINE-SELECTION
AT USER-COMMAND.
AT LINE-SELECTION
AT PF-FUNCTION KEY
Report Output is called LIST
Interactive report Output is nothing but Interactive List
<b><REMOVED BY MODERATOR></b>
Regards
Anji
Message was edited by:
Alvaro Tejada Galindo -
Multiple event not working in interactive report
Hi Experts,
I am developing a interactive report used Set-PFstatus '100' , AT user-command and At line-selection in a single program.
Here At line-selection is not working but at user-command is working fine.
After commenting set-PF ststus '100' event at line selection is working.
Ii want at to use at-user command and at line-selection both to work with set pf-status.
Please help me out.Hi,
You can use these events together but in case while
creating your GUI status for your program you have
to give Function Code 'PICK' with F2 short cut key
because for at line selectino double click 'PICK' function
code is trigerred.
hope it helps,
Regards
Mansi -
Which is first event triggred in interactive report
pls let me know
<b>The event are triggered depended on the way the output is generated . </b>
for eg:
"Initialization :
triggered when the report is loaded in memory.
"At selection-screen output :
triggered when the selection screen is loaded in memory before being displayed.
"At selection-screen / <field> :
before leaving the selection screen.
"start-of-selection :
the first event for displaying the report.
"end-of-selection :
after the start-of-selection is completed.
"classiscal report events.
"top-of-page :
every time a new page is started in the list.
"end-of-page :
every time the list data reaches the footer region of the page.
"interactive report events.
"top of page during line selection :
top of page event for secondary list.
"at line-selection :
evey time user dbl-clicks(F2) on the list data.
"at pF<key> :
function key from F5 to F12 to perform interactive action on the list.
reward points if it is usefull ....
Girish -
Hi Friends,
Can any one give sample programs of below Interactive Report Events ?
AT PF<nn> (obsolete)
AT LINE-SELECTION
AT USER-COMMAND
points for sure..
Regards
VijayaHi see the below program.
Hope this helps you.
But make sure that the Gui is also created and activated.
To do this just double click at at pf-status <b>statusname.</b>
REPORT Z_EVENTS LINE-SIZE 250.
Description : This Program accepts accept a range of Airline carrier *
ID and Flight connection numbers from the user and *
display SPFLI data.Develop a user interface for the *
basic list with two pushbuttons.It Sorts when the User *
clicks on the sort and sort by push buttons *
TABLES:
SPFLI. " Flight schedule
"Selection screen elements............................................
SELECTION-SCREEN BEGIN OF BLOCK
CARR_CONN.
SELECT-OPTIONS:
S_CARRID FOR SPFLI-CARRID, " Carrier Id
S_CONNID FOR SPFLI-CONNID. " Connection Id
SELECTION-SCREEN END OF BLOCK
CARR_CONN.
Dat declaration of the structure to hold spfli data
DATA:
W_LINE_DATA(255) TYPE C. " Line Content
DATA:
BEGIN OF FS_SPFLI,
CARRID LIKE SPFLI-CARRID, " Carrier Id
CONNID LIKE SPFLI-CONNID, " Connection Id
CITYFROM LIKE SPFLI-CITYFROM, " Departur City
CITYTO LIKE SPFLI-CITYTO, " Arrival City
AIRPFROM LIKE SPFLI-AIRPFROM, " Departure Airport
AIRPTO LIKE SPFLI-AIRPTO, " Arrival Airport
COUNTRYFR LIKE SPFLI-COUNTRYFR, " Departure Country
COUNTRYTO LIKE SPFLI-COUNTRYTO, " Arrival Country
END OF FS_SPFLI.
*Internal Table to hold FLIGHT_DETAILS *
DATA:
T_SPFLI LIKE
STANDARD TABLE " FS_SPFLI like Structure
OF FS_SPFLI,
W_FIELD(180) TYPE C.
*" Data declarations...................................................
Work variables *
DATA:
W_BOX TYPE C. " Check Box in the window
START OF SELECTION EVENT *
START-OF-SELECTION.
PERFORM SELECT_DETAILS.
Set PF-Status
SET PF-STATUS 'BUTTON_SORT'.
AT USER COMMAND EVENT *
AT USER-COMMAND.
GET CURSOR FIELD W_FIELD.
W_FIELD = W_FIELD+9(10).
CASE SY-UCOMM.
WHEN 'SORT'.
SORT T_SPFLI STABLE BY (W_FIELD) ASCENDING.
PERFORM DISPLAY_DETAILS.
WHEN 'SORTDATABY'.
PERFORM DISPLY_FIELDS.
WHEN 'SORTASCEN'.
PERFORM SORT_ASC_FIELD.
WHEN 'SORTDESCEN'.
PERFORM SORT_DES_FIELD.
WHEN OTHERS.
WRITE 'Invalid Command'(002).
ENDCASE. " CASE SY-UCOMM.
END OF SELECTION EVENT *
END-OF-SELECTION.
PERFORM DISPLAY_DETAILS.
*& Form SELECT_DETAILS *
This Sub routine Retriebes the Details From SPFLI Table *
There are no interface parameters to be passed to this subroutine. *
FORM SELECT_DETAILS .
SELECT CARRID " Carrier Id
CONNID " Connection Id
CITYFROM " Departur City
CITYTO " Arrival City
AIRPFROM " Departure Airport
AIRPTO " Arrival Airport
COUNTRYFR " Departure Country
COUNTRYTO " Arrival Country
FROM SPFLI
INTO TABLE T_SPFLI
WHERE CARRID IN S_CARRID AND
CONNID IN S_CONNID.
IF SY-SUBRC NE 0.
WRITE'No Records Available'(001).
ENDIF. " IF SY-SUBRC NE 0.
ENDFORM. " SELECT_DETAILS
*& Form DISPLAY_DETAILS *
This subroutine displays the SPFLI data on the basic list *
There are no interface parameters to be passed to this subroutine. *
FORM DISPLAY_DETAILS .
MOVE 0 TO SY-LSIND .
LOOP AT T_SPFLI INTO FS_SPFLI.
AT FIRST.
WRITE:
/ 'Carrier Id'(003),
15 'Connection Id'(004),
30 'Departur City'(005),
45 'Arrival City'(006),
60 'Dept Airport'(007),
75 'Arri Airport'(008),
90 'Dept Country'(009),
105 'Arri Country'(010).
ULINE.
ENDAT.
WRITE:
/01 FS_SPFLI-CARRID, " Carrier Id
15 FS_SPFLI-CONNID, " Connection Id
30 FS_SPFLI-CITYFROM, " Departur City
45 FS_SPFLI-CITYTO, " Arrival City
60 FS_SPFLI-AIRPFROM, " Departure Airport
75 FS_SPFLI-AIRPTO, " Arrival Airport
90 FS_SPFLI-COUNTRYFR, " Departure Country
105 FS_SPFLI-COUNTRYTO. " Arrival Country
ENDLOOP. " LOOP AT T_SPFLI INTO FS_SPFLI
ENDFORM. " DISPLAY_DETAILS
*& Form DISPLY_FIELDS *
This Subroutine displays All Fields names in displayed list *
There are no interface parameters to be passed to this subroutine. *
FORM DISPLY_FIELDS.
SET PF-STATUS 'WINDOW'.
WINDOW STARTING AT 3 10
ENDING AT 15 60.
WRITE:
/1 W_BOX AS CHECKBOX,
5 'CARRID',
/1 W_BOX AS CHECKBOX,
5 'CONNID',
/1 W_BOX AS CHECKBOX,
5 'CITYFROM',
/1 W_BOX AS CHECKBOX,
5'CITYTO',
/1 W_BOX AS CHECKBOX,
5 'AIRPFROM',
/1 W_BOX AS CHECKBOX,
5 'AIRPTO',
/1 W_BOX AS CHECKBOX,
5 'COUNTRYFR',
/1 W_BOX AS CHECKBOX,
5 'COUNTRYTO'.
ENDFORM. " DISPLY_FIELDS
*& Form SORT_ASC_FIELD *
This subroutine sorts the list by selected fields in ascending *
order *
There are no interface parameters to be passed to this subroutine *
FORM SORT_ASC_FIELD .
DATA:
LW_CHECK TYPE C, " Check Box
LW_FIELD(255) TYPE C, " Field
LW_F_VALUE(10) TYPE C, " Field Value
LW_FIELD1(10) TYPE C, " Field Value
LW_FIELD2(10) TYPE C, " Field Value
LW_FIELD3(10) TYPE C, " Field Value
LW_FIELD4(10) TYPE C, " Field Value
LW_FIELD5(10) TYPE C, " Field Value
LW_FIELD6(10) TYPE C, " Field Value
LW_FIELD7(10) TYPE C, " Field Value
LW_FIELD8(10) TYPE C. " Field Value
DO 8 TIMES.
READ LINE SY-INDEX.
LW_CHECK = SY-LISEL+0(1).
LW_F_VALUE = SY-LISEL+4(10).
IF LW_CHECK = 'X'.
CASE SY-INDEX.
WHEN 1.
LW_FIELD1 = LW_F_VALUE.
WHEN 2.
LW_FIELD2 = LW_F_VALUE.
WHEN 3.
LW_FIELD3 = LW_F_VALUE.
WHEN 4.
LW_FIELD4 = LW_F_VALUE.
WHEN 5.
LW_FIELD5 = LW_F_VALUE.
WHEN 6.
LW_FIELD6 = LW_F_VALUE.
WHEN 7.
LW_FIELD7 = LW_F_VALUE.
WHEN 8.
LW_FIELD8 = LW_F_VALUE.
ENDCASE.
ENDIF.
ENDDO.
SORT T_SPFLI STABLE BY
(LW_FIELD1) ASCENDING
(LW_FIELD2) ASCENDING
(LW_FIELD3) ASCENDING
(LW_FIELD4) ASCENDING
(LW_FIELD5) ASCENDING
(LW_FIELD6) ASCENDING
(LW_FIELD7) ASCENDING
(LW_FIELD8) ASCENDING.
PERFORM DISPLAY_DETAILS.
ENDFORM. " SORT_ASC_FIELD
*& Form SORT_DES_FIELD
This subroutine sorts the list by selected fields in descending *
order *
There are no interface parameters to be passed to this subroutine *
FORM SORT_DES_FIELD .
DATA:
LW_CHECK TYPE C,
LW_FIELD(255) TYPE C,
LW_F_VALUE(10) TYPE C,
LW_FIELD1(10) TYPE C,LW_FIELD2(10)
TYPE C,
LW_FIELD3(10) TYPE C,LW_FIELD4(10)
TYPE C,
LW_FIELD5(10) TYPE C,LW_FIELD6(10)
TYPE C,
LW_FIELD7(10) TYPE C,LW_FIELD8(10)
TYPE C.
DO 8 TIMES.
READ LINE SY-INDEX.
LW_CHECK = SY-LISEL+0(1).
LW_F_VALUE = SY-LISEL+4(10).
IF LW_CHECK = 'X'.
CASE SY-INDEX.
WHEN 1.
LW_FIELD1 = LW_F_VALUE.
WHEN 2.
LW_FIELD2 = LW_F_VALUE.
WHEN 3.
LW_FIELD3 = LW_F_VALUE.
WHEN 4.
LW_FIELD4 = LW_F_VALUE.
WHEN 5.
LW_FIELD5 = LW_F_VALUE.
WHEN 6.
LW_FIELD6 = LW_F_VALUE.
WHEN 7.
LW_FIELD7 = LW_F_VALUE.
WHEN 8.
LW_FIELD8 = LW_F_VALUE.
ENDCASE. " CASE sy-index.
ENDIF. " IF lw_check = 'X'.
ENDDO. " DO 8 TIMES.
SORT T_SPFLI STABLE BY
(LW_FIELD1) DESCENDING
(LW_FIELD2) DESCENDING
(LW_FIELD3) DESCENDING
(LW_FIELD4) DESCENDING
(LW_FIELD5) DESCENDING
(LW_FIELD6) DESCENDING
(LW_FIELD7) DESCENDING
(LW_FIELD8) DESCENDING.
PERFORM DISPLAY_DETAILS.
ENDFORM. " SORT_DES_FIELD
Regards,
Rama chary.Pammi -
*what are the step by step events trigger in interactive report*
Hi gurus,
pls explain event by event triggers in interactive report.
points will be rewarded.
Thanks,
Balakrishna.Hi,
Interactive reporting allows the user to participate in retrieving and presenting data at each level during the session. Instead of presenting one extensive and detailed list with cluttered information, with interactive reporting you can create a condensed basic list from which the user can call detailed information by positioning the cursor and entering commands.
Detailed information is presented in secondary lists. A secondary list may either overlay the basic list completely or appear in an additional dialog window on the same screen. The secondary list can itself be interactive again. The basic list is not deleted when secondary list is created.
User can interact with the system by:
u2022 Double clicking or pressing F2
u2022 Selecting menu option
Like classical report, the interactive report is also event driven. Both the action mentioned above trigger events and code is written to handle these events. The events triggered by this action are as follows:
u2022 At line-selection
u2022 At user-command
u2022 Top-of-Page During Line-Selection for Secondary Page Header info
Interactive report consists of one BASIC list and 20 secondary list. Basic list is produced by START-OF-SELECTION event. When the user double clicks on the basic list or chooses the menu option, the secondary list is produced. All the events associated with classical report except end-of-page are applicable only to basic list.
AT LINE-SELECTION event
Double clicking is the way most users navigate through programs. Double clicking on basic list or any secondary list triggers the event AT LINE-SELECTION. SY-LSIND denotes the index of the list currently created. For BASIC list it is always 0. Following piece of code shows how to handle the event.
Start-of-selection.
Write: / u2018this is basic listu2019.
At line-selection.
Write : u2018this is first secondary listu2019.
In this case the output will be displayed on basic list i.e.
This is basic list.
When user double clicks on this line, the event at line-selection gets triggered and secondary list is produced, i.e. This is first secondary list.
You can go back to basic list by clicking on F3 or back icon on the standard tool bar. For this list, the value of sy-lsind will be 1.
HIDE technique
In this case thins are much simpler. Consider the case, wherein you display fields from table sflight in basic list. When user double clicks on any sflight-carrid, you are displaying the detailed information related to that particular carrid on secondary list. Hence there is a need to store the clicked carrid in some variable. So that you can access this carrid for next list. ABAP/4 has facility; a statement called HIDE, which provides the above functionality.
HIDE command temporarily stores the content of clicked field in system area.
Syntax:
HIDE <FIELDS>.
This statement stores the contents of variable <f> in relation to the current output line (system field SY-LINNO) internally in the so-called HIDE area. The variable <f> must not necessarily appear on the current line.
You have to place the HIDE statement always directly after the output statement i.e., WRITE for the variable <f>. As when you hide the variable, control is passed to next record. While writing, WRITE statement takes that record from header and writes it on to the list, but when writing onto your interactive list you will miss out 1st record.
To hide several variables, use chain HIDE statement.
As soon as the user selects a line for which you stored HIDE fields, the system fills the variables in the program with the values stored. A line can be selected.
u2022 By an interactive event.
For each interactive event, the HIDE fields of the line on which the cursor is positioned during the event are filled with the stored values.
The HIDE area is a table, in which the system stores the names and values of all HIDE fields for each list and line number. As soon as they are needed, the system reads the values from the table. (Please try to find the name of this table.)
Sy-lsind indicates the index of the list and can be used to handle all the secondary lists. When the user double clicks on the line or presses F2, sy-lsind is increased by one and this new sy-lsind can be handled. For example:
Write: / u2018this is basic listu2019.
u2022 Will create a basic list.
If sy-lsind = 1.
Write: / u2018this is first secondary listu2019.
Elseif sy-lsind = 2.
Write: / u2018This is second secondary listu2019.
Endif.
When this code is executed,
u2022 Basic list is produced.
u2022 When the user clicks on the basic list, sy-lsind becomes one.
u2022 AT LINE-SELECTION event is triggered.
u2022 Whatever is written under IF Sy-lsind = 1, gets executed.
u2022 Secondary list is produced.
u2022 Again if user clicks on this list, sy-lsind becomes two.
u2022 AT LINE-SELECTION gets triggered.
u2022 Code written under IF Sy-lsind = 2, gets executed.
A sample program for AT LINE-SELECTION.
AT USER-COMMAND
When the user selects the menu item or presses any function key, the event that is triggered is AT USER-COMMAND, and can be handled in the program by writing code for the same. The system variable SY-UCOMM stores the function code for the clicked menu item or for the function key and the same can be checked in the program. Sample code would look like
AT USER-COMMAND.
Case sy-ucomm.
When u2018DISPu2019.
Select * from sflight.
Write sflight-carrid, sflight-connid.
Endselect.
When u2018EXITu2019.
LEAVE.
If GUI status, suppose you have set menu bar for two items and the function code is u2018DISPu2019 and u2018EXITu2019 respectively. If the user clicks the menu item u2018DISPLAYu2019, then function code u2018DISPu2019 is stored in the sy-ucomm and whatever is written under the when u2018DISPu2019, gets executed. This is applicable for EXIT as well.
Sy-lsind for the screen increases when the user clicks the menu item.
Usually you have combination of all the three navigations in your user interface, i.e., you have to create menu bar, assign function code for the function keys and write code to handle all this in addition to handling double clicking.
Things to remember while using all the combinations:
u2022 Sy-lsind increases even if you select menu-item.
u2022 When the user double clicks on particular line, value of sy-ucomm is u2018PICK.
u2022 If you set sy-lsind = 2 for your 4th secondary list, when control is transferred to the 2nd secondary list, all the other lists after 2nd are lost or memory allocated to them is lost.
u2022 Sy-lisel also gives you the value of clicked line but in this case you cannot differentiate between field. To retrieve the exact field, you have to know the field length of each field.
u2022 If you use statement SY-LSIND = 1.
The system reacts to a manipulation of SY-LSIND only at the end of an event, directly before displaying the secondary list. So, if within the processing block, you use statements whose INDEX options access the list with the index SY-LSIND, make sure that you manipulate the SY-LSIND field only after processing these statements. The best way is to have it always at the `as the last statementu2019 of the processing block.
Regards,
Bhaskar -
Interactive report column filters to display differently than column values
Greetings...
We use images a lot in our interactive reports to provide a visual representation to a status, or something locked for update, or what-have-you. By default, when a user clicks the column heading of a column which contains images, the drop-down list that shows up displays the actual images, which is nice for the user to identify exactly which thing they want to filter on. The problem is when the user selects on of the options in the filtering drop-down, the resulting condition that is displayed under the interactive report search bar is the HTML code of the image. I'd like something else to display there because showing the user the HTML code is atrocious.
I didn't think what I want is possible, but then I came across the Page Locks page within ApEx (page 4000:291 in ApEx 4.0.1) which displays a list of all the pages of an application and whether they are locked or not. It also allows you to bulk lock or bulk unlock a bunch of pages. That page uses an interactive report with a column called "Status" which contains images that represent whether the page is locked or not. When you click the "Status" column heading to filter, instead of seeing the images of an open and closed lock, you see the words "Page Locked" and "Page Unlocked." And even better... when you select on of them, the condition that is displayed to the user is very user-friendly.
Can someone tell me how this is done so I can replicate it in my own apps?
Shane.Why not create the IR using the text you require e.g. 'Lock', 'Unlock' and then use JQuery to replace the text in the report with the image you want. All the filters should then show the plain text and the report will display the image. e.g.
http://apex.oracle.com/pls/apex/f?p=46801:1
Here's what I did:
Firstly make sure the IR has a region template.
Then create a Dynamic Action with the following attributes:
1. Advanced
2. Event: After Refresh
3. Selection Type: Region
4. Region: [select the IR Region]
5. Action: Execute JS Code
6. Fire on page load: [checked]
7. Code:
$('td [headers="TEST"]').each(function(index) {
if ($(this).text() == 'Lock') {
$(this).empty().html('<img src="/i/htmldb/icons/locked_small.gif" alt="Lock" />');
else {
$(this).empty().html('<img src="/i/htmldb/icons/unlocked_small.gif" alt="Unlock" />');
});Where TEST is the column name.
That's it, this may also be of interest:
http://simonhunt.blogspot.com/2011/10/adjusting-interactive-report-column.html
I hope it helps
Shunt -
Error while scheduling a Hyperion Interactive Report
Hi,
I'm trying to run a scheduled Hyperion Interactive Report (version 9.3.1). The report is scheduled to run for 1st of every month. After the report is scheduled. When a user tries to run the report on demand.
The error log states as follows:
$ view server_messages_IRJobService.log
"server_messages_IRJobService.log" [Read only] 38 lines, 2688 characters
<event logger="com.brio.one.services.bqservice.SERVICE" method="ThrID(7) Logger(ZDbgPrint)" timestamp="1247269603142" level="ERROR" thread="[ORB=_it_orb_id_1,Pool=1]::id-6" sequence_no="74">^M
<time>10 Jul 2009 16:46:43,142</time>^M
<context subject="TIPAdmin" session_id="zRMz99t6-00000122670ef701-0000-8197-0a3f0708" originator_type="IRJobService" originator_name="InteractiveReportingService" host="tsbrit02">^M
<info type="RESOURCE">IBQServiceImpl::runJob Job Identifier: TIPPFSMRPT Service Name: JF1_tsbrit02 Cycle Name: Cycle_0</info>^M
<info type="RESOURCE_ID">000001225ef102a5-0000-8197-0a3f0708</info>^M
</context>^M
<message><![CDATA[TCApp::ExecuteJavaScript failed: ]]></message>^M
</event>^M
^M
But when the report is uploaded and when the user tries running it. It runs without any problem.
The report has 3 filters(drop downs) on runtime.
Could anyone please help me in this regard.
Regards,
Sadiqcheck your discoverer user role using:
select granted_role from dba_role_privs where grantee=upper('<username>');
from your database. the database to which the desktop is connecting.
check for connect, resouce, multiorg roles. -
I Need Interactive Report for displaying vendor information. Based on the s
Interactive Report for displaying vendor information. Based on the selection made by the corresponding Vendor Bank Details are listed such that the line selected in the basic list was visible along with the secondary list.
hi
Hi
Use the Table LFA1 and LFB1 in the basic list
and LFBK table details in the secondary list
see the sample code related to customer Sales orders
modify it with the Vendor tables
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.
<b>Vendor performance report</b>
See this sample code
*"Table declarations...................................................
TABLES:
EKKO, " Purchasing Document Header
CDHDR, " Change document header
SSCRFIELDS. " Fields on selection screens
*"Selection screen elements............................................
SELECT-OPTIONS:
S_EBELN FOR EKKO-EBELN, " Purchasing Document Number
S_LIFNR FOR EKKO-LIFNR, " Vendor's account number
S_EKGRP FOR EKKO-EKGRP, " Purchasing group
S_BEDAT FOR EKKO-BEDAT, " Purchasing Document Date
S_UDATE FOR CDHDR-UDATE. " Creation date of the change
" document
*" Data declarations...................................................
Field String to hold Purchase Document Number *
DATA:
BEGIN OF FS_EBELN,
EBELN(90) TYPE C, " Purchase Document Number
ERNAM TYPE EKKO-ERNAM, " Name of Person who Created
" the Object
LIFNR TYPE EKKO-LIFNR, " Vendor's account number
EKGRP TYPE EKKO-EKGRP, " Purchasing group
BEDAT TYPE EKKO-BEDAT, " Purchasing Document Date
END OF FS_EBELN,
Field String to hold Purchase Document Header *
BEGIN OF FS_EKKO,
EBELN TYPE EKKO-EBELN, " Purchasing Document Number
ERNAM TYPE EKKO-ERNAM, " Name of Person who Created the
" Object
LIFNR TYPE EKKO-LIFNR, " Vendor's account number
EKGRP TYPE EKKO-EKGRP, " Purchasing group
BEDAT TYPE EKKO-BEDAT, " Purchasing Document Date
END OF FS_EKKO,
Field String to hold Account Number and name of the Vendor *
BEGIN OF FS_LFA1,
LIFNR TYPE LFA1-LIFNR, " Account Number of Vendor
NAME1 TYPE LFA1-NAME1, " Name1
END OF FS_LFA1,
Field String to hold Change date and the name of the user *
BEGIN OF FS_CDHDR,
OBJECTCLAS TYPE CDHDR-OBJECTCLAS, " Object Class
OBJECTID TYPE CDHDR-OBJECTID, " Object value
CHANGENR TYPE CDHDR-CHANGENR, " Document change number
USERNAME TYPE CDHDR-USERNAME, " User name
UDATE TYPE CDHDR-UDATE, " Creation date of the change
" document
END OF FS_CDHDR,
Field String to hold Change document items *
BEGIN OF FS_CDPOS,
OBJECTCLAS TYPE CDPOS-OBJECTCLAS," Object class
OBJECTID(10) TYPE C, " Object Value
CHANGENR TYPE CDPOS-CHANGENR, " Document change number
TABNAME TYPE CDPOS-TABNAME, " Table Name
FNAME TYPE CDPOS-FNAME, " Field Name
VALUE_NEW TYPE CDPOS-VALUE_NEW, " New contents of changed field
VALUE_OLD TYPE CDPOS-VALUE_OLD, " Old contents of changed field
END OF FS_CDPOS,
Field String to hold Date Element Name *
BEGIN OF FS_DATAELE,
TABNAME TYPE DD03L-TABNAME, " Table Name
FIELDNAME TYPE DD03L-FIELDNAME, " Field Name
ROLLNAME TYPE DD03L-ROLLNAME, " Data element (semantic domain)
END OF FS_DATAELE,
Field String to hold Short Text of the Date Element *
BEGIN OF FS_TEXT,
ROLLNAME TYPE DD04T-ROLLNAME, " Data element (semantic domain)
DDTEXT TYPE DD04T-DDTEXT, " Short Text Describing R/3
" Repository Objects
END OF FS_TEXT,
Field String to hold data to be displayed on the ALV grid *
BEGIN OF FS_OUTTAB,
EBELN TYPE EKKO-EBELN, " Purchasing Document Number
ERNAM TYPE EKKO-ERNAM, " Name of Person who Created the
" Object
LIFNR TYPE EKKO-LIFNR, " Vendor's account number
EKGRP TYPE EKKO-EKGRP, " Purchasing group
BEDAT TYPE EKKO-BEDAT, " Purchasing Document Date
WERKS TYPE LFA1-WERKS, " Plant
NAME1 TYPE LFA1-NAME1, " Name1
USERNAME TYPE CDHDR-USERNAME, " User name
UDATE TYPE CDHDR-UDATE, " Creation date of the change
" document
DDTEXT TYPE DD04T-DDTEXT, " Short Text Describing R/3
" Repository Objects
VALUE_NEW TYPE CDPOS-VALUE_NEW, " New contents of changed field
VALUE_OLD TYPE CDPOS-VALUE_OLD, " Old contents of changed field
END OF FS_OUTTAB,
Internal table to hold Purchase Document Number *
T_EBELN LIKE STANDARD TABLE
OF FS_EBELN,
Internal table to hold Purchase Document Header *
T_EKKO LIKE STANDARD TABLE
OF FS_EKKO,
Temp Internal table to hold Purchase Document Header *
T_EKKO_TEMP LIKE STANDARD TABLE
OF FS_EKKO,
Internal table to hold Account number and Name of the Vendor *
T_LFA1 LIKE STANDARD TABLE
OF FS_LFA1,
Internal Table to hold Change date and the name of the user *
T_CDHDR LIKE STANDARD TABLE
OF FS_CDHDR,
Internal Table to hold Change document items *
T_CDPOS LIKE STANDARD TABLE
OF FS_CDPOS,
Temp. Internal Table to hold Change document items *
T_CDPOS_TEMP LIKE STANDARD TABLE
OF FS_CDPOS,
Internal Table to hold Data Element Name *
T_DATAELE LIKE STANDARD TABLE
OF FS_DATAELE,
Temp. Internal Table to hold Data Element Name *
T_DATAELE_TEMP LIKE STANDARD TABLE
OF FS_DATAELE,
Internal Table to hold Short Text of the Date Element *
T_TEXT LIKE STANDARD TABLE
OF FS_TEXT,
Internal Table to hold data to be displayed on the ALV grid *
T_OUTTAB LIKE STANDARD TABLE
OF FS_OUTTAB.
C L A S S D E F I N I T I O N *
CLASS LCL_EVENT_HANDLER DEFINITION DEFERRED.
*" Data declarations...................................................
Work variables *
DATA:
W_EBELN TYPE EKKO-EBELN, " Purchasing Document Number
W_LIFNR TYPE EKKO-LIFNR, " Vendor's account number
W_EKGRP TYPE EKKO-EKGRP, " Purchasing group
W_VALUE TYPE EKKO-EBELN, " Reflected Value
W_SPACE VALUE ' ', " Space
W_FLAG TYPE I, " Flag Variable
W_VARIANT TYPE DISVARIANT, " Variant
*--- ALV Grid
W_GRID TYPE REF TO CL_GUI_ALV_GRID,
*--- Event Handler
W_EVENT_CLICK TYPE REF TO LCL_EVENT_HANDLER,
*--- Field catalog table
T_FIELDCAT TYPE LVC_T_FCAT.
AT SELECTION-SCREEN EVENT *
AT SELECTION-SCREEN ON S_EBELN.
Subroutine to validate Purchase Document Number.
PERFORM VALIDATE_PD_NUM.
AT SELECTION-SCREEN ON S_LIFNR.
Subroutine to validate Vendor Number.
PERFORM VALIDATE_VEN_NUM.
AT SELECTION-SCREEN ON S_EKGRP.
Subroutine to validate Purchase Group.
PERFORM VALIDATE_PUR_GRP.
START-OF-SELECTION EVENT *
START-OF-SELECTION.
Subroutine to select all Purchase orders.
PERFORM SELECT_PO.
CHECK W_FLAG EQ 0.
Subroutine to select Object values.
PERFORM SELECT_OBJ_ID.
CHECK W_FLAG EQ 0.
Subroutine to select Changed values.
PERFORM SELECT_CHANGED_VALUE.
CHECK W_FLAG EQ 0.
Subroutine to Select Purchase Orders.
PERFORM SELECT_PUR_DOC.
Subroutine to select Vendor Details.
PERFORM SELECT_VENDOR.
Subroutine to select Text for the Changed values.
PERFORM DESCRIPTION.
END-OF-SELECTION EVENT *
END-OF-SELECTION.
IF NOT T_EKKO IS INITIAL.
Subroutine to populate the Output Table.
PERFORM FILL_OUTTAB.
Subroutine to build Field Catalog.
PERFORM PREPARE_FIELD_CATALOG CHANGING T_FIELDCAT.
CALL SCREEN 100.
ENDIF. " IF NOT T_EKKO...
CLASS LCL_EVENT_HANDLER DEFINITION
Defining Class which handles events
CLASS LCL_EVENT_HANDLER DEFINITION .
PUBLIC SECTION .
METHODS:
HANDLE_HOTSPOT_CLICK
FOR EVENT HOTSPOT_CLICK OF CL_GUI_ALV_GRID
IMPORTING E_ROW_ID E_COLUMN_ID.
ENDCLASS. " LCL_EVENT_HANDLER DEFINITION
CLASS LCL_EVENT_HANDLER IMPLEMENTATION
Implementing the Class which can handle events
CLASS LCL_EVENT_HANDLER IMPLEMENTATION .
*---Handle Double Click
METHOD HANDLE_HOTSPOT_CLICK .
Subroutine to get the HotSpot Cell information.
PERFORM GET_CELL_INFO.
SET PARAMETER ID 'BES' FIELD W_VALUE.
CALL TRANSACTION 'ME23N'.
ENDMETHOD. " HANDLE_HOTSPOT_CLICK
ENDCLASS. " LCL_EVENT_HANDLER
*& Module STATUS_0100 OUTPUT
PBO Event
MODULE STATUS_0100 OUTPUT.
SET PF-STATUS 'OOPS'.
SET TITLEBAR 'TIT'.
Subroutine to fill the Variant Structure
PERFORM FILL_VARIANT.
IF W_GRID IS INITIAL.
CREATE OBJECT W_GRID
EXPORTING
I_SHELLSTYLE = 0
I_LIFETIME =
I_PARENT = CL_GUI_CONTAINER=>SCREEN0
I_APPL_EVENTS =
I_PARENTDBG =
I_APPLOGPARENT =
I_GRAPHICSPARENT =
I_NAME =
I_FCAT_COMPLETE = SPACE
EXCEPTIONS
ERROR_CNTL_CREATE = 1
ERROR_CNTL_INIT = 2
ERROR_CNTL_LINK = 3
ERROR_DP_CREATE = 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. " IF SY-SUBRC <> 0
CALL METHOD W_GRID->SET_TABLE_FOR_FIRST_DISPLAY
EXPORTING
I_BUFFER_ACTIVE =
I_BYPASSING_BUFFER =
I_CONSISTENCY_CHECK =
I_STRUCTURE_NAME =
IS_VARIANT = W_VARIANT
I_SAVE = 'A'
I_DEFAULT = 'X'
IS_LAYOUT =
IS_PRINT =
IT_SPECIAL_GROUPS =
IT_TOOLBAR_EXCLUDING =
IT_HYPERLINK =
IT_ALV_GRAPHICS =
IT_EXCEPT_QINFO =
IR_SALV_ADAPTER =
CHANGING
IT_OUTTAB = T_OUTTAB
IT_FIELDCATALOG = T_FIELDCAT
IT_SORT =
IT_FILTER =
EXCEPTIONS
INVALID_PARAMETER_COMBINATION = 1
PROGRAM_ERROR = 2
TOO_MANY_LINES = 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. " IF SY-SUBRC <> 0.
ENDIF. " IF W_GRID IS INITIAL
CREATE OBJECT W_EVENT_CLICK.
SET HANDLER W_EVENT_CLICK->HANDLE_HOTSPOT_CLICK FOR W_GRID.
ENDMODULE. " STATUS_0100 OUTPUT
*& Module USER_COMMAND_0100 INPUT
PAI Event
MODULE USER_COMMAND_0100 INPUT.
CASE SY-UCOMM.
WHEN 'BACK'.
LEAVE TO SCREEN 0.
WHEN 'EXIT'.
LEAVE PROGRAM.
WHEN 'CANCEL'.
LEAVE TO SCREEN 0.
ENDCASE.
ENDMODULE. " USER_COMMAND_0100 INPUT
*& Form PREPARE_FIELD_CATALOG
Subroutine to build the Field catalog
<--P_T_FIELDCAT Field Catalog Table
FORM PREPARE_FIELD_CATALOG CHANGING PT_FIELDCAT TYPE LVC_T_FCAT .
DATA LS_FCAT TYPE LVC_S_FCAT.
Purchasing group...
LS_FCAT-FIELDNAME = 'EKGRP'.
LS_FCAT-REF_TABLE = 'EKKO'.
LS_FCAT-INTTYPE = 'C'.
LS_FCAT-OUTPUTLEN = '10'.
APPEND LS_FCAT TO PT_FIELDCAT.
CLEAR LS_FCAT.
Purchasing Document Number...
LS_FCAT-FIELDNAME = 'EBELN'.
LS_FCAT-REF_TABLE = 'EKKO' .
LS_FCAT-EMPHASIZE = 'C411'.
LS_FCAT-INTTYPE = 'C'.
LS_FCAT-OUTPUTLEN = '10'.
LS_FCAT-HOTSPOT = 'X'.
APPEND LS_FCAT TO PT_FIELDCAT .
CLEAR LS_FCAT .
Name of Person who Created the Object...
LS_FCAT-FIELDNAME = 'ERNAM'.
LS_FCAT-REF_TABLE = 'EKKO'.
LS_FCAT-OUTPUTLEN = '15' .
APPEND LS_FCAT TO PT_FIELDCAT.
CLEAR LS_FCAT.
Purchasing Document Date...
LS_FCAT-FIELDNAME = 'BEDAT'.
LS_FCAT-REF_TABLE = 'EKKO'.
LS_FCAT-INTTYPE = 'C'.
LS_FCAT-OUTPUTLEN = '10'.
APPEND LS_FCAT TO PT_FIELDCAT.
CLEAR LS_FCAT.
Vendor's account number...
LS_FCAT-FIELDNAME = 'LIFNR'.
LS_FCAT-REF_TABLE = 'EKKO'.
LS_FCAT-INTTYPE = 'C'.
LS_FCAT-OUTPUTLEN = '10'.
APPEND LS_FCAT TO PT_FIELDCAT.
CLEAR LS_FCAT.
Account Number of Vendor or Creditor...
LS_FCAT-FIELDNAME = 'NAME1'.
LS_FCAT-REF_TABLE = 'LFA1'.
LS_FCAT-INTTYPE = 'C'.
LS_FCAT-OUTPUTLEN = '10'.
LS_FCAT-COLTEXT = 'Vendor Name'(001).
LS_FCAT-SELTEXT = 'Vendor Name'(001).
APPEND LS_FCAT TO PT_FIELDCAT.
CLEAR LS_FCAT.
Creation date of the change document...
LS_FCAT-FIELDNAME = 'UDATE'.
LS_FCAT-REF_TABLE = 'CDHDR'.
LS_FCAT-INTTYPE = 'C'.
LS_FCAT-OUTPUTLEN = '10'.
LS_FCAT-COLTEXT = 'Change Date'(002).
LS_FCAT-SELTEXT = 'Change Date'(002).
APPEND LS_FCAT TO PT_FIELDCAT.
CLEAR LS_FCAT.
User name of the person responsible in change document...
LS_FCAT-FIELDNAME = 'USERNAME'.
LS_FCAT-REF_TABLE = 'CDHDR'.
LS_FCAT-INTTYPE = 'C'.
LS_FCAT-OUTPUTLEN = '10'.
LS_FCAT-COLTEXT = 'Modified by'(003).
LS_FCAT-SELTEXT = 'Modified by'(003).
APPEND LS_FCAT TO PT_FIELDCAT.
CLEAR LS_FCAT.
Short Text Describing R/3 Repository Objects...
LS_FCAT-FIELDNAME = 'DDTEXT'.
LS_FCAT-REF_TABLE = 'DD04T'.
LS_FCAT-INTTYPE = 'C'.
LS_FCAT-OUTPUTLEN = '15'.
APPEND LS_FCAT TO PT_FIELDCAT.
CLEAR LS_FCAT.
Old contents of changed field...
LS_FCAT-FIELDNAME = 'VALUE_OLD'.
LS_FCAT-REF_TABLE = 'CDPOS'.
LS_FCAT-INTTYPE = 'C'.
LS_FCAT-OUTPUTLEN = '12'.
APPEND LS_FCAT TO PT_FIELDCAT.
CLEAR LS_FCAT.
New contents of changed field...
LS_FCAT-FIELDNAME = 'VALUE_NEW'.
LS_FCAT-REF_TABLE = 'CDPOS'.
LS_FCAT-INTTYPE = 'C'.
LS_FCAT-OUTPUTLEN = '12'.
APPEND LS_FCAT TO PT_FIELDCAT.
CLEAR LS_FCAT.
ENDFORM. " PREPARE_FIELD_CATALOG
*& Form SELECT_PO
Subroutine to select all the Purchase Orders
There are no interface parameters to be passed to this subroutine.
FORM SELECT_PO .
SELECT EBELN " Purchasing Document Number
ERNAM " Name of Person who Created
" the Object
LIFNR " Vendor's account number
EKGRP " Purchasing group
BEDAT " Purchasing Document Date
FROM EKKO
PACKAGE SIZE 10000
APPENDING TABLE T_EBELN
WHERE EBELN IN S_EBELN
AND BEDAT IN S_BEDAT.
ENDSELECT.
IF SY-SUBRC NE 0.
W_FLAG = 1.
MESSAGE S401(M8).
ENDIF. " IF SY-SUBRC NE 0
ENDFORM. " SELECT_PO
*& Form SELECT_OBJ_ID
Subroutine to select Object ID
There are no interface parameters to be passed to this subroutine.
FORM SELECT_OBJ_ID .
IF NOT T_EBELN IS INITIAL.
SELECT OBJECTCLAS " Object Class
OBJECTID " Object value
CHANGENR " Document change number
USERNAME " User name
UDATE " Creation date
FROM CDHDR
INTO TABLE T_CDHDR
FOR ALL ENTRIES IN T_EBELN
WHERE OBJECTID EQ T_EBELN-EBELN
AND UDATE IN S_UDATE
AND TCODE IN ('ME21N','ME22N','ME23N').
ENDSELECT.
IF SY-SUBRC NE 0.
W_FLAG = 1.
MESSAGE S833(M8) WITH 'Header Not Found'(031).
ENDIF. " IF SY-SUBRC NE 0.
ENDIF. " IF NOT T_EBELN IS INITIAL
ENDFORM. " SELECT_OBJ_ID
*& Form SELECT_CHANGED_VALUE
Subroutine to select Changed Values
There are no interface parameters to be passed to this subroutine.
FORM SELECT_CHANGED_VALUE .
IF NOT T_CDHDR IS INITIAL.
SELECT OBJECTCLAS " Object class
OBJECTID " Object value
CHANGENR " Document change number
TABNAME " Table Name
FNAME " Field Name
VALUE_NEW " New contents of changed field
VALUE_OLD " Old contents of changed field
FROM CDPOS
PACKAGE SIZE 10000
APPENDING TABLE T_CDPOS
FOR ALL ENTRIES IN T_CDHDR
WHERE OBJECTCLAS EQ T_CDHDR-OBJECTCLAS
AND OBJECTID EQ T_CDHDR-OBJECTID
AND CHANGENR EQ T_CDHDR-CHANGENR.
ENDSELECT.
IF SY-SUBRC NE 0.
W_FLAG = 1.
MESSAGE S833(M8) WITH 'Item Not Found'(032).
ENDIF. " IF SY-SUBRC NE 0.
ENDIF. " IF NOT T_CDHDR IS INITIAL
T_CDPOS_TEMP[] = T_CDPOS[].
ENDFORM. " SELECT_CHANGED_VALUE
*& Form SELECT_PUR_DOC
Subroutine to select Purchase Order Details
There are no interface parameters to be passed to this subroutine.
FORM SELECT_PUR_DOC .
IF NOT T_CDPOS IS INITIAL.
SORT T_EBELN BY EBELN.
LOOP AT T_CDPOS INTO FS_CDPOS.
READ TABLE T_EBELN INTO FS_EBELN WITH KEY EBELN =
FS_CDPOS-OBJECTID BINARY SEARCH.
IF SY-SUBRC NE 0.
DELETE TABLE T_EBELN FROM FS_EBELN.
ENDIF. " IF SY-SUBRC NE 0.
ENDLOOP. " LOOP AT T_CDPOS...
LOOP AT T_EBELN INTO FS_EBELN.
MOVE FS_EBELN-EBELN TO FS_EKKO-EBELN.
MOVE FS_EBELN-ERNAM TO FS_EKKO-ERNAM.
MOVE FS_EBELN-LIFNR TO FS_EKKO-LIFNR.
MOVE FS_EBELN-EKGRP TO FS_EKKO-EKGRP.
MOVE FS_EBELN-BEDAT TO FS_EKKO-BEDAT.
APPEND FS_EKKO TO T_EKKO.
ENDLOOP. " LOOP AT T_EBELN...
T_EKKO_TEMP[] = T_EKKO[].
ENDIF. " IF NOT T_CDPOS IS INITIAL
ENDFORM. " SELECT_PUR_DOC
*& Form SELECT_VENDOR
Subroutine to select Vendor details
There are no interface parameters to be passed to this subroutine.
FORM SELECT_VENDOR .
IF NOT T_EKKO IS INITIAL.
SORT T_EKKO_TEMP BY LIFNR.
DELETE ADJACENT DUPLICATES FROM T_EKKO_TEMP COMPARING LIFNR.
SELECT LIFNR " Account Number of Vendor or
" Creditor
NAME1 " Name 1
FROM LFA1
INTO TABLE T_LFA1
FOR ALL ENTRIES IN T_EKKO_TEMP
WHERE LIFNR EQ T_EKKO_TEMP-LIFNR.
IF SY-SUBRC NE 0.
MESSAGE S002(M8) WITH 'Master Details'(033).
ENDIF. " IF SY-SUBRC NE 0.
ENDIF. " IF NOT T_EKKO IS INITIAL
ENDFORM. " SELECT_VENDOR
*& Form DESCRIPTION
Subroutine to get the description
There are no interface parameters to be passed to this subroutine.
FORM DESCRIPTION .
IF NOT T_CDPOS IS INITIAL.
SORT T_CDPOS_TEMP BY TABNAME FNAME.
DELETE ADJACENT DUPLICATES FROM T_CDPOS_TEMP COMPARING TABNAME FNAME
SELECT TABNAME " Table Name
FIELDNAME " Field Name
ROLLNAME " Data element
FROM DD03L
INTO TABLE T_DATAELE
FOR ALL ENTRIES IN T_CDPOS_TEMP
WHERE TABNAME EQ T_CDPOS_TEMP-TABNAME
AND FIELDNAME EQ T_CDPOS_TEMP-FNAME.
IF NOT T_DATAELE IS INITIAL.
T_DATAELE_TEMP[] = T_DATAELE[].
SORT T_DATAELE_TEMP BY ROLLNAME.
DELETE ADJACENT DUPLICATES FROM T_DATAELE_TEMP COMPARING ROLLNAME.
SELECT ROLLNAME " Data element
DDTEXT " Short Text Describing R/3
" Repository Objects
FROM DD04T
INTO TABLE T_TEXT
FOR ALL ENTRIES IN T_DATAELE_TEMP
WHERE ROLLNAME EQ T_DATAELE_TEMP-ROLLNAME
AND DDLANGUAGE EQ SY-LANGU.
IF SY-SUBRC NE 0.
EXIT.
ENDIF. " IF SY-SUBRC NE 0.
ENDIF. " IF NOT T_DATAELE IS INITIAL.
ENDIF. " IF NOT T_CDPOS IS INITIAL.
ENDFORM. " DESCRIPTION
*& Form FILL_OUTTAB
Subroutine to populate the Outtab
There are no interface parameters to be passed to this subroutine.
FORM FILL_OUTTAB .
SORT T_CDHDR BY OBJECTCLAS OBJECTID CHANGENR.
SORT T_EKKO BY EBELN.
SORT T_LFA1 BY LIFNR.
SORT T_DATAELE BY TABNAME FIELDNAME.
SORT T_TEXT BY ROLLNAME.
LOOP AT T_CDPOS INTO FS_CDPOS.
READ TABLE T_CDHDR INTO FS_CDHDR WITH KEY
OBJECTCLAS = FS_CDPOS-OBJECTCLAS
OBJECTID = FS_CDPOS-OBJECTID
CHANGENR = FS_CDPOS-CHANGENR
BINARY SEARCH.
IF SY-SUBRC EQ 0.
MOVE FS_CDHDR-USERNAME TO FS_OUTTAB-USERNAME.
MOVE FS_CDHDR-UDATE TO FS_OUTTAB-UDATE.
READ TABLE T_EKKO INTO FS_EKKO WITH KEY
EBELN = FS_CDHDR-OBJECTID
BINARY SEARCH.
IF SY-SUBRC EQ 0.
MOVE FS_EKKO-EBELN TO FS_OUTTAB-EBELN.
MOVE FS_EKKO-ERNAM TO FS_OUTTAB-ERNAM.
MOVE FS_EKKO-LIFNR TO FS_OUTTAB-LIFNR.
MOVE FS_EKKO-EKGRP TO FS_OUTTAB-EKGRP.
MOVE FS_EKKO-BEDAT TO FS_OUTTAB-BEDAT.
READ TABLE T_LFA1 INTO FS_LFA1 WITH KEY
LIFNR = FS_EKKO-LIFNR
BINARY SEARCH.
IF SY-SUBRC EQ 0.
MOVE FS_LFA1-NAME1 TO FS_OUTTAB-NAME1.
ENDIF. " IF SY-SUBRC EQ 0.
ENDIF. " IF SY-SUBRC EQ 0.
ENDIF. " IF SY-SUBRC EQ 0.
MOVE FS_CDPOS-VALUE_NEW TO FS_OUTTAB-VALUE_NEW.
MOVE FS_CDPOS-VALUE_OLD TO FS_OUTTAB-VALUE_OLD.
READ TABLE T_DATAELE INTO FS_DATAELE WITH KEY
TABNAME = FS_CDPOS-TABNAME
FIELDNAME = FS_CDPOS-FNAME
BINARY SEARCH.
IF SY-SUBRC EQ 0.
READ TABLE T_TEXT INTO FS_TEXT WITH KEY
ROLLNAME = FS_DATAELE-ROLLNAME
BINARY SEARCH.
IF SY-SUBRC EQ 0.
MOVE FS_TEXT-DDTEXT TO FS_OUTTAB-DDTEXT.
ENDIF. " IF SY-SUBRC EQ 0.
ENDIF. " IF SY-SUBRC EQ 0.
APPEND FS_OUTTAB TO T_OUTTAB.
CLEAR FS_OUTTAB.
ENDLOOP.
ENDFORM. " FILL_OUTTAB
*& Form GET_CELL_INFO
Subroutine to get the Cell Information
--> W_VALUE Holds the value of Hotspot clicked
FORM GET_CELL_INFO .
CALL METHOD W_GRID->GET_CURRENT_CELL
IMPORTING
E_ROW =
E_VALUE = W_VALUE
E_COL =
ES_ROW_ID =
ES_COL_ID =
ES_ROW_NO =
ENDFORM. " GET_CELL_INFO
*& Form VALIDATE_PD_NUM
Subroutine to validate Purchase Document Number
There are no interface parameters to be passed to this subroutine.
FORM VALIDATE_PD_NUM .
IF NOT S_EBELN[] IS INITIAL.
SELECT EBELN " Purchase Document Number
FROM EKKO
INTO W_EBELN
UP TO 1 ROWS
WHERE EBELN IN S_EBELN.
ENDSELECT.
IF SY-SUBRC NE 0.
CLEAR SSCRFIELDS-UCOMM.
MESSAGE E717(M8).
ENDIF. " IF SY-SUBRC NE 0
ENDIF. " IF NOT S_EBELN[]...
ENDFORM. " VALIDATE_PD_NUM
*& Form VALIDATE_VEN_NUM
Subroutine to validate Vendor Number
There are no interface parameters to be passed to this subroutine.
FORM VALIDATE_VEN_NUM .
IF NOT S_LIFNR[] IS INITIAL.
SELECT LIFNR " Vendor Number
FROM LFA1
INTO W_LIFNR
UP TO 1 ROWS
WHERE LIFNR IN S_LIFNR.
ENDSELECT.
IF SY-SUBRC NE 0.
CLEAR SSCRFIELDS-UCOMM.
MESSAGE E002(M8) WITH W_SPACE.
ENDIF. " IF SY-SUBRC NE 0
ENDIF. " IF NOT S_LIFNR[]...
ENDFORM. " VALIDATE_VEN_NUM
*& Form VALIDATE_PUR_GRP
Subroutine to validate the Purchase Group
There are no interface parameters to be passed to this subroutine.
FORM VALIDATE_PUR_GRP .
IF NOT S_EKGRP[] IS INITIAL.
SELECT EKGRP " Purchase Group
FROM T024
INTO W_EKGRP
UP TO 1 ROWS
WHERE EKGRP IN S_EKGRP.
ENDSELECT.
IF SY-SUBRC NE 0.
CLEAR SSCRFIELDS-UCOMM.
MESSAGE E622(M8) WITH W_SPACE.
ENDIF. " IF SY-SUBRC NE 0
ENDIF. " IF NOT S_EKFRP[]...
ENDFORM. " VALIDATE_PUR_GRP
*& Form FILL_VARIANT
Subroutine to fill the Variant Structure
There are no interface parameters to be passed to this subroutine
FORM FILL_VARIANT .
Filling the Variant structure
W_VARIANT-REPORT = SY-REPID.
W_VARIANT-USERNAME = SY-UNAME.
ENDFORM. " FILL_VARIANT
<b>Reward if usefull</b> -
Remove HTML from Interactive report download
I have interactive reports where the column link on a specific column has to be dynamic, that means, it cannot be hard coded in the column link attributes. The following is an example of one such report query:
case when d.object_type_description ='Business Service' then
'< href="f?p='||:app_id||':183:'||:app_session||'::::P183_OBJECT_ID:'||d.id||'">'||d.object_name||'</>'
when d.object_type_description = 'Real Time Event' then
'< href="f?p='||:app_id||':162:'||:app_session||'::::P162_OBJECT_ID:'||d.id||'">'||d.object_name||'</>'
else
null
end as "OBJECT NAME"As you see in the above example, the link on the "Object Name" column could either redirect to page 183 or to page 162 based on the "Object Type Description" column.
The column attribute of the "Object Name" column has "Display Type" set to "Standard Report Column". That works perfectly fine in the UI of the report. However, if I download the IR data (in any format) from the Actions -> Download menu, the object name column values are downloaded with the HTML characters as:
< href="f?p=15548:183:6072319179284::::P183_OBJECT_ID:255245470513999672860510787772603748464">JP010000</>where JP010000 is the object name.
Is there a way I can strip the HTML from the column values in the downloaded files?
I am using Apex 4.1.Rohit,
You can define the link in the query, make it hidden, use the value as column link URL. So, your query will look like the following:
d.object_name,
case when d.object_type_description ='Business Service' then
'f?p='||:app_id||':183:'||:app_session||'::::P183_OBJECT_ID:'||d.id
when d.object_type_description = 'Real Time Event' then
'f?p='||:app_id||':162:'||:app_session||'::::P162_OBJECT_ID:'||d.id
else
null
end linkChange the display type of LINK column to Hidden. In column link, enter #OBJECT_NAME# as Link Text. Select URL as Target. Enter #LINK# as URL value. In APEX 4.2, you can do this in easier way by defining HTML Column Expression.
Regards,
Christina
Edited by: cbcho on Sep 27, 2012 11:35 AM -
Dynamic Action based on Interactive Report Select List Value
I'd like to perform a Dynamic Action when a user selects one of 3 options from a Select List within an Interactive Report:
select APEX_ITEM.SELECT_LIST(
p_idx => 3,
--p_value => deptno,
p_list_values => 'Copy;Copy,Delete;Delete,Export to PDF;Export to PDF',
--p_attributes => 'style="color:red;"',
p_show_null => 'YES',
p_null_value => NULL,
p_null_text => '--Select--',
--p_item_id => 'f03_#ROWNUM#',
p_item_id => 'P6_IR_SELECT_LIST',
p_item_label => 'Label for f03_#ROWNUM#',
p_show_extra => 'YES') "Actions"
from dual;
When building the Dynamic Action, I chose the following values from the Advanced wizard
Event: Select
Selection Type: DOM Object
DOM Object: P6_IR_SELECT_LIST
Condition: Equal to
Value: "Delete"
True Action: Execute Javascript Code: Alert('Here');
Doesn't seem to be firing...can anyone help?
Thanks in advance,
JohnHi,
I am not sure if the "equal to" condition applies to a DOM object... after all, a DOM object can be anything (any HTML element) not only a field.
Try using a javascript expression instead, like this:
$v('P6_IR_SELECT_LIST')=='Delete'UPDATE: Sorry, I just tested and "equal to" condition works for DOM objects... should have tested before posting!
Luis
Edited by: Luis Cabral on Feb 29, 2012 4:45 PM -
Button on Interactive Report to fire a process using JavaScript
I have a requirement to trigger a process from a button on an interactive report. One of the report columns has the triggering data allowed to make the process fire. The requirement is that the button says different things based on the value from another column in report.
My button is an html button that when the process is allowed to run, is enabled and fires a javascript function. When the process is not allowed to run for the row where the button is placed, the button changes text, color and is disabled.
The switching of the HTML button is working properly. The problem is that I am not able to grab the column value from the report to submit with the onclick() event.
As best I can tell, there is not unique id tag on the report columns and the best that I am able to do is to apply one class to the button and another class to the column that contains the value that needs to be submitted on my onclick() event.
I have considered using a link column that does a submit to a URL passing in the desired value but I would lose control of the appearance of my button.
Does anyone have a suggestion?
ThanksIn debugging while clicking on back button for first time, I found that after 'Leave to screen 0' statement debugger goes to double click event of screen 100 and start processing from a statment written immediately after 'Call screen 200' statement.
Yes, that's right. The processing will be continued from next stamtement after CALL SCREEN 200. But after the PAI will finish it shoud go to NEXT SCREEN which is 0.
If that doens't work you can try leaving the screen 100 explicitly as well.
CALL SCREEN 200.
LEAVE TO SCREEN 0. "the processing will terminate screen 100 as well
Try it out.
Regards
Marcin
Maybe you are looking for
-
Hi experts, I am posting vendor invoice, while saving system is giving the following error: Doc.Type : KR ( Vendor Invoice ) Normal document Doc. Number Company Code 6000 Fiscal Year 2010 Doc. Date 23.09.2010
-
Hi, all. I'm new with EJB and try to test something in order to get to know EJB. I just faced with some problem. I am trying to solve this for couple hours now.. Here is the problem. I get this error when I compile jsp file. C:\Documents and Settings
-
GETTING ERROR IN SAP BODS : 230102
Dear Expert , I am New in SAP BODS,I am getting below Error in SAP BODS. Data Flow terminated due to error <230102> We are transfering data from MS SQL to SAP BW. Please tell me how to resolved it Many Many Thanks In Advance. Regards, Divyesh Patel (
-
Need Help Gurus...
HI, I have to extend an idoc ACC_GL_POSTING01 to include more custom fields...Could you guys provide me the steps to do this...what exit shud i use and how to do it... Thanx
-
Hi, everyone. How are you deploying your apps? Are you using the weblogic.deploy tool (do you use -component with your cluster as a target?)? The console? Or do you just copy your archive to the applications directory? T