ALV - Selection impossible
Hi at all,
we created a component using the SAP component SALV_WD_TABLE.
On our development systems it works perfectly but we have problems at our customer. When they start the application they couldn't choose another entry in the ALV table in the view.
On our system it is possible to choose multiple entries, but at our customer the first entry is selected and the selection couldn't be changed.
Does anybody have an idea???
VG
Dirk
Edited by: Dirk Schilling on Dec 9, 2010 3:03 PM
Hi,
i Would gather information regarding the difference in machines, roles..etc.
SAP_BASIS SP levels in your company and customer machine might be different. It is possible that some of the OSS Notes that explicitly /implicitly implemented in your dev are not available in customer machines.
Similar Messages
-
Variant in ALV selection screen
Hi friends,
How to protect a variant in ALV selection screen from changing or deleting by other users.
Thanks,
RajeshRajesh,
You still need someone to be able to change the variant, right? That is what exactly PROTECT VARIANT does.
If you select the field Protect variant, the variant can only be changed by the person who created it or last changed it.
Regards,
Ravi
Note :Please mark the helpful answers and close the thread if the quesiton is answered -
ALV selection in Cliam Recon report
Hello All,
In Cliam Recon report ( RPCLMSU0 ), we are not able to select the ALV type from the ALV selection field in the report selection screen.
We are in ECC 5.0.
Thanks for any responses.
Chakri.The same thing happens for us, and we are on ECC 6.0. However, you can run the program without selecting anything for that field. Once you are in the report, go to the top menu and choose "Settings -> Layout -> Choose...". This will give you a pop-up with selections. You can choose All, Global, or User-specific for the Layout Setting and then choose a layout from the table below. I hope this helps.
Actually, it looks like there might be a coding error in the program. The same form is used for the value request on that field as is used to check whether an entered variant exists. That form doesn't fill anything in if the field is initial, it just looks to see if something that was entered already exists. If you look at the source code you will see that the same form is used for "AT SELECTION-SCREEN ON VALUE-REQUEST FOR sv_alvar" as is used for "AT SELECTION-SCREEN". You may want to consider opening a note with SAP about this.
- April King
Message was edited by:
April King -
Screen Text in ALV selection screen
A user has asked me to add some text at the bottom of a selection screen in an ALV report program. In se80 I double clicked the screen (1000) and then went into the layout and added a text field with some text in it. The system then requested a transport and added a LIMU DYNP screen object to it. The only other object in the transport is the Report Source Code.
When I run the transport to another system the new text fields disappear from the screen object although double clicking the screen object in the transport shows they are there.
Any ideas why they disappear??I have tried selection-screen comment but there appears to be a limit to the size of the text string (83) and this is not long enough for our purpose as the next needs to go right accross the page. Thanks for replying.
-
ALV selection field of displayed table is not populated properly
Hi,
I am using OO ALV in my screen. I have two tabs. In one tab I display one ALV output in edit mode with selection option and passing internal table field for box_selection. In the other tab I am displaying another ALV output but in display mode.
My problem is when I switch from tab in edit mode to tab in display mode and back to tab in edit mode, then select a line on the tab in the edit mode, the method I am calling:
CALL METHOD grid1->get_selected_rows
IMPORTING
et_index_rows = i_sel_alvrows[].
would return table "i_sel_alvrows" empty.
If i do not switch between the tabs, the ->get_selected_rows logic works perfectly.
You reply will be greatly appreciated.
Thanks.Oleg,
I have doubt ,
This is example:--> if you have selected a line in edit tab and going to display tab and coming back to edit tab, at the point your selected line is there in edit tab as in selected mode ?
After freeing the container?
aRs
Message was edited by:
aRs -
Check box in ALV selection screen
Hi to all
I like to know how to create a checkbox in the input screen of an ALV.What do you mean by ALV check box selection screen?
ALV and selection screen check box( you are mixing two cases in your Question).
You need use the Function moduel in the user command to get the updated data.
in fieldcatalog you have to use INPUT = 'X' and EDIT = 'X' for the columns which ever you want edit.
GET_GLOBALS_FROM_SLVC_FULLSCR
follow the sample code.
REPORT ZTEST_ALV_CHECK MESSAGE-ID ZZ .
TYPE-POOLS: SLIS.
DATA: X_FIELDCAT TYPE SLIS_FIELDCAT_ALV,
IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
L_LAYOUT TYPE SLIS_LAYOUT_ALV,
X_EVENTS TYPE SLIS_ALV_EVENT,
IT_EVENTS TYPE SLIS_T_EVENT.
DATA: BEGIN OF ITAB OCCURS 0,
VBELN LIKE VBAK-VBELN,
POSNR LIKE VBAP-POSNR,
CHK(1),
color(4),
END OF ITAB.
SELECT VBELN
POSNR
FROM VBAP
UP TO 20 ROWS
INTO TABLE ITAB.
X_FIELDCAT-FIELDNAME = 'CHK'.
X_FIELDCAT-TABNAME = 'ITAB'.
X_FIELDCAT-COL_POS = 1.
X_FIELDCAT-INPUT = 'X'.
X_FIELDCAT-EDIT = 'X'.
X_FIELDCAT-CHECKBOX = 'X'.
APPEND X_FIELDCAT TO IT_FIELDCAT.
CLEAR X_FIELDCAT.
X_FIELDCAT-FIELDNAME = 'VBELN'.
X_FIELDCAT-SELTEXT_L = 'VBELN'.
X_FIELDCAT-HOTSPOT = 'X'.
X_FIELDCAT-TABNAME = 'ITAB'.
X_FIELDCAT-COL_POS = 2.
APPEND X_FIELDCAT TO IT_FIELDCAT.
CLEAR X_FIELDCAT.
X_FIELDCAT-FIELDNAME = 'POSNR'.
X_FIELDCAT-SELTEXT_L = 'POSNR'.
X_FIELDCAT-TABNAME = 'ITAB'.
X_FIELDCAT-COL_POS = 3.
APPEND X_FIELDCAT TO IT_FIELDCAT.
CLEAR X_FIELDCAT.
L_LAYOUT-info_fieldname = 'COLOR'.
*L_LAYOUT-ZEBRA = 'X'.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = SY-REPID
IS_LAYOUT = L_LAYOUT
I_CALLBACK_PF_STATUS_SET = 'STATUS'
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
IT_FIELDCAT = IT_FIELDCAT
TABLES
T_OUTTAB = ITAB
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.
IF SY-SUBRC 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
*& Form STATUS
text
-->P_EXTAB text
FORM STATUS USING P_EXTAB TYPE SLIS_T_EXTAB.
Pf status
SET PF-STATUS 'STATUS'.
ENDFORM. " STATUS
*& Form USER_COMMAND
text
-->R_UCOMM text
-->RS_SELFIELD text
FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM
RS_SELFIELD TYPE SLIS_SELFIELD.
DATA: GD_REPID LIKE SY-REPID, "Exists
REF_GRID TYPE REF TO CL_GUI_ALV_GRID.
IF REF_GRID IS INITIAL.
CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
IMPORTING
E_GRID = REF_GRID.
ENDIF.
IF NOT REF_GRID IS INITIAL.
CALL METHOD REF_GRID->CHECK_CHANGED_DATA .
ENDIF.
loop at itab where chk = 'X'.
itab-color = 'C300'.
modify itab index sy-tabix transporting color.
endloop.
RS_SELFIELD-refresh = 'X'.
break-point.
ENDFORM. "USER_COMMAND
Regards
Vijay Babu Dudla -
SALV - ALV selected row Index - Not getting in second time
I am having a ALV grid using CL_SALV_TABLE class. and its have PF-status button "Display" and user select a line and press "Display" button system will display a PDF document from content server.
The following is the code i am using for getting index of selected row.
My problem is user select a line for the first time i am getting the index, but user select second time i am not getting the index
module user_command_0300 input.
call method cl_gui_cfw=>dispatch.
case ok_code.
when c_hist.
perform f_show_history.
when others.
endcase.
clear ok_code.
endmodule.
then
form f_show_history.
data : p_wa_rows type int4.
data : p_i_rows type salv_t_row.
gr_table->get_metadata( ).
p_i_rows = gr_selections->get_selected_rows( )." Here Its failing in second time. P_I_ROWS showing blank second time
clear: wa_output.
read table p_i_rows into p_wa_rows index 1.
if sy-subrc eq 0.
read table i_output into wa_output index p_wa_rows.
if sy-subrc eq 0.
perform f_display_document.
endif..
endif.
refresh : p_i_rows. clear : p_i_rows.
gr_selections = gr_table->get_selections( ).
gr_selections->set_selected_rows( p_i_rows ).
gr_table->refresh( ).
call method cl_gui_cfw=>set_new_ok_code( new_code = 'REFR' ).
endform. " F_show_history
PS : I don't want to place the button in the ALV application toolbar
a®Hi Dear,
I have some clue regarding your problem but that is in simple Alv not in oops.
declare a first field of your internal table i.e. you are passing to alv as cell type c.
then in layout
add
gs_layout-box_fieldname = 'SEL'.
pass this layout to alv.
then you are able to get exact row number.
LOOP AT gt_gi INTO gs_gi WHERE sel = 'X'.
gs_gi-sel = ' '.
APPEND gs_gi TO gt_gi.
CLEAR gs_gi.
ENDLOOP.
Hope this clue will help you.
Regards,
Vijay -
ALV - selecting the data based on layout set in selection screen
Hi,
I have an ALV report (Custom). I want to give layout selection at selection screen, so the user can create/select/manage layout at the time of selection screen and only these columns will be displayed in the final output. Instead user execute the report for all column and at the end user select the layout. I want this layout at the selection screen level like the standard reports.
Thanks,You can do the following
When the user clicks on download
1.Use FM REUSE_ALV_LIST_LAYOUT_INFO_GET / REUSE_ALV_GRID_LAYOUT_INFO_GET to get the Fieldcat (since due to selection of layout on sel screen some columns are disabled. For the columns which have been disabled the resultant Fieldcat from the above FMs would have NO_OUT = 'X'. Delete columns from Fieldcat itab where no_out = 'X'
2.create a dynamic itab using cl_alv_table_create=>create_dynamic_table( ) passing the above Fieldcat itab, get a handle of new itab
3.loop over the original itab and fill the new dynamic itab
hope this helps... -
ALV: Selection mode in editable ALV
Hi guys,
I have another ALV problem:
I have an ALV which is editable. I found out, that in this case the settings which I made in the field SEL_MODE of the layout are overwritten. [An easy ALV Reference, p. 26|https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/e8a1d690-0201-0010-b7ad-d9719a415907] . In there a way to avoid that the settings are overwritten or to change them? I already tried it using the get/set layout methods, but it didn't work. The user should only be able to select one row.
Regards,
Martingo to se51 double click on your table control open a properties
window inside of table control in that click on line sel single radio button
& also column sel single radio button
there are 3 types of selection
none
single
multiple
just click on single radio button
save check activate
regards
Aniruddh Singh -
ALV selection not displayed/shown
Hello,
I have a question concerning the ALV:
In NW 7.0 everything was fine and working, as of EhP1 the selection for one ALV is not displayed.
...the selection is done alright and also corresponding events are raised. Nevertheless there is no visual representation for a selection - meaning the yellow/orange highlighting of a selected line. It is neither done for the lead selection nor for "normal" selections.
Other ALV in the same application (though different component) work fine and as far as I can tell all are initilized similarly.
Does anyone know this effect and - most important - how to correct it?
Regards,
RobertHello all,
We were able to solve the issue of selections not being visible - although they are correctly set in ALV/context.
-> The default view of the window has to be set to the ALV usage!
Don't ask me why, but in case the default setting is on the empty view, no selections will be visible on the UI. As soon as you set the ALV usage as default, the selections will be visible again.
Kind Regards,
Robert -
ALV - Select multiple lines without CTRL
Hi,
I have an ALV OO Grid with layout-sel_mode = 'A'.
But I need to select multiple lines without need to hold CTRL key. Just like a table control.
Is it possible?
Thanks,
FrisoniHi,
This is not possible selecting multiple records whitout using CTRL... you can have the checkbox instead of tab to select the multiple records without using CTRL.
Refer to this link..How to select multiple lines in ALV without using the CTRL key -
Textview with totals based on dynamic ALV selections
Hi all, it´s me again, suffering like a mother with my first WDA serious application
I have this ALV with a prices column, with an editable checkbox field, and what my client wants is a field on the screen (I think it must be a Textview) that displays the total sum of all selected rows in the ALV. Of course, this sum must be dynamic, according with the actual selection.
Could anyone tell what should I do?
Thanks a lot, best regards.
Federico AlvarezHi Fedrico,
Seeing your problem, You hv to write the logic on the ON_DATA_CHECK event of the alv grid.
I am giving you a sample code that might helps you.
METHOD on_data_check .
Data declaration for assigning the contract,total and balance(remaining) amount
DATA : lo_nd_contract_payment TYPE REF TO if_wd_context_node,
lo_el_contract_payment TYPE REF TO if_wd_context_element,
ls_contract_payment TYPE wd_this->element_contract_payment,
lv_contract_amount LIKE ls_contract_payment-contract_amount,
lv_value_date LIKE ls_contract_payment-value_date.
Data Declaration
DATA : lo_nd_payment_table TYPE REF TO if_wd_context_node,
lo_el_payment_table TYPE REF TO if_wd_context_element,
ls_payment_table TYPE wd_this->element_payment_table,
lt_payment_table LIKE TABLE OF ls_payment_table,
lv_total_amount LIKE ls_payment_table-amount,
lv_balance_amount LIKE ls_payment_table-amount,
lv_paymeth LIKE ls_payment_table-payment_method,
lt_paycreate TYPE TABLE OF /dmpui/db_str_paycreate,
ls_paycreate TYPE /dmpui/db_str_paycreate.
Data declartion for message manager
DATA : lo_api_controller TYPE REF TO if_wd_controller,
lo_message_manager TYPE REF TO if_wd_message_manager.
get message manager
lo_api_controller ?= wd_this->wd_get_api( ).
CALL METHOD lo_api_controller->get_message_manager
RECEIVING
message_manager = lo_message_manager.
navigate from <CONTEXT> to <PAYMENT_TABLE> via lead selection
lo_nd_payment_table = wd_context->get_child_node( name = wd_this->wdctx_payment_table ).
check for data error in the grid
CHECK r_param->t_error_cells IS INITIAL.
IF lo_nd_payment_table IS NOT INITIAL.
get all declared attrigbutes
lo_nd_payment_table->get_static_attributes_table(
IMPORTING
table = lt_payment_table ).
ENDIF.
lo_el_payment_table = lo_nd_payment_table->get_element( ).
lo_el_payment_table->get_attribute(
EXPORTING
name = `PAYMENT_METHOD`
IMPORTING
value = lv_paymeth ).
lv_total_amount = 0.
wd_assist->gc_total_amount = 0.
IF lt_payment_table[] IS NOT INITIAL.
Looping at the payment internal table*
LOOP AT lt_payment_table INTO ls_payment_table.
lv_total_amount = lv_total_amount + ls_payment_table-amount.
ENDIF.
CLEAR ls_payment_table.
ENDLOOP.
ENDIF.
Passing the Total Amount Value to the Assistance class variable
wd_assist->gc_total_amount = lv_total_amount.
navigate from <CONTEXT> to <CONTRACT_PAYMENT> via lead selection
lo_nd_contract_payment = wd_context->get_child_node( name = wd_this->wdctx_contract_payment ).
get element via lead selection
lo_el_contract_payment = lo_nd_contract_payment->get_element( ).
lo_el_contract_payment->get_attribute(
EXPORTING
name = `CONTRACT_AMOUNT`
IMPORTING
value = lv_contract_amount ).
Calculating the balance amount
lv_balance_amount = lv_contract_amount - wd_assist->gc_total_amount.
get single attribute
lo_el_contract_payment->set_attribute(
EXPORTING
name = `TOTAL_AMOUNT`
value = wd_assist->gc_total_amount ).
lo_el_contract_payment->set_attribute(
EXPORTING
name = `BALANCE_AMOUNT`
value = lv_balance_amount ).
Binding the data to the context node
lo_nd_payment_table->bind_table(
EXPORTING
new_items = lt_payment_table " List of Elements or Model Data
set_initial_elements = abap_true " If TRUE, Set Initial Elements Otherwise Add
ENDMETHOD.
Regards
Manoj Kumar
Edited by: Manoj Kumar on Feb 27, 2009 10:25 AM -
hi gurus,
i have a scenario, where i need to output alv list display,
but i need to give an option on side to choose among the displayed lines in the output,
so that, when the user chooses few lines and presses a button, only those records have to be processed.
any clues, how to give an option of choosing among the records displayed in alv list,
and then reading the lines which are chosen to get those details and process them.
thank you.You can use the class cl_gui_alv_grid to display a list in ALV.
Use the methods get_selected_rows to get only the selected rows after pressing the buttons in the PAI.
Regards,
Sudhir Atluru
Reward points for helpfull answers -
Regarding ALV selection screen
hi all,
my issue:
i have an alv report which has almost 10 paramters based on which the internal table will be populated. the two parameters are mandatory .. 4 are select options and 4 are radiobuttons. i think this will lead to a lot of select queries.
i was wondering if there is any way we can minimize the no. of select query.
also would like to know if ranges table can work in such a scenario.
9 fields are from table pLAF and two are from MARA and MKAL respectively
please advice.
thanks in advance
SrinivasHi,
For select-options,You dont have to check whether that field is initial or not.So For 4 select-options, u can use one select query.2 parameter field is also mandatory so you dont have to check those 2 field is intial or not.U got to put 4 if condition for 4 radio buttons.
Eg:
If rd_1 = 'X'.
select field1 field1 from <table1> into table where field1 = p_param1
and field2 = p_param2
and field3 in s_selop1
and field4 in s_selop2
and field5 in s_selop3
and field6 in s_selop4.
elseif rd_2 = 'X'.
select field1 field1 from <table2> into table where field1 = p_param1
and field2 = p_param2
and field3 in s_selop1
and field4 in s_selop2
and field5 in s_selop3
and field6 in s_selop4.
elseif rd_3 = 'X'.
select field1 field1 from <table3> into table where field1 = p_param1
and field2 = p_param2
and field3 in s_selop1
and field4 in s_selop2
and field5 in s_selop3
and field6 in s_selop4.
elseif rd_4 = 'X'.
select field1 field1 from <table4> into table where field1 = p_param1
and field2 = p_param2
and field3 in s_selop1
and field4 in s_selop2
and field5 in s_selop3
and field6 in s_selop4.
endif. -
ALV: selection after sort by user
Hello,
After the user sorts the ALV, is it possible to retrieve the sorted table in your program. Because when I now act on the selection the user has made, I read the indexes of the unsorted table. Is there a method to retrieve the sorted table from the ALV (I'm working with ALV object model).
Thank you,
TomHi Tom,
Probably you can get the sort sequence used instead. Sort your table by this sequence first and then read the indexes..
to get the sort criteria used, you can use method get_sort_criteria.
~Piyush Patil
Maybe you are looking for
-
Problems with the new NAT in ASA 5510 (8.4)
Hi together, i have some problems with the NAT statements in ASA Version 8.4. What i want is to translate the internal address of a server to the external address with a NAT rule. The ASA has only one WAN connection (named outside) The internal serve
-
Adobe Flash Player error during update from 10.0.45 to 10.1
I am getting this error message during the upgrade from 10.0 to 10.1 and it errors with the following error: Error 1722. There is a problem with this Windows Installer package. A program run as part of the setup did not finish as expected. Contact yo
-
How to make a hard copy of the OS mountain lion that i downloaded
How to make a hard copy of the file ofthe OS mountain lion downloaded from apple
-
Extending a controller, but not sure which one to extend
Hi Tech Gurus, I have a task ( validate a input field say Number) and my approach is to extend a controller and write my code in the ProcessFormRequest section. But i am unable to know which controller to extend ? My approach is - for the particular
-
Send for shared review multiple pdf files
Hi I want to know if it's possible to send for shared review more than one file with one action, or you have to send for shared review every single file? I have more than 100 files I would like to send for shared review.