Two trees on 1 screen, 1 Event - 1 Method = Which tree ?
Hi,
as I am fairly new to the Abap-OO this may be a silly question, but:
I have two list_trees on one screen to drag&drop between them. Now I need one event (Link_Click) for both trees. My problem now is how to determine and use the tree that raised the event.
Do I really need to define two methods like Handle_link_click_left & Handle_link_click_right ?
I thought somehow within the method I use an object like
"clicked_at_tree" instead of tree_left / tree_right ?!?!
I hope I was able to describe my problem and someones able to help me out
Thx in advance,
Karsten
Simular to what I did in this program, you may be able to extend the class, by using a local class and inheriting from your other class. In this example, I have to text edit containers on the screen 100, the same event and handler is being executed for each instance of the text editor.
* Create the screen 100, add two container to the screen,
* CONTAINER1 and CONTAINER2.
* Double click in either control
report zrich_0001 .
* CLASS lcl_text_edit DEFINITION
class lcl_text_edit definition inheriting from cl_gui_textedit.
public section.
data: textlines type table of tline-tdline,
wa_text type tline-tdline.
events: customevent.
methods: constructor importing
im_parent type ref to cl_gui_container,
customeventhandle
for event dblclick of lcl_text_edit.
endclass.
* CLASS lcl_text_edit IMPLEMENTATION
class lcl_text_edit implementation.
method constructor.
call method super->constructor( parent = im_parent ).
endmethod.
method customeventhandle.
wa_text = 'Appended Line'.
append wa_text to textlines.
call method me->set_text_as_r3table
exporting
table = textlines
exceptions
others = 1.
endmethod.
endclass.
data: container1 type ref to cl_gui_custom_container.
data: container2 type ref to cl_gui_custom_container.
data: textedit1 type ref to lcl_text_edit.
data: textedit2 type ref to lcl_text_edit.
start-of-selection.
call screen 100.
*& Module STATUS_0100 OUTPUT
module status_0100 output.
* SET PF-STATUS 'xxxxxxxx'.
* SET TITLEBAR 'xxx'.
create object:
container1
exporting container_name = 'CONTAINER1',
textedit1
exporting
im_parent = container1.
call method textedit1->register_event_dblclick.
set handler textedit1->customeventhandle for textedit1.
create object:
container2
exporting container_name = 'CONTAINER2',
textedit2
exporting
im_parent = container2.
call method textedit2->register_event_dblclick.
set handler textedit2->customeventhandle for textedit2.
endmodule.
*& Module USER_COMMAND_0100 INPUT
module user_command_0100 input.
endmodule.
If you found any answers helpful, please award points. Thanks.
Regards,
Rich Heilman
Similar Messages
-
How to display two grids in same screen using SALV Method
Hi Freinds,
Please let me know how to display two grids in same screen using SALV Method.
Thank you
Regards,
SDVUsing the same concept as described in How to dispaly Three Internal Table Data (One below another) in ALV OOPS .
All you need to add is passing your new containers as r_container parementer of factory method.
"1st one
cl_salv_table=>factory(
EXPORTING
R_CONTAINER = g_top_container
"2nd one
cl_salv_table=>factory(
EXPORTING
R_CONTAINER = g_bottom_container
Regards
Marcin -
How to Call Event Handler Method in Another view
Hi Experts,
Can anybody tell me how to call Event handler Method which is declared in View A ,it Should be Called in
view B,Thanks in Advance.
Thanks & Regards
Santhoshhi,
1) You can make the method EH_ONSELECT as public and static and call this method in viewGS_CM/ADDDOC using syntax
impl class name of view GS_CM/DOCTREE=>EH_ONSELECT "method name.
or
2)The view GS_CM/ADDDOC which contains EH_ONSELECT method has been already enhanced, so I can't execute such kind of operation one more time.
or
3)If both views or viewarea containing that view are under same window , then you can get the instance ofGS_CM/DOCTREE from view GS_CM/ADDDOC through the main window controller.
lr_window = me->view_manager->get_window_controller( ).
lv_viewname = 'GS_CM/DOCTREE '.
lr_viewctrl ?= lr_window ->get_subcontroller_by_viewname( lv_viewname ).
Now you can access the method of view GS_CM/DOCTREE .
Let me know in case you face any issues.
Message was edited by: Laure Cetin
Please do not ask for points, this is against the Rules of Engagement: http://scn.sap.com/docs/DOC-18590 -
Is it possible to have two at selection-screen events in a program
Hi all,
I have a selection screen wherein i am using i have 5 radiobuttons and 3 select-options and a parameter. I am trying to use two at selection-screen events
1) at selection-screen on radiobutton group rad1.
2) AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_STATUS.
the second event is not getting triggered.
I have to get certain values for the parameter p_status based on the radiobutton selected from an internal table(the field doesn't belong to any dictionary table i am filling an itab with some values based on the radiobutton selected) pls help. its urgent.
Regards
TharanathHi
TYPES : BEGIN OF ST_OBJID_SH,
OTYPE TYPE HRP1000-OTYPE,
OBJID TYPE HRP1000-OBJID,
END OF ST_OBJID_SH.
DATA : IT_OBJID_SH TYPE STANDARD TABLE OF ST_OBJID_SH.
DATA : WA_OBJID_SH TYPE ST_OBJID_SH.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_OBJID-LOW.
IF S_OBJID IS NOT INITIAL.
SELECT OTYPE OBJID FROM HRP1000
INTO TABLE IT_OBJID_SH
WHERE OTYPE = 'D'.
IF SY-SUBRC EQ 0.
SEARCH HELP FOR QUALIFICATION.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
DDIC_STRUCTURE = ' '
RETFIELD = 'OBJID'
PVALKEY = ' '
DYNPPROG = SY-REPID
DYNPNR = SY-DYNNR
DYNPROFIELD = 'S_OBJID'
STEPL = 0
WINDOW_TITLE =
VALUE = ' '
VALUE_ORG = 'S'
MULTIPLE_CHOICE = ' '
DISPLAY = ' '
CALLBACK_PROGRAM = ' '
CALLBACK_FORM = ' '
MARK_TAB =
IMPORTING
USER_RESET =
TABLES
VALUE_TAB = IT_OBJID_SH
FIELD_TAB =
RETURN_TAB = RETURN_TAB
DYNPFLD_MAPPING =
EXCEPTIONS
PARAMETER_ERROR = 1
NO_VALUES_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.
ENDIF.
Use in this way it will defently triggers
<b>REward if usefull</b> -
Why has gray palm tree shown up in Events with no photos
I have all currant updates for Mac & Iphoto but since the last update I know have several grau Palm tree folder on the Events screen with no photos. Several have just the date listed below the palm tree and several have actually been named. Have I lost pictures in the events? Where are they and why am I getting these event files with palm tree?
Apply the two fixes below in order as needed:
Fix #1
Launch iPhoto with the Command+Option keys held down and rebuild the library.
Since only one option can be run at a time start with Option #3, followed by #4 and then #1 as needed.
Fix #2
Using iPhoto Library Manager to Rebuild Your iPhoto Library
1 - download iPhoto Library Manager and launch.
2 - click on the Add Library button, navigate to your Home/Pictures folder and select your iPhoto Library folder.
3 - Now that the library is listed in the left hand pane of iPLM, click on your library and go to the File ➙ Rebuild Library menu option.
4 - In the next window name the new library and select the location you want it to be placed.
5 - Click on the Create button.
Note: This creates a new library based on the LIbraryData.xml file in the library and will recover Events, Albums, keywords, titles and comments. However, books, calendars, cards and slideshows will be lost. The original library will be left untouched for further attempts at fixing the problem or in case the rebuilt library is not satisfactory.
OT -
Repetitive call of event handler method
hi,
i ve some 8 screens with alv grid controls on each...i'm using
same subroutine for event handling for all the controls...the problem
is whenever i navigate from 1 to the other and return back to the same,
after data change, the event handler method is getting called as many times
i ve navigated....for toolbar actions i used befor user command event and
overcame but for data changed i got struck... Plz tel me the reason and how can we avoid.....
Thanks
Swaminathan.Hello Swami
The following sample report shows how to handle the same event for different control instances. The crucial point is to check for the sending control.
* CLASS lcl_eventhandler DEFINITION
CLASS lcl_eventhandler DEFINITION.
PUBLIC SECTION.
CLASS-METHODS:
handle_hotspot_click FOR EVENT hotspot_click OF cl_gui_alv_grid
IMPORTING
e_row_id
e_column_id
es_row_no
sender. " sending control !!!
ENDCLASS. "lcl_eventhandler DEFINITION
* CLASS lcl_eventhandler IMPLEMENTATION
CLASS lcl_eventhandler IMPLEMENTATION.
METHOD handle_hotspot_click.
* define local data
DATA:
ls_knb1 TYPE knb1,
ls_col_id TYPE lvc_s_col.
CASE sender. " check for the sending control (this is known!!!)
WHEN go_grid1.
READ TABLE gt_customer1 INTO ls_knb1 INDEX e_row_id-index.
MESSAGE 'Do event handling for 1st ALV grid!' TYPE 'I'.
WHEN go_grid2.
READ TABLE gt_customer2 INTO ls_knb1 INDEX e_row_id-index.
MESSAGE 'Do event handling for 2nd ALV grid!' TYPE 'I'.
WHEN OTHERS.
RETURN.
ENDCASE.
ENDMETHOD. "handle_hotspot_click
ENDCLASS. "lcl_eventhandler IMPLEMENTATION
The sample report contains two screens showing two parts of the selected data (just for demonstration). Please do note that it does not matter at all whether the ALV lists are on the same screen or on different screens or whether they are displayed in subscreens of the same dynpro.
*& Report ZUS_SDN_ALVGRID_EVENTS_4
* Both screens have the same flow logic and do not contain any elements:
*PROCESS BEFORE OUTPUT.
* MODULE STATUS_0100.
*PROCESS AFTER INPUT.
* MODULE USER_COMMAND_0100.
REPORT ZUS_SDN_ALVGRID_EVENTS_4.
DATA:
gd_okcode TYPE ui_func,
gt_fcat TYPE lvc_t_fcat,
go_docking1 TYPE REF TO cl_gui_docking_container,
go_docking2 TYPE REF TO cl_gui_docking_container,
go_grid1 TYPE REF TO cl_gui_alv_grid,
go_grid2 TYPE REF TO cl_gui_alv_grid.
DATA:
gt_customer1 TYPE STANDARD TABLE OF knb1,
gt_customer2 TYPE STANDARD TABLE OF knb1.
PARAMETERS:
p_bukrs TYPE bukrs DEFAULT '2000' OBLIGATORY.
* CLASS lcl_eventhandler DEFINITION
CLASS lcl_eventhandler DEFINITION.
PUBLIC SECTION.
CLASS-METHODS:
handle_hotspot_click FOR EVENT hotspot_click OF cl_gui_alv_grid
IMPORTING
e_row_id
e_column_id
es_row_no
sender.
ENDCLASS. "lcl_eventhandler DEFINITION
* CLASS lcl_eventhandler IMPLEMENTATION
CLASS lcl_eventhandler IMPLEMENTATION.
METHOD handle_hotspot_click.
* define local data
DATA:
ls_knb1 TYPE knb1,
ls_col_id TYPE lvc_s_col.
CASE sender.
WHEN go_grid1.
READ TABLE gt_customer1 INTO ls_knb1 INDEX e_row_id-index.
MESSAGE 'Do event handling for 1st ALV grid!' TYPE 'I'.
WHEN go_grid2.
READ TABLE gt_customer2 INTO ls_knb1 INDEX e_row_id-index.
MESSAGE 'Do event handling for 2nd ALV grid!' TYPE 'I'.
WHEN OTHERS.
RETURN.
ENDCASE.
CHECK ( ls_knb1-kunnr IS NOT INITIAL ).
CASE e_column_id-fieldname.
WHEN 'KUNNR'.
SET PARAMETER ID 'KUN' FIELD ls_knb1-kunnr.
SET PARAMETER ID 'BUK' FIELD ls_knb1-bukrs.
CALL TRANSACTION 'XD03' AND SKIP FIRST SCREEN.
WHEN 'ERNAM'.
* SET PARAMETER ID 'USR' FIELD ls_knb1-ernam.
* NOTE: no parameter id available, yet simply show the priciple
CALL TRANSACTION 'SU01' AND SKIP FIRST SCREEN.
WHEN OTHERS.
* do nothing
ENDCASE.
* Set active cell to field BUKRS otherwise the focus is still on
* field KUNNR which will always raise event HOTSPOT_CLICK
ls_col_id-fieldname = 'BUKRS'.
CALL METHOD go_grid1->set_current_cell_via_id
EXPORTING
is_row_id = e_row_id
is_column_id = ls_col_id.
ENDMETHOD. "handle_hotspot_click
ENDCLASS. "lcl_eventhandler IMPLEMENTATION
START-OF-SELECTION.
SELECT * FROM knb1 INTO TABLE gt_customer1
WHERE bukrs = p_bukrs
AND kunnr <= '0000300000'.
SELECT * FROM knb1 INTO TABLE gt_customer2
WHERE bukrs = p_bukrs
AND kunnr > '0000300000'.
* Create docking container
CREATE OBJECT go_docking1
EXPORTING
parent = cl_gui_container=>screen0
ratio = 90
EXCEPTIONS
OTHERS = 6.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CREATE OBJECT go_docking2
EXPORTING
parent = cl_gui_container=>screen0
ratio = 90
EXCEPTIONS
OTHERS = 6.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
* Create ALV grid
CREATE OBJECT go_grid1
EXPORTING
i_parent = go_docking1
EXCEPTIONS
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.
CREATE OBJECT go_grid2
EXPORTING
i_parent = go_docking2
EXCEPTIONS
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.
* Set event handler
SET HANDLER:
lcl_eventhandler=>handle_hotspot_click FOR ALL INSTANCES.
* Build fieldcatalog and set hotspot for field KUNNR
PERFORM build_fieldcatalog_knb1.
* Display data
CALL METHOD go_grid1->set_table_for_first_display
CHANGING
it_outtab = gt_customer1
it_fieldcatalog = gt_fcat
EXCEPTIONS
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.
CALL METHOD go_grid2->set_table_for_first_display
CHANGING
it_outtab = gt_customer2
it_fieldcatalog = gt_fcat
EXCEPTIONS
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.
* Link the docking container to the target dynpro
CALL METHOD go_docking1->link
EXPORTING
repid = syst-repid
dynnr = '0100'
* CONTAINER =
EXCEPTIONS
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.
CALL METHOD go_docking2->link
EXPORTING
repid = syst-repid
dynnr = '0200'
* CONTAINER =
EXCEPTIONS
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.
* ok-code field = GD_OKCODE
CALL SCREEN '0100'.
END-OF-SELECTION.
*& Module STATUS_0100 OUTPUT
* text
MODULE status_0100 OUTPUT.
SET PF-STATUS 'STATUS_0100'.
* SET TITLEBAR 'xxx'.
ENDMODULE. " STATUS_0100 OUTPUT
*& Module USER_COMMAND_0100 INPUT
* text
MODULE user_command_0100 INPUT.
CASE gd_okcode.
WHEN 'BACK' OR
'END' OR
'CANC'.
CASE syst-dynnr.
WHEN '0100'.
SET SCREEN 0. LEAVE SCREEN.
WHEN '0200'.
SET SCREEN 100. LEAVE SCREEN.
ENDCASE.
WHEN 'NEXT'.
SET SCREEN 200. LEAVE SCREEN.
WHEN OTHERS.
ENDCASE.
CLEAR: gd_okcode.
ENDMODULE. " USER_COMMAND_0100 INPUT
*& Form BUILD_FIELDCATALOG_KNB1
* text
* --> p1 text
* <-- p2 text
FORM build_fieldcatalog_knb1 .
* define local data
DATA:
ls_fcat TYPE lvc_s_fcat.
CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
EXPORTING
* I_BUFFER_ACTIVE =
i_structure_name = 'KNB1'
* I_CLIENT_NEVER_DISPLAY = 'X'
* I_BYPASSING_BUFFER =
* I_INTERNAL_TABNAME =
CHANGING
ct_fieldcat = gt_fcat
EXCEPTIONS
inconsistent_interface = 1
program_error = 2
OTHERS = 3.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
LOOP AT gt_fcat INTO ls_fcat
WHERE ( fieldname = 'KUNNR' OR
fieldname = 'ERNAM' ).
ls_fcat-hotspot = abap_true.
MODIFY gt_fcat FROM ls_fcat.
ENDLOOP.
ENDFORM. " BUILD_FIELDCATALOG_KNB1
Regards
Uwe -
How to go to different screen by Double Clicking a Tree Node
Hi guys,
I have a tool where i have a top panel and a bottompanel. On the top panel, i add Tab buttons so that if anyone is clicked, it will repaint the bottom panel with corresponding Tab screen(New screen will come with the top panel remaining same). There are Actions, Conditions,Trees tabs on the main panel. There is also a Home Tab on the main panel which when clicked brings up a tree structure on the left hand side of the bottom panel which has some parent and child nodes depending on whether they are files or directories. There are folders(parent nodes) with names Trees & Conditions also related to the Tabs on the main panel under which i have some file names. I am including the method which creates the nodes. The problem is that when i double click any file(not a directory), it should take me to the screen which is actually populated when i select the Trees/Conditions tab and select the corresponding file name from the drop down provided in that screen and click a view button. So, it is something like adding an actionListener or SelectionListener. But, i am unable to do it. Can anyone suggest me how to do it?
The class involving the following looks something like this.
public class MainHomePanel extends AbstractDtPanel {And the AbstractDtPanel looks something like this.
public abstract class AbstractDtPanel extends JPanelFinally, the method to create the Nodes is given below
private void createNodes(DefaultMutableTreeNode top) {
DefaultMutableTreeNode parentFolder = null;
DefaultMutableTreeNode innerFolder = null;
DefaultMutableTreeNode fileNames = null;
ArrayList folderName = new ArrayList();
ArrayList innerFolderNames = new ArrayList();
ArrayList fileNameArray = new ArrayList();
CommonUtil cu = new CommonUtil();
folderName =cu.getFolderNames(sessionData.getSysPath());
if(folderName != null && folderName.size() > 0) {
for(int i =0; i<folderName.size(); i++) {
parentFolder = new DefaultMutableTreeNode((String)folderName.get(i));
top.add(parentFolder);
innerFolderNames = new ArrayList();
innerFolderNames = cu.getInnerFolderNames(sessionData.getSysPath(), (String)folderName.get(i));
for(int k=0; k<innerFolderNames.size();k++) {
innerFolder = new DefaultMutableTreeNode((String)innerFolderNames.get(k));
parentFolder.add(innerFolder);
fileNameArray = new ArrayList();
fileNameArray = cu.getFileNames(sessionData.getSysPath(), (String)folderName.get(i),(String)innerFolderNames.get(k));
for(int j=0; j<fileNameArray.size(); j++) {
fileNames = new DefaultMutableTreeNode(fileNameArray.get(j));
innerFolder.add(fileNames);
}Sorry, a small mistake. The "createNodes" method is in the "MainHomePanel" class.
-
How to get rid of the loop in ALV output from At selection screen event?
I have several push buttons on a selection screen.
Clikc on a button, then it pops up an editable ALV report. (This gets triggered AT SELECTION SCREEN event.). REUSE_ALV_GRID_DISPLAY_LVC..
On the ALV output, I enabled F4 for a couple of fields. Once I click on the F4 button, ONF4 method gets triggerd and a pop up appears with custom search helps.
choose a line and it fills the cell.
Upto this it works fine.
Now I click on the BACK button at the ALV output, it takes me to the selection screen. I click on the button again, it show the editable ALV. Now when I click on the F4 button, the pop up comes up twice and the cell gets filled from the second pop - up.
How to control this?
Probably I am not refreshing something?
(I am using REUSE_ALV_GRID_DISPLAY_LVC and tooks ome code for ONF4 event from BCALV_*DATATYPES (forgot the exact name) program.)
Thanks,
VenHi,
FORM refresh_grid USING pw_grid TYPE REF TO cl_gui_alv_grid.
*Work area
DATA : wal_stable TYPE lvc_s_stbl.
CHECK NOT pw_grid IS INITIAL.
wal_stable-col = c_check.
wal_stable-row = c_check.
*Method to refresh grid
CALL METHOD pw_grid->refresh_table_display
EXPORTING
is_stable = wal_stable
i_soft_refresh = c_check
EXCEPTIONS
finished = 1
OTHERS = 2.
ENDFORM. " refresh_grid
Thanks,
Sree. -
hi,
i have two fields in seelction screen .if i enter delivery number on selection screen field automatically delivery date to filled in second field of selection screen.
how it solved..hi, you need to press enter after filling the field so that the next parameter is populated otherwise no event is triggered
Please check this sample code and award points if found helpful
<b>
AT SELECTION-SCREEN OUTPUT.
LOOP AT SCREEN.
IF SCREEN-NAME = 'ST_NAME'.
IF ST_NAME IS NOT INITIAL AND FLAG_SEL IS INITIAL.
CLEAR LIMPR.
CLEAR QTY.
SELECT STOCK CURRPR
FROM
ZEXCH
INTO (ST_CODE, CURRPR)
WHERE ST_NAME = ST_NAME
AND EXCH = L_EXCH.
ENDSELECT.
IF SY-SUBRC <> 0.
FLAG_END = 'X'.
CLEAR CURRPR.
CLEAR ST_CODE.
CLEAR ST_NAME.
ENDIF.
ENDIF.
ENDLOOP.
</b>
When u want to handle F4 help for this and automatically fill the delivery date then u need to use <b>AT SELECTION-SCREEN ON VALUE-REQUEST FOR ST_NAME.</b>
Award points if found helpful -
Sequence of AT SELECTION-SCREEN events
Hi All,
I have a requirement where i need to have two fields selection screen, where the second field should have f4 help depending on the first field.
So, i have validated the first field through AT SELECTION-SCREEN ON <FIELD1>. and for the second field i am using AT SELECTION-SCREEN ON VALUE-REQUEST FOR <FIELD2>
The problem i am facing over here is when i give first field input and press F4 in the second field it is not validating the First field and instead it is showing FIELD1 as blank to over come this i need to press enter before i press F4 in the second field. Is there any other alternative to over come this problem.
Is there any sequenec for the AT SELECTION-SCREEN events to be used.
Thanks
ShashikanthHi Shashi,
Check the below code
and for your future ref
Table Control dynamic F4
DATA : BEGIN OF f4_tab OCCURS 0,
carrid TYPE sflight-carrid,
connid TYPE sflight-connid,
END OF f4_tab.
CLEAR lin.
" adjust this as per your requirement
DATA : dynpread TYPE TABLE OF dynpread WITH HEADER LINE.
REFRESH dynpread.
CLEAR dynpread.
dynpread-fieldname = 'ITAB-CARRID'.
* dynpread-stepl = lin.
APPEND dynpread.
CLEAR dynpread.
at selection-screen on value-request for YOUR_FIELD " Your Second Field here
CALL FUNCTION 'DYNP_VALUES_READ'
" This FM gives the First field value before u press Enter/ PAI is triggered
EXPORTING
dyname = sy-repid
dynumb = sy-dynnr
TABLES
dynpfields = dynpread
EXCEPTIONS
invalid_abapworkarea = 1
invalid_dynprofield = 2
invalid_dynproname = 3
invalid_dynpronummer = 4
invalid_request = 5
no_fielddescription = 6
invalid_parameter = 7
undefind_error = 8
double_conversion = 9
stepl_not_found = 10
OTHERS = 11
IF sy-subrc IS INITIAL.
READ TABLE dynpread WITH KEY fieldname = 'ITAB-CARRID'.
IF sy-subrc IS INITIAL.
SELECT carrid connid FROM sflight
INTO TABLE f4_tab
WHERE carrid = dynpread-fieldvalue.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'CONNID'
dynpprog = sy-repid
dynpnr = sy-dynnr
dynprofield = 'ITAB-CONNID'
value_org = 'S'
TABLES
value_tab = f4_tab
ENDIF.
ENDIF.
Cheerz
Ram
Edited by: Rob Burbank on Mar 18, 2010 9:01 AM -
Populating database tables in event handler method - error
Friends,
I am trying to insert values into ztable in an event handler method in a WDA application.
This is the code. ZDATA1 is a ztable with two fields: MANDT and ZKTOKD of data element char01.
types: begin of zs,
zktokd type char01,
end of zs.
data: zitab type table of zs,
zstruct like line of zitab.
zstruct-zktokd = 's'.
append zstruct to zitab.
INSERT zdata1 FROM TABLE zitab.
I am getting the error: "The Work area "ZITAB" is not long enough...
Please let me know what is missing.
Thanks and Regards.Hi,
The error is here
types: begin of zs,
zktokd type char01,
end of zs.
data: zitab type table of zs ,
zstruct like line of zitab.
"passed the Internal table name which is wrong
Correct one
data:
zitab type table of zs,
zstruct like line of ZS. " Here we have to give the type you have declared above.
" Zstruct acts like a workarea.
Regards
Lekha -
Handling exceptions for a event handler method.
Hi Mates,
I have two custom container in which i am displaying an alv grid usind objects. when a double click event is performed in one of the alv the other alv should be displayed. I now have to handle exceptions of the class CX_SY_DYN_CALL_ILLEGAL_TYPE. This is raised for an invalid parameter type when calling a method dynamically. I cannot use the keyword "RAISING" in the definition of the event handler method. i checked with the syntax of the method definition in abap dictionary, there were no addition "RAISING" for an event handler method. please provide me with the solution (a sample code would do.)Hello,
May be you should read about the TRY ... CATCH block which is used for handling exceptions.
Basic construct of your code should look like this:
TRY.
" Your Dynamic Method call
CATCH CX_SY_DYN_CALL_ILLEGAL_TYPE.
ENDTRY.
If you want to get the error message text:
DATA:
lcx_excp TYPE REF TO CX_SY_DYN_CALL_ILLEGAL_TYPE,
v_err_msg TYPE string.
TRY.
" Your Dynamic Method call
CATCH CX_SY_DYN_CALL_ILLEGAL_TYPE INTO lcx_excp.
v_err_msg = lcx_excp->get_text( ).
ENDTRY. -
Two ALV in Same Screen..
Hello Guys.....
As Per My New Requirement I Have to Display Data in two ALV Drid . like.........
ALV1
ALV2
In a sample Program at SAP slis library I found Two ALV in same screen but they are in ALV1 ALV2 format.. it's will not fullfill my requirement..
any one have any idea..
Please send me test program ..
Regard
Swati Namdev..Hi Swati,
see given code
REPORT Z7RNP_ALV_SO_BLOCK MESSAGE-ID Z7NEW .
TABLE DECLARATION
TABLES: VBAK , "Sales Document: Header Data
VBAP , "Sales Document: Item Data
MAKT , "Material Descriptions
LIPS . "SD document: Delivery: Item data
DECLARATION OF TYPE-POOL
*THIS TYPE-POOL CONTAINS THE EVENTS,
TYPE-POOLS : SLIS.
DECLARATION OF EVENTS
DECLARATION OF FIELD LAYOUT
DATA: I_LAYOUT TYPE SLIS_LAYOUT_ALV.
DATA: T_LAYOUT TYPE SLIS_LAYOUT_ALV.
DATA: T_EVENT TYPE SLIS_T_EVENT.
DATA: X_EVENT TYPE SLIS_ALV_EVENT.
DECLARATION OF LIST HEADER
DATA: I_LISTHEADER TYPE SLIS_T_LISTHEADER.
DECLARATION OF FIELD CATALOG FOR SCREEN 1
DATA: I_FLDCAT TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE.
DECLARATION OF FIELD CATALOG FOR SCREEN 2
DATA: I_FLDCAT2 TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE.
SORTING OF OUTPUT
DATA: I_SORT TYPE SLIS_T_SORTINFO_ALV.
DATA: T_SORT TYPE SLIS_T_SORTINFO_ALV.
*DATA DECLARATION
DATA: V_AUART TYPE TVAK-AUART,
V_VKORG TYPE TVKO-VKORG,
V_KUNNR TYPE KNA1-KUNNR,
V_MATNR TYPE MARA-MATNR ,
V_SPART TYPE TVTA-SPART .
DATA: V_REPID LIKE SY-REPID .
TYPES: BEGIN OF IT_SO ,
VBELN TYPE VBELN_VA , "SALES ORDER NO.
AUART TYPE AUART , "SALES DOC. TYPE
VKORG TYPE VKORG , "SALES ORG.
SPART TYPE SPART , "DIVISION
KUNNR TYPE KUNAG , "SOLD TO PARTY
POSNR TYPE POSNR_VA , "SALES DOC. ITEM
MATNR TYPE MATNR , "MATERIAL NO
MAKTX TYPE MAKTX , "DESCRIPTION
KWMENG TYPE KWMENG , "QUANTITY
VRKME TYPE VRKME , "SALES UNIT
END OF IT_SO .
TYPES: BEGIN OF IT_DEL ,
VBELN TYPE VBELN_VL , "SALES ORDER NO.
POSNR TYPE POSNR_VL , "SALES DOC. ITEM
MATNR TYPE MATNR , "MATERIAL NO
WERKS TYPE WERKS_D , "PLANT
LGORT TYPE LGORT_D , "STORAGE LOCATION
CHARG TYPE CHARG_D , "BATCH NO.
LFIMG TYPE LFIMG , "ACTUAL DELIVERY QTY.
VRKME TYPE VRKME , "SALES UNIT
END OF IT_DEL .
TYPES: BEGIN OF TYPE_VBFA ,
VBELV TYPE VBELN_VON ,
"Preceding sales and distribution document
POSNV TYPE POSNR_VON , "Preceding item of an SD document
VBELN TYPE VBELN_NACH ,
"Subsequent sales and distribution document
POSNN TYPE POSNR_NACH,
"Document category of subsequent document
VBTYP_N TYPE VBTYP_N ,
END OF TYPE_VBFA .
DATA: IT_SO1 TYPE STANDARD TABLE OF IT_SO ,
IT_DEL1 TYPE STANDARD TABLE OF IT_DEL ,
IT_VBFA TYPE STANDARD TABLE OF TYPE_VBFA,
IT_DEL_FUL TYPE STANDARD TABLE OF IT_DEL.
DATA: WA_SO TYPE IT_SO ,
WA_DEL TYPE IT_DEL ,
WA_VBFA TYPE TYPE_VBFA,
wa_IT_DEL_FUL TYPE IT_DEL.
*SELECTION SCREEN
SELECTION-SCREEN BEGIN OF BLOCK BLK1 WITH FRAME TITLE TEXT-004 .
SELECT-OPTIONS: S_VBELN FOR VBAK-VBELN ,
S_AUART FOR V_AUART ,
S_VKORG FOR V_VKORG ,
S_SPART FOR V_SPART ,
S_KUNNR FOR V_KUNNR ,
S_MATNR FOR V_MATNR .
SELECTION-SCREEN END OF BLOCK BLK1 .
*AT SELECTION SCREEN
AT SELECTION-SCREEN.
SELECT SINGLE VBELN
FROM VBAK INTO VBAK-VBELN
WHERE VBELN IN S_VBELN.
IF SY-SUBRC <> 0.
MESSAGE E202.
ENDIF.
*START OF SELECTION
INITIALIZATION.
V_REPID = SY-REPID.
START-OF-SELECTION .
PERFORM DATA_SELECT.
FOR BLOCK 1
PERFORM INITIALIZE_BLOCK .
PERFORM FLD_CAT USING I_FLDCAT[] .
PERFORM T_LAYOUT USING I_LAYOUT .
PERFORM I_SORT USING I_SORT .
PERFORM EVENT USING T_EVENT .
PERFORM CALL_ALV.
FOR BLOCK 2
PERFORM FLD_CAT2 USING I_FLDCAT2[] .
PERFORM I_LAYOUT USING I_LAYOUT .
PERFORM T_SORT USING I_SORT .
PERFORM EVENT1 USING T_EVENT .
PERFORM CALL_ALV1.
PERFORM BLOCK-DISPLAY .
*& Form DATA_SELECT
text
--> p1 text
<-- p2 text
FORM DATA_SELECT .
REFRESH: IT_VBFA, IT_SO1, IT_DEL1, IT_DEL_FUL.
SELECT
A~VBELN
A~AUART
A~VKORG
A~SPART
A~KUNNR
B~POSNR
B~MATNR
C~MAKTX
B~KWMENG
B~VRKME
INTO TABLE IT_SO1 FROM VBAK AS A
JOIN VBAP AS B ON BVBELN = AVBELN
JOIN MAKT AS C ON CMATNR = BMATNR
AND C~SPRAS = SY-LANGU
WHERE A~VBELN IN S_VBELN .
IF SY-SUBRC = 0.
SELECT VBELV POSNV VBELN POSNN VBTYP_N INTO TABLE IT_VBFA
FROM VBFA
FOR ALL ENTRIES IN IT_SO1
WHERE VBELV = IT_SO1-VBELN
AND POSNN = IT_SO1-POSNR
AND VBTYP_N ='J' .
IF SY-SUBRC = 0.
SELECT VBELN POSNR MATNR WERKS LGORT CHARG LFIMG VRKME
FROM LIPS INTO TABLE IT_DEL_FUL
FOR ALL ENTRIES IN IT_VBFA
WHERE VBELN = IT_VBFA-VBELN
AND POSNR = IT_VBFA-POSNN.
ENDIF.
ENDIF .
V_REPID = SY-REPID .
ENDFORM. " DATA_SELECT
*& Form INITIALIZE_BLOCK
text
--> p1 text
<-- p2 text
FORM INITIALIZE_BLOCK .
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT'
EXPORTING
I_CALLBACK_PROGRAM = V_REPID .
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = ' '
IT_EXCLUDING =
ENDFORM. " INITIALIZE_BLOCK
*& Form FLD_CAT
text
-->P_I_FLDCAT[] text
FORM FLD_CAT USING P_I_FLDCAT TYPE SLIS_T_FIELDCAT_ALV.
CLEAR I_FLDCAT.
I_FLDCAT-FIELDNAME = 'VBELN'. "FIELD FOR WHICH CATALOG ID FILLED
I_FLDCAT-TABNAME = 'IT_SO1'.
I_FLDCAT-SELTEXT_M = 'SALES ORDER NO.'.
I_FLDCAT-COL_POS = 1. " POSITION OF THE COLUMN.
I_FLDCAT-OUTPUTLEN = 20. " SET THE OUTPUT LENGTH.
I_FLDCAT-EMPHASIZE = 'X'. " COLOR OF THIS COLUMN.
I_FLDCAT-KEY = 'X'. " SO THAT THIS FIELD IS NOT
"SCROLLABLE AND HIDDABLE.
I_FLDCAT-HOTSPOT = 'X'.
APPEND I_FLDCAT.
CLEAR I_FLDCAT.
I_FLDCAT-FIELDNAME = 'AUART'. "FIELD FOR WHICH CATALOG ID FILLED
I_FLDCAT-TABNAME = 'IT_SO1'.
I_FLDCAT-SELTEXT_M = 'SALES DOC. TYPE'.
I_FLDCAT-COL_POS = 2. " POSITION OF THE COLUMN.
I_FLDCAT-OUTPUTLEN = 20. " SET THE OUTPUT LENGTH.
I_FLDCAT-EMPHASIZE = 'X'. " COLOR OF THIS COLUMN.
I_FLDCAT-KEY = 'X'.
" SO THAT THIS FIELD IS NOT SCROLLABLE AND HIDDABLE.
I_FLDCAT-HOTSPOT = 'X'.
APPEND I_FLDCAT.
CLEAR I_FLDCAT.
I_FLDCAT-FIELDNAME = 'VKORG'. "FIELD FOR WHICH CATALOG ID FILLED
I_FLDCAT-TABNAME = 'IT_SO1'.
I_FLDCAT-SELTEXT_M = 'SALES ORG.'.
I_FLDCAT-COL_POS = 3. " POSITION OF THE COLUMN.
I_FLDCAT-OUTPUTLEN = 20. " SET THE OUTPUT LENGTH.
I_FLDCAT-EMPHASIZE = 'X'. " COLOR OF THIS COLUMN.
I_FLDCAT-KEY = 'X'.
" SO THAT THIS FIELD IS NOT SCROLLABLE AND HIDDABLE.
I_FLDCAT-HOTSPOT = 'X'.
APPEND I_FLDCAT.
CLEAR I_FLDCAT.
I_FLDCAT-FIELDNAME = 'SPART'. "FIELD FOR WHICH CATALOG ID FILLED
I_FLDCAT-TABNAME = 'IT_SO1'.
I_FLDCAT-SELTEXT_M = 'DIVISION'.
I_FLDCAT-COL_POS = 4. " POSITION OF THE COLUMN.
I_FLDCAT-OUTPUTLEN = 20. " SET THE OUTPUT LENGTH.
I_FLDCAT-EMPHASIZE = 'X'. " COLOR OF THIS COLUMN.
I_FLDCAT-KEY = 'X'.
" SO THAT THIS FIELD IS NOT SCROLLABLE AND HIDDABLE.
I_FLDCAT-HOTSPOT = 'X'.
APPEND I_FLDCAT.
CLEAR I_FLDCAT.
I_FLDCAT-FIELDNAME = 'KUNNR'. "FIELD FOR WHICH CATALOG ID FILLED
I_FLDCAT-TABNAME = 'IT_SO1'.
I_FLDCAT-SELTEXT_M = 'SOLD TO PARTY'.
I_FLDCAT-COL_POS = 5. " POSITION OF THE COLUMN.
I_FLDCAT-OUTPUTLEN = 20. " SET THE OUTPUT LENGTH.
I_FLDCAT-EMPHASIZE = 'X'. " COLOR OF THIS COLUMN.
I_FLDCAT-KEY = 'X'.
" SO THAT THIS FIELD IS NOT SCROLLABLE AND HIDDABLE.
I_FLDCAT-HOTSPOT = 'X'.
APPEND I_FLDCAT.
CLEAR I_FLDCAT.
I_FLDCAT-FIELDNAME = 'POSNR'. "FIELD FOR WHICH CATALOG ID FILLED
I_FLDCAT-TABNAME = 'IT_SO1'.
I_FLDCAT-SELTEXT_M = 'SALES DOC. ITEM'.
I_FLDCAT-COL_POS = 6. " POSITION OF THE COLUMN.
I_FLDCAT-OUTPUTLEN = 20. " SET THE OUTPUT LENGTH.
I_FLDCAT-EMPHASIZE = 'X'. " COLOR OF THIS COLUMN.
I_FLDCAT-KEY = 'X'.
" SO THAT THIS FIELD IS NOT SCROLLABLE AND HIDDABLE.
I_FLDCAT-HOTSPOT = 'X'.
APPEND I_FLDCAT.
CLEAR I_FLDCAT.
I_FLDCAT-FIELDNAME = 'MATNR'. "FIELD FOR WHICH CATALOG ID FILLED
I_FLDCAT-TABNAME = 'IT_SO1'.
I_FLDCAT-SELTEXT_M = 'MATERIAL NO.'.
I_FLDCAT-COL_POS = 7. " POSITION OF THE COLUMN.
I_FLDCAT-OUTPUTLEN = 20. " SET THE OUTPUT LENGTH.
I_FLDCAT-EMPHASIZE = 'X'. " COLOR OF THIS COLUMN.
I_FLDCAT-KEY = 'X'.
" SO THAT THIS FIELD IS NOT SCROLLABLE AND HIDDABLE.
I_FLDCAT-HOTSPOT = 'X'.
APPEND I_FLDCAT.
CLEAR I_FLDCAT.
I_FLDCAT-FIELDNAME = 'MAKTX'. "FIELD FOR WHICH CATALOG ID FILLED
I_FLDCAT-TABNAME = 'IT_SO1'.
I_FLDCAT-SELTEXT_M = 'DESCRIPTION'.
I_FLDCAT-COL_POS = 8. " POSITION OF THE COLUMN.
I_FLDCAT-OUTPUTLEN = 20. " SET THE OUTPUT LENGTH.
I_FLDCAT-EMPHASIZE = 'X'. " COLOR OF THIS COLUMN.
I_FLDCAT-KEY = 'X'.
" SO THAT THIS FIELD IS NOT SCROLLABLE AND HIDDABLE.
I_FLDCAT-HOTSPOT = 'X'.
APPEND I_FLDCAT.
CLEAR I_FLDCAT.
I_FLDCAT-FIELDNAME = 'KWMENG'. "FIELD FOR WHICH CATALOG ID FILLED
I_FLDCAT-TABNAME = 'IT_SO1'.
I_FLDCAT-SELTEXT_M = 'QUANTITY'.
I_FLDCAT-COL_POS = 9. " POSITION OF THE COLUMN.
I_FLDCAT-OUTPUTLEN = 20. " SET THE OUTPUT LENGTH.
I_FLDCAT-EMPHASIZE = 'X'. " COLOR OF THIS COLUMN.
I_FLDCAT-KEY = 'X'.
" SO THAT THIS FIELD IS NOT SCROLLABLE AND HIDDABLE.
I_FLDCAT-HOTSPOT = 'X'.
APPEND I_FLDCAT.
CLEAR I_FLDCAT.
I_FLDCAT-FIELDNAME = 'VRKME'. "FIELD FOR WHICH CATALOG ID FILLED
I_FLDCAT-TABNAME = 'IT_SO1'.
I_FLDCAT-SELTEXT_M = 'SALES UNIT'.
I_FLDCAT-COL_POS = 10. " POSITION OF THE COLUMN.
I_FLDCAT-OUTPUTLEN = 20. " SET THE OUTPUT LENGTH.
I_FLDCAT-EMPHASIZE = 'X'. " COLOR OF THIS COLUMN.
I_FLDCAT-KEY = 'X'.
" SO THAT THIS FIELD IS NOT SCROLLABLE AND HIDDABLE.
I_FLDCAT-HOTSPOT = 'X'.
APPEND I_FLDCAT.
ENDFORM. " FLD_CAT
*& Form T_LAYOUT
text
-->P_I_LAYOUT text
FORM T_LAYOUT USING P_I_LAYOUT TYPE SLIS_LAYOUT_ALV .
P_I_LAYOUT-ZEBRA = 'X'.
P_I_LAYOUT-KEY_HOTSPOT = 'X'.
P_I_LAYOUT-F2CODE = 'DISP'.
ENDFORM. " T_LAYOUT
*& Form I_SORT
text
-->P_I_SORT text
FORM I_SORT USING P_I_SORT TYPE SLIS_T_SORTINFO_ALV .
DATA: I_SORT TYPE SLIS_SORTINFO_ALV .
REFRESH P_I_SORT .
CLEAR I_SORT.
I_sort-spos = 1.
I_sort-fieldname = 'VBELN'.
I_sort-up = 'X'.
I_sort-subtot = 'X'.
I_sort-group = '*'.
APPEND I_SORT TO P_I_SORT.
ENDFORM. " I_SORT
*& Form CALL_ALV
text
--> p1 text
<-- p2 text
FORM CALL_ALV .
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
EXPORTING
IS_LAYOUT = T_LAYOUT
IT_FIELDCAT = I_FLDCAT[]
I_TABNAME = 'IT_SO1'
IT_EVENTS = T_EVENT
IT_SORT = I_SORT
I_TEXT = TEXT-202
TABLES
T_OUTTAB = IT_SO1
EXCEPTIONS
PROGRAM_ERROR = 1
MAXIMUM_OF_APPENDS_REACHED = 2
OTHERS = 3
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
REFRESH T_EVENT .
CLEAR T_EVENT .
ENDFORM. " CALL_ALV
*& Form FLD_CAT2
text
-->P_I_FLDCAT2[] text
FORM FLD_CAT2 USING P_I_FLDCAT2 TYPE SLIS_T_FIELDCAT_ALV.
CLEAR I_FLDCAT2.
I_FLDCAT2-FIELDNAME = 'VBELN'. "FIELD FOR WHICH CATALOG ID FILLED
I_FLDCAT2-SELTEXT_M = 'DELIVERY NO.'.
I_FLDCAT2-COL_POS = 1. " POSITION OF THE COLUMN.
I_FLDCAT2-OUTPUTLEN = 20. " SET THE OUTPUT LENGTH.
I_FLDCAT2-EMPHASIZE = 'X'. " COLOR OF THIS COLUMN.
I_FLDCAT2-KEY = 'X'. " SO THAT THIS FIELD IS NOT
"SCROLLABLE AND HIDDABLE.
I_FLDCAT2-HOTSPOT = 'X'.
APPEND I_FLDCAT2.
CLEAR I_FLDCAT2.
I_FLDCAT2-FIELDNAME = 'POSNR'. "FIELD FOR WHICH CATALOG ID FILLED
I_FLDCAT2-SELTEXT_M = 'DELIVERY ITEM'.
I_FLDCAT2-COL_POS = 2. " POSITION OF THE COLUMN.
I_FLDCAT2-OUTPUTLEN = 20. " SET THE OUTPUT LENGTH.
I_FLDCAT2-EMPHASIZE = 'X'. " COLOR OF THIS COLUMN.
I_FLDCAT2-KEY = 'X'. " SO THAT THIS FIELD IS NOT
"SCROLLABLE AND HIDDABLE.
I_FLDCAT-HOTSPOT = 'X'.
APPEND I_FLDCAT2.
CLEAR I_FLDCAT2.
I_FLDCAT2-FIELDNAME = 'MATNR'. "FIELD FOR WHICH CATALOG ID FILLED
I_FLDCAT2-SELTEXT_M = 'MATERIAL NO.'.
I_FLDCAT2-COL_POS = 3. " POSITION OF THE COLUMN.
I_FLDCAT2-OUTPUTLEN = 20. " SET THE OUTPUT LENGTH.
I_FLDCAT2-EMPHASIZE = 'X'. " COLOR OF THIS COLUMN.
I_FLDCAT2-KEY = 'X'. " SO THAT THIS FIELD IS NOT
"SCROLLABLE AND HIDDABLE.
I_FLDCAT-HOTSPOT = 'X'.
APPEND I_FLDCAT2.
CLEAR I_FLDCAT2.
I_FLDCAT2-FIELDNAME = 'WERKS'. "FIELD FOR WHICH CATALOG ID FILLED
I_FLDCAT2-SELTEXT_M = 'PLANT.'.
I_FLDCAT2-COL_POS = 4. " POSITION OF THE COLUMN.
I_FLDCAT2-OUTPUTLEN = 20. " SET THE OUTPUT LENGTH.
I_FLDCAT2-EMPHASIZE = 'X'. " COLOR OF THIS COLUMN.
I_FLDCAT2-KEY = 'X'. " SO THAT THIS FIELD IS NOT
"SCROLLABLE AND HIDDABLE.
I_FLDCAT-HOTSPOT = 'X'.
APPEND I_FLDCAT2.
CLEAR I_FLDCAT2.
I_FLDCAT2-FIELDNAME = 'LGORT'. "FIELD FOR WHICH CATALOG ID FILLED
I_FLDCAT2-SELTEXT_M = 'ST. LOCATION'.
I_FLDCAT2-COL_POS = 5. " POSITION OF THE COLUMN.
I_FLDCAT2-OUTPUTLEN = 20. " SET THE OUTPUT LENGTH.
I_FLDCAT2-EMPHASIZE = 'X'. " COLOR OF THIS COLUMN.
I_FLDCAT2-KEY = 'X'. " SO THAT THIS FIELD IS NOT
"SCROLLABLE AND HIDDABLE.
I_FLDCAT-HOTSPOT = 'X'.
APPEND I_FLDCAT2.
CLEAR I_FLDCAT2.
I_FLDCAT2-FIELDNAME = 'CHARG'. "FIELD FOR WHICH CATALOG ID FILLED
I_FLDCAT2-SELTEXT_M = 'BATCH NO.'.
I_FLDCAT2-COL_POS = 6. " POSITION OF THE COLUMN.
I_FLDCAT2-OUTPUTLEN = 20. " SET THE OUTPUT LENGTH.
I_FLDCAT2-EMPHASIZE = 'X'. " COLOR OF THIS COLUMN.
I_FLDCAT2-KEY = 'X'. " SO THAT THIS FIELD IS NOT
"SCROLLABLE AND HIDDABLE.
I_FLDCAT-HOTSPOT = 'X'.
APPEND I_FLDCAT2.
CLEAR I_FLDCAT2.
I_FLDCAT2-FIELDNAME = 'LFIMG'. "FIELD FOR WHICH CATALOG ID FILLED
I_FLDCAT2-SELTEXT_M = 'ACT. DEL. QTY.'.
I_FLDCAT2-COL_POS = 7. " POSITION OF THE COLUMN.
I_FLDCAT2-OUTPUTLEN = 20. " SET THE OUTPUT LENGTH.
I_FLDCAT2-EMPHASIZE = 'X'. " COLOR OF THIS COLUMN.
I_FLDCAT2-KEY = 'X'. " SO THAT THIS FIELD IS NOT
"SCROLLABLE AND HIDDABLE.
I_FLDCAT-HOTSPOT = 'X'.
APPEND I_FLDCAT2.
CLEAR I_FLDCAT2.
I_FLDCAT2-FIELDNAME = 'VRKME'. "FIELD FOR WHICH CATALOG ID FILLED
I_FLDCAT2-SELTEXT_M = 'SALES UNIT.'.
I_FLDCAT2-COL_POS = 8. " POSITION OF THE COLUMN.
I_FLDCAT2-OUTPUTLEN = 20. " SET THE OUTPUT LENGTH.
I_FLDCAT2-EMPHASIZE = 'X'. " COLOR OF THIS COLUMN.
I_FLDCAT2-KEY = 'X'. " SO THAT THIS FIELD IS NOT
"SCROLLABLE AND HIDDABLE.
I_FLDCAT-HOTSPOT = 'X'.
APPEND I_FLDCAT2.
ENDFORM. " FLD_CAT2
*& Form I_LAYOUT
text
-->P_I_LAYOUT text
FORM I_LAYOUT USING P_I_LAYOUT TYPE SLIS_LAYOUT_ALV .
P_I_LAYOUT-ZEBRA = 'X'.
P_I_LAYOUT-KEY_HOTSPOT = 'X'.
P_I_LAYOUT-F2CODE = 'DISP'.
ENDFORM. " I_LAYOUT
*& Form CALL_ALV1
text
--> p1 text
<-- p2 text
FORM CALL_ALV1 .
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
EXPORTING
IS_LAYOUT = I_LAYOUT
IT_FIELDCAT = I_FLDCAT2[]
I_TABNAME = 'IT_DEL_FUL'
IT_EVENTS = T_EVENT
IT_SORT =
I_TEXT = ' '
TABLES
T_OUTTAB = IT_DEL_FUL
EXCEPTIONS
PROGRAM_ERROR = 1
MAXIMUM_OF_APPENDS_REACHED = 2
OTHERS = 3
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. " CALL_ALV1
*& Form BLOCK-DISPLAY
text
--> p1 text
<-- p2 text
FORM BLOCK-DISPLAY .
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
IS_PRINT =
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. " BLOCK-DISPLAY
*& Form EVENT
text
-->P_T_EVENT text
FORM EVENT USING P_T_EVENT type slis_t_event.
x_event-form = 'TOP_OF_LIST1'.
x_event-name = slis_ev_top_of_list.
append x_event to p_t_event.
clear x_event .
ENDFORM. " EVENT
*& Form EVENT1
text
-->P_T_EVENT text
FORM EVENT1 USING P_T_EVENT type slis_t_event.
x_event-form = 'TOP_OF_LIST2'.
x_event-name = slis_ev_top_of_list.
append x_event to p_t_event.
ENDFORM. " EVENT1
FORM TOP_OF_LIST1.
SKIP 1.
WRITE: 10 'BLOCK LIST 1 FOR SALES ORDER DETAILS ' COLOR 4 .
skip 1.
format reset.
endform.
FORM TOP_OF_LIST2.
skip 1.
WRITE: 10 'BLOCK LIST 2 FOR DELIVERY ORDER DETAILS ' COLOR 4 .
skip 1.
format reset.
endform.
Reward point if useful. -
How can I handle touch screen events with Swing?
Hi,
I was wondering how i can handle touch screen events. Are there APIs for that or is it just a mouse event?
Thank you in advance.
TimI have recently created an application that ran on a touch screen system. I used the normal mouse events attached to the swing components (onClick) and these were translated by the touch screen. Typically I created a calculator type keypad, touched the screen on the text box where I wanted the data to appear and then pressed the keypad buttons to populate the field. No special drivers, just using swing components
Hope that helps
yeah, this is really useful info.. me too trying to build an application for the touch screen... just wondering how other events like focus gained, tree selection events are recognized by touch screen? can we have focus and tree, table selection events etc, as it is in the touch screen as well?? or everything is just mouse event only?? -
Capture Selection-screen events
Dear SAP friends,
I have created OOP report.
At the runtime the program creates toolbar and adds pushbuttons to it.
Every button has fcode assigned.
On button click the below method is called.
The below statement "CALL SELECTION-SCREEN 1200 STARTING AT 10 10" calls selection screen as popup.
I need to capture when User closes the selection popup and when he clicks Cancel button located in the selection popup.
Please advise.
Regards
Tatyana.
METHOD handle_pushbutton_click.
CASE fcode.
WHEN 'CHECKS_EXP'.
CALL SELECTION-SCREEN 1200 STARTING AT 10 10.
PERFORM at_selection_1200.
CHECK w_continue = abap_true.
PERFORM build_options_range.
PERFORM build_options_norange.
PERFORM start_selection_1200.
PERFORM fcat_init_1200.
w_title = 'Checks -> Expenditures'.
PERFORM set_layout USING w_title.
PERFORM getdata_1200.
DESCRIBE TABLE lt_rpt LINES w_count. " Get number of records.
PERFORM populate_selection USING w_count.
ENDDCASE.Hello Tatyana
The following sample report ZUS_SDN_OO_REPORT_SELSCREEN should simulate your scenario.
If you push the EXECUTE button you will find ok-code='CRET'.
If you close the popup or push the CANCEL button ok-code=' ' (space; empty). This way you know that the popup was closed by the user.
*& Report ZUS_SDN_OO_REPORT_SELSCREEN
*& Thread: Capture Selection-screen events
*& <a class="jive_macro jive_macro_thread" href="" __jive_macro_name="thread" modifiedtitle="true" __default_attr="1205127"></a>
REPORT zus_sdn_oo_report_selscreen.
* CLASS lcl_myclass DEFINITION
CLASS lcl_myclass DEFINITION.
PUBLIC SECTION.
CLASS-DATA:
md_okcode TYPE ui_func.
CLASS-METHODS:
handle_pushbutton_click.
ENDCLASS. "lcl_myclass DEFINITION
* CLASS lcl_myclass IMPLEMENTATION
CLASS lcl_myclass IMPLEMENTATION.
METHOD handle_pushbutton_click.
DATA: ld_msg TYPE bapi_msg.
BREAK-POINT.
CLEAR: lcl_myclass=>md_okcode.
DO.
CALL SELECTION-SCREEN 1200 STARTING AT 10 10.
EXIT.
ENDDO.
CONCATENATE 'ok-code =' md_okcode INTO ld_msg
SEPARATED BY space.
MESSAGE ld_msg TYPE 'I'.
MESSAGE 'Continue after SelScreen' TYPE 'S'.
ENDMETHOD. "handle_pushbutton_click
ENDCLASS. "lcl_myclass IMPLEMENTATION
SELECTION-SCREEN BEGIN OF SCREEN 1200.
PARAMETERS:
p_bukrs TYPE bukrs.
SELECTION-SCREEN END OF SCREEN 1200.
AT SELECTION-SCREEN OUTPUT.
BREAK-POINT.
CLEAR: syst-ucomm.
AT SELECTION-SCREEN.
BREAK-POINT.
lcl_myclass=>md_okcode = syst-ucomm.
START-OF-SELECTION.
lcl_myclass=>handle_pushbutton_click( ).
END-OF-SELECTION.
Regards
Uwe
Maybe you are looking for
-
Exchange 2010\Outlook Mail issues
Hi, I am having some issues with mail disappearing and outlook not updating. The issues are: When sending an email from Outlook it appears in the sent items for 30 seconds in Outlook and then disappears. It never shows up in OWA The email does send t
-
Hi All, I am using Oracle Database Version 11.2. I have a formula (A-B)/[(A-B)/10]. The tables that are holding the rows for this calculations are given below: ROWS_TAB ====== =================== Row Amount ====== =================== A
-
Is there any one out there that can same me I have run the i pod and quick time updates but as it nears completetion of the instulation it rolls back and wont let me access either i tunes or quick time Its driveing me totaly mad HELP PLEASE D
-
i broke my ipods charger a few months back. and since then i haveforgotten my ipods 4 didgit code and it became dissabled. i have connected to itunes and tried everything to get back into it. can anyone help me? totally appritiated.
-
Hello every one, my name is mike and lately I have been getting the error code 36>=36 everytime reboot my phone. Since I have been receiving this code a few odd thing have been happening. For instance, my phone contact book, last night it just emptie