On click event on alv web dynpro.
I've inserted this code in the WDDOINIT method:
DATA: l_ref_INTERFACECONTROLLER TYPE REF TO IWCI_SALV_WD_TABLE .
l_ref_INTERFACECONTROLLER = wd_This->wd_CpIfc_Alv( ).
DATA:
l_VALUE type ref to Cl_Salv_Wd_Config_Table.
l_VALUE = l_ref_INTERFACECONTROLLER->Get_Model( ).
Display button in column subty
lr_column = l_value->if_salv_wd_column_settings~get_column( 'SUBTY' ).
CREATE OBJECT lr_button.
lr_button->set_text_fieldname( 'SUBTY' ).
lr_column->set_cell_editor( lr_button ).
Display link in column connid
lr_column = l_value->if_salv_wd_column_settings~get_column( 'SUBTY' ).
CREATE OBJECT lr_link.
lr_link->set_text_fieldname( 'SUBTY' ).
lr_column->set_cell_editor( lr_link ).
When I test the WD the dump occurs in this method:
method ensure_active_component.
if if_wd_component_usage~has_active_component( ) = abap_false.
Active component must exist when ...
>>>>>>>>>>>>> raise exception type cx_wdr_rt_exception
exporting
textid = cx_wdr_rt_exception=>no_active_component_found
msgv1 = me->name.
endif.
endmethod.
Why?
Hello,
I am not too sure for your requirement, but what I could understood is "You have created an ALV table of buttons and have assigned with same onaction method, once cliked on any of the button, you want to figure out which button has been clicked?" If this is the casse then there is a very easy way to find out where the click has taken place, use the code below in the on action method of the button in the alv table.
data: lo_context_element type ref to IF_WD_CONTEXT_ELEMENT,
lv_clicked_row type int4.
check wdevent is bound.
lo_context_element = wdevent->get_context_element( 'CONTEXT_ELEMENT' ).
check lo_context_element is bound.
lv_clicked_row = lo_context_element->get_index( ).
Once this is executed, lv_clicked_row would contain the index of the table row where the user have clicked, this value can be further used for business logic derivation purpose.
Please let me know if this does not help!
Thanks & Regards
Abir Chakraborty
Similar Messages
-
Action (navigation) when click on Hyperlink field in ALV web dynpro
Hi - I had a question about Hyperlink in ALV web dynpro and it was answered in Link: [web dynpro abap ALV link to (hyperlink);
Now I need to click the Hyperlink field and navigate to another screen.
i.e. I have a Object ID (PR Number) when I click the PR number I need to open the PR Document also another case is at the item level if the PR has more than one item I'm showing the word "MULTIPLE" so if the user click on Multiple I need to show all the items (material) in another ALV table that I already create.
Thanks for your help!
Jason P-VHi,
As per my understanding, there are PR number and Material and other columns in the SAME ALV table right.
There is a ONCLICK event for ALV not for the VIEWCONTAINTERELEMENT.
In the View where you have the ALV as component usage under view's properties, you have ALV usage right.
Now, under the METHODS tab of the ALV, implement an event
Onclick EventHandler ONCLICK(press F4) of that ALV.
Now the Click event is implemented for that ALV. When ever you click on any column(Hyperlink) this gets called.
Here there are parameters that you need to use it. R_PARAM has both the index and the element.
Based on the COLUMN you can call the respective event.
The index that you have clicked i shown from r_param->index and you can also know ATTRIBUTE name(column name).
If attribute eq 'PRNUMBER'
*call the Purchase requistion transaction
elseif attribute eq 'MATNR'.
*call the popup for other ALV as component usage to display item details.
endif.
Refer this Article -
http://www.sdn.sap.com/irj/scn/index?rid=/library/uuid/bd28494a-0801-0010-45a3-fc359d82d3e8&overridelayout=true
Hope this is clear.
Regards,
Lekha.
Edited by: Lekha on Sep 26, 2009 12:57 PM -
About double click event in ALV report
Hi all,
I want to program a double-click event in ALV reprot.
I am not suppose to use module pool approach for the same.
If a user double clicks on the any of the row of ALV report, the transaction should get called.
Again, I am using function 'REUSE_ALV_GRID_DISPLAY' for displaying ALV.
Can you please help me to solve this?
Thanks,
-SiddhiHi Sidhi,
You can do it easily by using Reuse_ALV_GRID_DISPALY.
The User Command subroutine which you pass to this function module in that you can check which field is selected and what is the value of that and also you can get the table index.
I am giving you a code example where interactivity of ALV report is done .
*& Report ZRAIL_LOT_REPORT
REPORT zrail_lot_report.
TABLES :qals,aufk.
TYPE-POOLS:slis.
TYPES:BEGIN OF x_lot,
sel(1) TYPE c, "SELECTION
prueflos TYPE qals-prueflos, "INSPECTION LOT NUMBER
werk TYPE qals-werk, "PLANT
losmenge TYPE qals-losmenge, "LOT QUANTITY
mengeneinh TYPE qals-mengeneinh, "BASE UNIT OF MEASURE FOR THE INSPECTION LOT QUANTITY
matnr TYPE qals-matnr, " MATERIAL NO. ATTACHED TO ORDER
zzequnr TYPE qals-zzequnr, "EQUIPMENT NO.
zzassembly TYPE qals-zzassembly, "ASSEMBLY
herkunft TYPE qals-herkunft, "INSPECTION LOT ORIGIN
aufnr TYPE qals-aufnr, "ORDER NO.
sttxt TYPE qals_d02-sttxt, "LOT STATUS
objnr TYPE qals-objnr, "OBJECT NUMBER
enstehdat TYPE qals-enstehdat, "lot creation date
pruefer TYPE qamr-pruefer, "Name of the Inspector
END OF x_lot.
TYPES:BEGIN OF x_ordmat,
aufnr TYPE aufk-aufnr, "Order No.
equnr TYPE afih-equnr, "Equipment No. attached to Order
zmatnr TYPE aufk-zmatnr, "Material No. attached to Order
bautl TYPE afih-bautl, "Assembly attached to Order
END OF x_ordmat.
TYPES:BEGIN OF x_status,
objnr TYPE jest-objnr,
stat TYPE jest-stat,
txt04 TYPE tj02t-txt04,
END OF x_status.
DATA:it_qals TYPE STANDARD TABLE OF x_lot,
wa_qals TYPE x_lot.
DATA:it_ordmat TYPE TABLE OF x_ordmat,
wa_ordmat TYPE x_ordmat.
DATA:it_status TYPE STANDARD TABLE OF x_status,
wa_status TYPE x_status.
DATA:mytabix TYPE sy-tabix.
DATA: wa_layout TYPE slis_layout_alv,
wa_fieldcat TYPE slis_fieldcat_alv,
it_fieldcat TYPE TABLE OF slis_fieldcat_alv,
it_fcat TYPE TABLE OF slis_fieldcat_alv.
DATA:mytabix1 TYPE sy-tabix.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
SELECT-OPTIONS: s_werks FOR qals-werk,
s_zmatnr FOR aufk-zmatnr,
s_assbly FOR qals-zzassembly,
s_equnr FOR qals-zzequnr,
s_lotor FOR qals-herkunft,
s_lotdat FOR qals-enstehdat.
SELECTION-SCREEN END OF BLOCK b1.
INITIALIZATION.
s_lotdat-low = sy-datum - 7.
s_lotdat-high = sy-datum.
APPEND s_lotdat.
START-OF-SELECTION.
PERFORM get_data_qals.
PERFORM build_fieldcat.
PERFORM display_data.
EXIT.
END-OF-SELECTION.
*& Form get_data_qals
text
--> p1 text
<-- p2 text
FORM get_data_qals .
IF it_qals[] IS INITIAL.
SELECT a~prueflos
a~werk
a~losmenge
a~mengeneinh
a~zzequnr
a~zzassembly
a~herkunft
a~aufnr
a~objnr
a~matnr
a~enstehdat
b~pruefer
FROM qals AS a INNER JOIN qamr AS b
ON aprueflos = bprueflos
INTO CORRESPONDING FIELDS OF TABLE it_qals
WHERE werk IN s_werks
AND zzassembly IN s_assbly
AND zzequnr IN s_equnr
AND herkunft IN s_lotor
AND enstehdat IN s_lotdat.
ENDIF.
IF it_ordmat[] IS INITIAL.
SELECT a~aufnr
a~zmatnr
b~bautl
b~equnr
FROM aufk AS a INNER JOIN afih AS b
ON aaufnr = baufnr
INTO CORRESPONDING FIELDS OF TABLE it_ordmat FOR ALL ENTRIES IN it_qals
WHERE a~aufnr = it_qals-aufnr
AND zmatnr IN s_zmatnr.
ENDIF.
IF it_status[] IS INITIAL.
SELECT a~objnr
a~stat
b~txt04
FROM tj02t AS b
INNER JOIN jest AS a ON bistat = astat
INTO CORRESPONDING FIELDS OF TABLE it_status FOR ALL ENTRIES IN it_qals
WHERE a~objnr = it_qals-objnr
AND b~spras = sy-langu
AND a~inact = space.
ENDIF.
LOOP AT it_qals INTO wa_qals.
mytabix = sy-tabix.
READ TABLE it_ordmat INTO wa_ordmat WITH KEY aufnr = wa_qals-aufnr.
IF sy-subrc = 0.
IF wa_qals-herkunft = '14'.
wa_qals-matnr = wa_ordmat-zmatnr.
wa_qals-zzequnr = wa_ordmat-equnr.
wa_qals-zzassembly = wa_ordmat-bautl.
MODIFY it_qals FROM wa_qals INDEX mytabix TRANSPORTING matnr zzassembly zzequnr.
ENDIF.
ENDIF.
LOOP AT it_status INTO wa_status WHERE objnr = wa_qals-objnr.
CONCATENATE wa_qals-sttxt wa_status-txt04 INTO wa_qals-sttxt SEPARATED BY space.
CLEAR :wa_status.
ENDLOOP.
MODIFY it_qals FROM wa_qals INDEX mytabix TRANSPORTING sttxt.
CLEAR :wa_qals,wa_ordmat,mytabix.
ENDLOOP.
IF s_zmatnr[] IS NOT INITIAL.
DELETE it_qals WHERE matnr IS INITIAL.
ENDIF.
ENDFORM. " get_data_qals
*& Form build_fieldcat
text
--> p1 text
<-- p2 text
FORM build_fieldcat .
wa_layout-zebra = 'X'.
wa_layout-colwidth_optimize = 'X'.
wa_layout-box_fieldname = 'SEL'.
wa_layout-box_tabname = 'IT_QALS'.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
I_PROGRAM_NAME =
i_internal_tabname = 'IT_QALS'
i_structure_name = 'QALS_D02'
I_CLIENT_NEVER_DISPLAY = 'X'
I_INCLNAME =
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE =
CHANGING
ct_fieldcat = it_fieldcat
IF sy-subrc = 0.
LOOP AT it_fieldcat INTO wa_fieldcat.
CASE wa_fieldcat-fieldname .
WHEN 'PRUEFLOS'.
wa_fieldcat-col_pos = 1.
wa_fieldcat-hotspot = 'X'.
APPEND wa_fieldcat TO it_fcat.
WHEN 'WERK'.
wa_fieldcat-col_pos = 3.
APPEND wa_fieldcat TO it_fcat.
WHEN 'LOSMENGE'.
wa_fieldcat-col_pos = 4.
wa_fieldcat-no_out = ''.
APPEND wa_fieldcat TO it_fcat.
WHEN 'MENGENEINH'.
wa_fieldcat-col_pos = 5.
wa_fieldcat-no_out = ''.
APPEND wa_fieldcat TO it_fcat.
WHEN 'ZZEQUNR'.
wa_fieldcat-col_pos = 6.
wa_fieldcat-no_out = ''.
wa_fieldcat-hotspot = 'X'.
APPEND wa_fieldcat TO it_fcat.
WHEN 'ZZASSEMBLY'.
wa_fieldcat-col_pos = 7.
wa_fieldcat-no_out = ''.
wa_fieldcat-hotspot = 'X'.
APPEND wa_fieldcat TO it_fcat.
WHEN 'HERKUNFT'.
wa_fieldcat-col_pos = 8.
APPEND wa_fieldcat TO it_fcat.
WHEN 'AUFNR'.
wa_fieldcat-col_pos = 9.
wa_fieldcat-hotspot = 'X'.
APPEND wa_fieldcat TO it_fcat.
WHEN 'ENSTEHDAT'."enstehdat
wa_fieldcat-col_pos = 10.
APPEND wa_fieldcat TO it_fcat.
WHEN 'STTXT'.
wa_fieldcat-col_pos = 12.
wa_fieldcat-hotspot = 'X'.
APPEND wa_fieldcat TO it_fcat.
WHEN OTHERS.
ENDCASE.
CLEAR wa_fieldcat.
ENDLOOP.
wa_fieldcat-fieldname = 'MATNR'.
wa_fieldcat-tabname = 'IT_QALS'.
wa_fieldcat-col_pos = 2.
wa_fieldcat-ref_tabname = 'AUFK'.
wa_fieldcat-hotspot = 'X'.
wa_fieldcat-seltext_l = 'Material No.'.
APPEND wa_fieldcat TO it_fcat.
wa_fieldcat-fieldname = 'PRUEFER'.
wa_fieldcat-tabname = 'IT_QALS'.
wa_fieldcat-col_pos = 11.
wa_fieldcat-ref_tabname = 'QAMR'.
wa_fieldcat-seltext_l = 'Name of the Inspector'.
APPEND wa_fieldcat TO it_fcat.
ENDIF.
ENDFORM. " build_fieldcat
*& Form display_data
text
--> p1 text
<-- p2 text
FORM display_data .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = 'ZRAIL_LOT_REPORT'
I_CALLBACK_PF_STATUS_SET = ' '
i_callback_user_command = 'USER_COMMAND'
is_layout = wa_layout
it_fieldcat = it_fcat
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT =
IT_EVENTS =
IT_EVENT_EXIT =
IS_PRINT =
IS_REPREP_ID =
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
I_HTML_HEIGHT_TOP = 0
I_HTML_HEIGHT_END = 0
IT_ALV_GRAPHICS =
IT_HYPERLINK =
IT_ADD_FIELDCAT =
IT_EXCEPT_QINFO =
IR_SALV_FULLSCREEN_ADAPTER =
TABLES
t_outtab = it_qals
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. " display_data
*& Form USER_COMMAND
text
-->R_UCOMM text
-->RS_SELFIELD text
FORM user_command USING r_ucomm TYPE sy-ucomm rs_selfield TYPE slis_selfield.
CASE rs_selfield-fieldname .
WHEN 'PRUEFLOS'.
SET PARAMETER ID 'QLS' FIELD rs_selfield-value.
CALL TRANSACTION 'QA03' AND SKIP FIRST SCREEN.
WHEN 'ZZEQUNR'.
SET PARAMETER ID 'EQN' FIELD rs_selfield-value.
CALL TRANSACTION 'IE03' AND SKIP FIRST SCREEN.
WHEN 'ZMATNR'.
SET PARAMETER ID 'MAT' FIELD rs_selfield-value.
CALL TRANSACTION 'MM03' AND SKIP FIRST SCREEN.
WHEN 'ZZASSEMBLY'.
SET PARAMETER ID 'MAT' FIELD rs_selfield-value.
CALL TRANSACTION 'MM03' AND SKIP FIRST SCREEN.
WHEN 'AUFNR'.
SET PARAMETER ID 'ANR' FIELD rs_selfield-value.
CALL TRANSACTION 'IW33' AND SKIP FIRST SCREEN.
WHEN 'STTXT'.
MOVE rs_selfield-tabindex TO mytabix1.
PERFORM show_status.
ENDCASE.
ENDFORM. "USER_COMMAND
*& Form show_status
text
--> p1 text
<-- p2 text
FORM show_status .
DATA:it_systat TYPE TABLE OF bapi2045ss,
wa_sysstat TYPE bapi2045ss,
it_bapi2045us TYPE TABLE OF bapi2045us.
DATA:it_fsys TYPE TABLE OF slis_fieldcat_alv.
DATA:insplot TYPE bapi2045d_il0-insplot.
DATA:language TYPE bapi2045la.
CLEAR wa_qals.
READ TABLE it_qals INTO wa_qals INDEX mytabix1.
insplot = wa_qals-prueflos.
language-langu = sy-langu.
CALL FUNCTION 'BAPI_INSPLOT_GETSTATUS'
EXPORTING
number = insplot
language = language
TABLES
system_status = it_systat
user_status = it_bapi2045us.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
i_program_name = 'ZRAIL_LOT_REPORT'
i_internal_tabname = 'IT_SYSTAT'
i_structure_name = 'BAPI2045SS'
CHANGING
ct_fieldcat = it_fsys.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = 'ZRAIL_LOT_REPORT'
it_fieldcat = it_fsys
TABLES
t_outtab = it_systat.
ENDFORM. " show_status
IIn the subrouitne the User command the Parameter rs_selfield will give you the selected or clicked field and its value its record no .
I hope this will help you. -
Handling Right & Left Click Events in ALV Grid
Hi Friends,
Please give me the idea how to handle Right & Left mouse Click Events in ALV Grid.
My requirement is that when i click on the grid i need to pop up a message.
Eagerly waiting for your replies
Thanks
Satishyou have to Define a class and implement event handler methods for this purpose.
and the following events can help.
LEFT_CLICK_DESIGN
LEFT_CLICK_RUN
Regards
Raja -
Click Event on ALV using cl_gui_alv_grid (DYNPRO)
How can I implement a listener for a click on ALV.
If I click on my ALV grid, for example PBA should be triggered. Is that possible?
Now it seems that nothing happens when I click on ALV.
Can anyone help?Hi Ezachiael,
you dont have to trigger event DOUBLE_CLICK, it will be triggered, in case of double click :-).
You have to implent event handling class and event handler method - It is quite simple.
Check out this [Reference on SDN|https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/e8a1d690-0201-0010-b7ad-d9719a415907].
Regards
REA -
Flash Islands : pass event parameters to Web Dynpro
Hi,
I am trying to pass a parameter to Web Dynpro using "FlashIsland.fireEvent()". The event is fired, but I cannot get the parameter.
I WD I created a GACEvent :
name = doSomething
onAction = doSomethingAction
In this Event I created a GACEventParameter
name = returnText
type = string
In Flex I implemented following function :
private function click():void
var returnText:String;
returnText = "Dit is een test";
FlashIsland.fireEvent(this,'doSomething',returnText);
This is the code of the action in WD :
public void onActionDoSomethingAction(com.sap.tc.webdynpro.progmodel.api.IWDCustomEvent wdEvent)
//@@begin onActionDoSomethingAction(ServerEvent)
wdComponentAPI.getMessageManager().reportSuccess(wdEvent.getString("returnText"));
//@@end
The event is fired, but I get the message "invalid message: null". What am I doing wrong?
Regards,
JeroenHi,
Wrong syntax when you fire the event. The correct syntax is :
flex code :
var myParam:String = new String();
var myValue:String = "Test";
FlashIsland.fireEvent(this,"Event1",);
Regards,
Jonas -
Calling URL when click on buttons using web dynpro - ABAP
Hi All,
I am new to web dynpro application development and i am facing issue when i try to test my application.
simple require when i click on button i should direct the to one of url say 'http://www.google.co.in/' my application is activate with no error but when i test the application i am getting below error , can someone please provide me the solution or way out.
The URL http://ides47:8062/sap/bc/webdynpro/sap/zwa_calling_url/ was not called due to an error.
Note
The following error text was processed in the system N6Q : Access via 'NULL' object reference not possible.
The error occurred on the application server IDES47_N6Q_62 and in the work process 0 .
The termination type was: RABAX_STATE
The ABAP call stack was:
Method: IF_WDR_CONTEXT_MENU_HANDLER~CONTEXT_MENU_CALLED of program CL_WDR_INTERNAL_WINDOW_ADAPTERCP
Method: IF_WDR_CONTEXT_MENU_HANDLER~CONTEXT_MENU_CALLED of program CL_WDR_INTERNAL_WINDOW_ADAPTERCP
Method: IF_WDR_ADAPTER_EVENT_HANDLER~HANDLE_EVENT of program CL_WDR_CONTEXT_MENU_HANDLER===CP
Method: IF_WDR_CLIENT~GET_CLIENT_UPDATES of program CL_WDR_CLIENT_SSR=============CP
Method: EXECUTE of program CL_WDR_MAIN_TASK==============CP
Method: IF_HTTP_EXTENSION~HANDLE_REQUEST of program CL_WDR_MAIN_TASK==============CP
Method: EXECUTE_REQUEST_FROM_MEMORY of program CL_HTTP_SERVER================CP
Function: HTTP_DISPATCH_REQUEST of program SAPLHTTP_RUNTIME
Module: %_HTTP_START of program SAPMHTTP
HTTP 500 - Internal Server Error
Thanks,
ParabHi ,
It seesms something you are missing. It would be easy for us if you could paste your code which you have written in the Action of Button.
Sample code for your reference :
METHOD onactionget_url .
data lo_window_manager type ref to if_wd_window_manager.
data lo_api_component type ref to if_wd_component.
data lo_window type ref to if_wd_window.
lo_api_component = wd_comp_controller->wd_get_api( ).
lo_window_manager = lo_api_component->get_window_manager( ).
CALL METHOD lo_window_manager->CREATE_EXTERNAL_WINDOW
EXPORTING
URL = 'http://www.google.co.in/'
MODAL = ABAP_FALSE
HAS_MENUBAR = ABAP_TRUE
IS_RESIZABLE = ABAP_TRUE
HAS_SCROLLBARS = ABAP_TRUE
HAS_STATUSBAR = ABAP_TRUE
HAS_TOOLBAR = ABAP_TRUE
HAS_LOCATION = ABAP_TRUE
RECEIVING
WINDOW = lo_window.lo_window->open( ).
ENDMETHOD. -
Number of rows in the ALV, Web - dynpro
Hi all
I have an ALV in my ABAP web-dynpro. For this alv i would like to set the visible rows at the same number as there are rows in the internal table which is the supplier for the ALV.
In the TABLE component of the WEBDYNPRO you have a visible property who is controlling this.
I saw that for the ALV you had the same. Of the class IF_SALV_WD_TABLE_SETTINGS there is a method SET_VISIBLE_ROW_COUNT. So i thought this is the one where i can control it.
So when the table has 10 rows, 10 rows will be displayedon the screen and when the table has 20 rows, 20 rows will be displayed on the screen.
But this is not the case.
Is there something i forget?
Kind regards,
Anton PierhagenMETHOD wddoinit .
DATA: lo_column TYPE REF TO cl_salv_wd_column,
lo_cmp_usage TYPE REF TO if_wd_component_usage,
lo_interfacecontroller TYPE REF TO iwci_salv_wd_table,
lt_functions TYPE salv_wd_t_function_std_ref,
ls_function TYPE salv_wd_s_function_std_ref,
lo_function TYPE REF TO cl_salv_wd_function_std,
lo_data TYPE REF TO if_wd_context_node,
lo_element TYPE REF TO if_wd_context_element,
lv_index TYPE i,
lo_model TYPE REF TO cl_salv_wd_config_table.
Retrieve ALV object
lo_cmp_usage = wd_this->wd_cpuse_alv( ).
Initial? Create new
IF lo_cmp_usage->has_active_component( ) IS INITIAL.
lo_cmp_usage->create_component( ).
ENDIF.
Interfacecontroller
lo_interfacecontroller = wd_this->wd_cpifc_alv( ).
lo_model = lo_interfacecontroller->get_model( ).
Get main NODE DATA, this is the node which supplies the ALV
lo_data = wd_context->get_child_node( name = 'DATA' ).
How many rows has the table?
lv_index = lo_data->GET_ELEMENT_COUNT( ).
Not more then 20 rows on the screen
IF lv_index GT 20.
lv_index = 20.
ENDIF.
Put the number of rows in the screen
lo_model->if_salv_wd_table_settings~set_visible_row_count( lv_index ).
should the screen set to freeze?
lo_model->if_salv_wd_table_settings~set_fixed_table_layout( abap_true ). -
Double click event in ALV Display
Hi
I am using Reuse_alv_grid_display for dis[playing ALV. Now I want to handle double click event on a perticular Single column.
Pls provide code.Hi,
Check this example..If you double click on the purchase order field, it will take you to the corresponding PO in ME23N..
TYPE-POOLS: slis.
DATA: gt_fieldcat TYPE slis_t_fieldcat_alv.
DATA: BEGIN OF wa_ekko,
ebeln like ekko-ebeln,
ekorg like ekko-ekorg,
ekgrp like ekko-ekgrp,
END OF wa_ekko.
DATA: v_repid TYPE syrepid.
v_repid = sy-repid.
DATA it_ekko LIKE STANDARD TABLE OF wa_ekko WITH HEADER LINE.
SELECT * UP TO 100 ROWS
FROM ekko
INTO CORRESPONDING FIELDS OF TABLE it_ekko.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
i_program_name = v_repid
i_internal_tabname = 'WA_EKKO'
i_inclname = v_repid
CHANGING
ct_fieldcat = gt_fieldcat.
Pass the program.
v_repid = sy-repid.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
i_callback_program = v_repid
it_fieldcat = gt_fieldcat
i_callback_user_command = 'USER_COMMAND'
TABLES
t_outtab = it_ekko.
FORM display_detail *
--> UCOMM *
--> SELFIELD *
FORM user_command USING ucomm LIKE sy-ucomm
selfield TYPE slis_selfield.
IF ucomm = '&IC1' AND selfield-fieldname = 'EBELN'.
READ TABLE it_ekko INDEX selfield-tabindex.
IF sy-subrc = 0.
SET PARAMETER ID 'BES' FIELD it_ekko-ebeln.
CALL TRANSACTION 'ME23N' AND SKIP FIRST SCREEN.
ENDIF.
ENDIF.
ENDFORM.
Thanks,
Naren -
Hi all,
I need help in the web dynpro ALV.
I have an ALV generated dynamically. On the ALV, there is filter and settings link on the extreme right of the alv header.
How is it possible to get them left align after the export button ?
I want to maitain some gap between the export button, filter and settings.
Please give me inputs.
Thanks in Advance.Hi Jatra,
I am working on an ALV table in a standard Web Dynpro ABAP application.
The business requirement is to hide the header for the ALV table.
The header has a dropdown to choose u201CStandard Viewu201D and 2 options: Filter and Settings.
The footer for the ALV table containing the Row and Column numbering also needs to be hidden.
I am looking at the IF_SALV_WD_TABLE_SETTINGS to find the relevant methods to hide the header and footer.
Please let me know if I am on the right track and if there is an alternate way to do this through changing the layout of the ALV table. I tried to hide the header and footer manually via the layout but am unable to do so, as the ALV table is just displayed as ViewContainerUI Element.
Please help me as to how to hide the header and footer as I am new to ALV in WDA.
Thanks and Regards. -
Handle single click event in ALV OOPS
Hi,
I have to display 2 ALV grid...one above the other.
Top ALV will contain Header info and bottom ALV witll display line item.
I am use ALV OOPS.
Now when user will click on the top ALV ...bottom ALV should show corresponding data.
I don't have to use HOTSPOT or Double click event.
How can I handle single click event.
Please guide me..thanks in advance
Regards,
Prasoonhi,
for this in ALV OOPS take <b>2 custom containers( cl_gui_custom_container)</b>in the same screen and on the 1st container display the header data<b>(use set_tale_for_first_display method of class cl_gui_alv_grid)</b>.
On the 2nd screen item data for this use<b> EVENT</b> handling(you want <b>single click</b>). use<b> hotspot_click</b> or <b>button_click </b>events.
for this you have to register the events. the code for that.
<b>CLASS lcl_event_handler DEFINITION .</b>
PUBLIC SECTION .
METHODS:
*--Hotspot click control
handle_hotspot_click
FOR EVENT hotspot_click OF cl_gui_alv_grid
IMPORTING e_row_id e_column_id es_row_no ,
*--To control button clicks
handle_button_click
FOR EVENT button_click OF cl_gui_alv_grid
IMPORTING e_oject e_ucomm .
PRIVATE SECTION.
ENDCLASS.
<b>CLASS lcl_event_handlerIMPLEMENTATION .</b>
*--Handle Hotspot Click
METHOD handle_hotspot_click .
PERFORM handle_hotspot_click USING e_row_id e_column_id es_row_no .
ENDMETHOD .
METHOD handle_button_click .
PERFORM handle_button_click USING e_object e_ucomm .
ENDMETHOD .
ENDCLASS .
DATA gr_event_handler TYPE REF TO lcl_event_handler .
<b>*--Creating an instance for the event handler</b>
CREATE OBJECT gr_event_handler.
<b>*--Registering handler methods to handle ALV Grid events</b>
SET HANDLER gr_event_handler->handle_hotspot_click FOR gr_alvgrid .
SET HANDLER gr_event_handler->handle_button_click FOR gr_alvgrid .
do n't forget to use<b> refresh_table_display
</b> other wise only the record which you first you clicked will display in the 2nd container.
<b>Reward points for useful Answers</b> -
Double click event in alv oops
Hi,
can any one please help me out... i dont know how to call events in alv oops...so can any one provide me with some help..
My requirment is i have to generate a mail grid containing customer details and if i double click on a customer it should go to the transaction XD03 second screen.....u have to declae an event like this.
class event_receiver definition.
public section.
methods handle_double_click
for event double_click of cl_gui_alv_grid
importing e_row.
endclass.
then u have to implement it in the implementation
class lcl_event_receiver implementation.
method lmt_handle_double_click.
perform double_click using e_row
tbl_final_display.
endmethod.
endclass.
form double_click
using fu_e_row type lvc_s_row
fu_tbl_final_display type typ_tbl_display.
read table fu_tbl_final_display into l_h_tbl_final_display
index fu_e_row-index.
if sy-subrc = 0.
set parameter id cns_aun field l_h_tbl_final_display-vbeln.
call transaction cns_trans and skip first screen.
endif.
endform.
hope it will help u -
ALV Web Dynpro for ABAP enable/disable single row
hi all,
is it possible to change the layout of one single row or cell in a alv (component SALV_WD_TABLE) web dynpro for abap?
i managed to get columns to be editable using the tutorial "Editing ALV in Web Dynpro for ABAP".
but it is not described how to change a single row or cell in this tutorial. also the example programs i found do not get into this subject.
did i miss something?
thanks in advanceHi,
I think you cannot set the focus to the particular cell.
I think you can loop at that row of that table and set the the cell design to apply some color to differentiate that way rather than focusing so that user can know that he has to do something in that cell.
check out this example salv_wd_test_table_focus
Regards,
Lekha. -
Specifying different initial views for different users in ALV web dynpro
Hi Friends,
I need to have 2 different initial view for my web dynpro application eg: View1 and View2. There will 2 group of users using the respective Views. However the first group should not be able to see other view(View2) and vice versa.
Please tell me whether it is possible and if yes then how to do it.
Regards,
SaudHi,
the ALV component has a public attribute - R_COMPONENT which is of type ref to IF_SALV_WD_COMPONENT_TABLE
you can call GET_PERSONALISATION on this reference to return a reference to the interface IF_SALV_WD_COMP_TABLE_PERS. This in turn has a method - SET_STANDARD_VIEW.
I think that this should allow you to set which ever view you want.
Hope it helps,
Chris -
hi everyone
I have an ALV, where data is displayed
now if i select a row in this ALV, another ALV shd be displayed based on that row key field
can somebody plz tell me the steps as how i shd proceedHi Anjali,
I will try to explain your scenario using an example. Suppose I am displaying the data from MARA in 1 ALV & when I select a row (LeadSelection) from the ALV I want the corresponding information from MAKT to be displayed in a 2nd ALV below.
So for this first of all I would need to create 2 component usages:
So I go to the, "Used web Dynpro Components" of my component and create 2 entries of SALV_WD_TABLE: ALV1 & ALV2.
Next I create 2 context nodes MARA & MAKT with a few attributes under each.
1) I go to the "properties" tab of my view & add the used components ALV1 & ALV2.
2) I go to my view layout and place 2 viewcontainer ui elements over it.
3) Next I embed my MAIN view within my WINDOW. I then embed the TABLE view of ALV1 within my first viewcontainer & the TABLE view of ALV2 within my 2nd viewcontainer.
4) I create interface controller usages & map the MARA node to the DATA node of ALV1 & similarly i map the MAKT node with the DATA node of ALV2.
I fill the data for my first ALV within my WDDOINIT method as shown below:
METHOD wddoinit .
DATA: wd_node TYPE REF TO if_wd_context_node,
lt_mara TYPE wd_this->elements_mara.
wd_node = wd_context->get_child_node( name = 'MARA' ).
SELECT * FROM mara INTO CORRESPONDING FIELDS OF TABLE lt_mara.
wd_node->bind_table( new_items = lt_mara ).
ENDMETHOD.
Maybe you are looking for
-
Can anyone recommend a signal booster to enhance my Verizon iPhone4 phone and data signal in "fringe" areas? When camping in some areas of the Adirondacks in NY, I can only get one bar on my iPhone. Internet is extremely slow if at all. Can someone
-
JasperReports not working in EAR/EJB/JSF application
Hi, When trying to compile a report using JasperReports, I get this exception. I have an EAR application, pdf generation happens in an EJB module, called by a WAR (Glassfish 3, JSF 2). Any clue? org.xml.sax.SAXParseException: schema_reference.4: Fail
-
Umask is wrong running unix command as current console user?
ARD3.1 Admin on intel mac, Clients all v 3.1 PPCs If I ssh to a remote machine or use ARD Unix command as the logged-in console user joeuser and enter 'touch /myfile' the permissions are -rw-r--r-- 1 joeuser admin 0 Apr 27 10:40 myfile but if i am di
-
Hi Experts, I have a problem. Since I havenu2019t done this before I have very little clue about it. I have a testing server ABAP + JAVA. I have created 2 nodes in ccms:- Monitor Database and Monitor Spool using RZ20. When I am looking in Monitor spo
-
How to Open MS-Word doc via Swing...
Hi, I have a requirement of providing a JButton in my app, upon clicking of which, i need to create a Word-Doc ( say xyz.doc & open it ( probably thru Word itself...??!!) Does anyone have a clue/idea as to how we could do this ?? (Should i do an exec