‎2007 Oct 03 9:56 AM
‎2007 Oct 03 9:57 AM
Hi,
Please refer program rsdemo_dropdown_listbox
Best regards,
Prashant
‎2007 Oct 03 10:02 AM
do u know as sample program
go to se11
choose view
enter any view
press display
select the selection condition tab.
there a table.......i need the same function like the table
‎2007 Oct 03 10:05 AM
hi,
Write this in Flow logic in screen after PAI.
PROCESS ON VALUE-REQUEST.
FIELD <b>ifmtp-form_type</b> MODULE <b>fm_drop</b>.
<b>MODULE fm_drop INPUT.</b>
CLEAR ifmtp.
REFRESH ifmtp.
ifmtp-form_type = 'C'.
APPEND ifmtp.
ifmtp-form_type = 'F'.
APPEND ifmtp.
ifmtp-form_type = 'H'.
APPEND ifmtp.
ifmtp-form_type = 'D'.
APPEND ifmtp.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'FORM_TYPE'
value_org = 'S'
TABLES
value_tab = ifmtp.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
<b>ENDMODULE. " fm_drop INPUT</b>
here <b>ifmtp-form_type</b> is my field which is as listbox and <b>fm_drop</b> is my module name.
<b>ifmtp</b> is my internal table so declare it in top module( module for data declaration).
<b>DATA : BEGIN OF ifmtp OCCURS 0,
form_type LIKE zform_track_mast-form_type,
END OF ifmtp.</b>
Reward if useful.
‎2007 Oct 03 10:07 AM
Make that particular field of the table control as drop down list box in its field attributes in teh screen layout.
and then call the fm : VRM_SET_VALUES in the PBO to fill the drop down list with its values.
see the sample below of how to use the fm.
TYPE-POOLS : vrm.
DATA : name TYPE vrm_id,
list TYPE vrm_values,
value LIKE LINE OF list.
AT SELECTION-SCREEN OUTPUT.
name = 'P_INT'. " field of the table control
value-key = 'One'.
value-text = '1'.
APPEND value TO list.
value-key = 'Two'.
value-text = '2'.
APPEND value TO list.
" in your case fill the list with the desired values
CALL FUNCTION 'VRM_SET_VALUES'
EXPORTING
id = name
values = list.
CLEAR list.Regards
Gopi
‎2007 Oct 03 10:09 AM
hi gary
1. if u take the fields from the ztable means go to se11 and add one more field .
ex (ch type c 20 ).
2.if u take the fields from the IT table means add one more field in your structure.
ex (ch type c 20 ).
3.fianlly u go to screen painter screen double click on the field as u want to change into DROPDOWN.
4.then u can see DROPDOWN filed in that u select LISTBOX key word.
i hope its works.
regards
baskaran
‎2007 Oct 03 10:10 AM
Hi Gary,
Earlier I have done table control which includes dropdown list... Please see my below code and you will get some idea.
&----
*& Include ZHKTEST2TOP
&----
PROGRAM ZHKTEST2.
TABLES: ZTEST.
*-- OKCODE to handle
DATA: ok_code TYPE SY-UCOMM.
*---Table control declaration
CONTROLS: tc TYPE TABLEVIEW USING SCREEN 100.
TYPES: BEGIN OF ty_test.
TYPES MARK TYPE CHAR1.
INCLUDE TYPE ZTEST.
TYPES: END OF ty_test.
DATA: t_test TYPE ty_test.
DATA: i_test like t_test OCCURS 0 WITH HEADER LINE,
wa_test TYPE ty_test.
DATA: i_ztest LIKE ZTEST OCCURS 0 WITH HEADER LINE.
DATA: lv_count TYPE i,
gv_tabix TYPE i,
lv_test TYPE i,
flag_check type CHAR1,
flagx TYPE char1,
flag_init TYPE CHAR1,
flag_all type char1, "For select all icon
flag_deselect type char1, "For deselecting icon
flag_ins TYPE CHAR1,
flag_sortup TYPE CHAR1,
flag_sortdown TYPE CHAR1.
*----
PBO Declarations
&----
*& Include ZHKTEST2O01
&----
&----
*& Module initialize_data OUTPUT
&----
text
----
MODULE initialize_data OUTPUT.
*-- To get GUI status
PERFORM get_gui_status.
*-- Set cursor field
PERFORM set_cursor_field.
ENDMODULE. " initialize_data OUTPUT
&----
*& Module get_defaultdata OUTPUT
&----
text
----
MODULE get_defaultdata OUTPUT.
*-- Get default data from ZTEST table
IF flag_init IS INITIAL.
SELECT *
FROM ZTEST
INTO CORRESPONDING FIELDS OF TABLE i_test.
flag_init = 'X'.
ENDIF.
*-- For table control scrolling
DESCRIBE TABLE i_test LINES lv_count.
TC-lines = lv_count + 100.
*-- For selecting all rows in a table control
IF flag_all = 'X'.
LOOP AT i_test.
i_test-MARK = 'X'.
MODIFY i_test TRANSPORTING MARK.
ENDLOOP.
CLEAR flag_all.
ENDIF.
*-- For deselecting all rows
IF flag_deselect = 'X'.
LOOP AT i_test.
i_test-MARK = SPACE.
MODIFY i_test TRANSPORTING MARK.
ENDLOOP.
CLEAR flag_deselect.
ENDIF.
*-- For sorting
IF flag_sortup = 'X'.
SORT i_test BY source_type ASCENDING.
CLEAR flag_sortup.
ELSEIF flag_sortdown = 'X'.
SORT i_test BY source_type DESCENDING.
CLEAR flag_sortdown.
ENDIF.
ENDMODULE. " get_defaultdata OUTPUT
&----
*& Module screen_modify OUTPUT
&----
text
----
MODULE screen_modify OUTPUT.
READ TABLE I_TEST INTO WA_TEST INDEX TC-CURRENT_LINE.
IF SY-SUBRC = 0.
LOOP AT SCREEN.
IF SCREEN-NAME = 'I_TEST-SOURCE_TYPE'.
SCREEN-INPUT = '0'.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDIF.
CASE ok_code.
WHEN 'INSE'.
IF TC-CURRENT_LINE = gv_tabix.
LOOP AT SCREEN.
IF SCREEN-NAME = 'I_TEST-SOURCE_TYPE'.
SCREEN-INPUT = '1'.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
CLEAR gv_tabix.
ENDIF.
ENDCASE.
ENDMODULE. " screen_modify OUTPUT
*----
PAI Declarations
&----
*& Include ZHKTEST2I01
&----
&----
*& Module user_command INPUT
&----
text
----
MODULE user_command INPUT.
DATA: lin type i.
CLEAR ok_code.
ok_code = SY-UCOMM.
CASE ok_code.
*-- When clicking on BACK, EXIT or CANCEL buttons
WHEN 'BACK' OR 'EXIT' OR 'CANCEL'.
LEAVE TO SCREEN 0.
*-- Inserting a new record within selection
WHEN 'INSE'.
READ TABLE i_test WITH KEY mark = 'X'.
IF SY-SUBRC = 0.
INSERT INITIAL LINE into I_TEST INDEX sy-tabix.
gv_tabix = sy-tabix.
flag_ins = 'X'.
flag_deselect = 'X'.
ENDIF.
*-- Deleting the selected records
WHEN 'DEL'.
IF NOT i_test[] IS INITIAL.
DATA: answer TYPE c.
CALL FUNCTION 'POPUP_TO_CONFIRM'
EXPORTING
TITLEBAR = 'Confirmation'
TEXT_QUESTION = 'This will delete database entry also...'
TEXT_BUTTON_1 = 'Yes'
TEXT_BUTTON_2 = 'No'
DEFAULT_BUTTON = '1'
DISPLAY_CANCEL_BUTTON = 'X'
START_COLUMN = 25
START_ROW = 6
IMPORTING
ANSWER = answer.
IF answer = '1'.
LOOP AT i_test WHERE MARK = 'X'.
DELETE FROM ZTEST WHERE source_type = i_test-source_type.
COMMIT WORK.
ENDLOOP.
DELETE i_test WHERE mark = 'X'.
ELSEIF answer = '2'.
LOOP AT i_test WHERE MARK = 'X'.
i_test-mark = SPACE.
MODIFY i_test TRANSPORTING MARK.
ENDLOOP.
ENDIF.
ENDIF.
*--- select all button
WHEN 'ALSI'.
flag_all = 'X'.
*-- Deselect all
WHEN 'DESEL'.
flag_deselect = 'X'.
*-- Sort UP
WHEN 'SUP'.
flag_sortup = 'X'.
*-- Sort down
WHEN 'SDOWN'.
flag_sortdown = 'X'.
*--Save
WHEN 'SAVE'.
IF NOT i_test[] IS INITIAL.
LOOP AT i_test.
i_ztest-mandt = SY-MANDT.
i_ztest-source_type = i_test-source_type.
i_ztest-length = i_test-length.
i_ztest-width = i_test-width.
i_ztest-height = i_test-height.
APPEND i_ztest.
CLEAR i_ztest.
ENDLOOP.
MODIFY ZTEST from table i_ztest.
COMMIT WORK.
MESSAGE s998(hk) WITH 'Table ZTEST successfully updated'.
ENDIF.
ENDCASE.
ENDMODULE. " user_command INPUT
&----
*& Module check INPUT
&----
text
----
MODULE check INPUT.
MODIFY i_test INDEX tc-current_line.
ENDMODULE. " check INPUT
&----
*& Module pass_data INPUT
&----
text
----
MODULE pass_data INPUT.
IF tc-current_line GT lv_count.
APPEND i_test.
ELSE.
MODIFY i_test INDEX tc-current_line.
ENDIF.
ENDMODULE. " pass_data INPUT
*------ Subroutines
&----
*& Include ZHKTEST2F01
&----
&----
*& Form get_gui_status
&----
FORM get_gui_status .
SET PF-STATUS 'TEST'.
ENDFORM. " get_gui_status
&----
*& Form set_cursor_field
&----
FORM set_cursor_field .
SET CURSOR FIELD 'I_TEST-SOURCE_TYPE' LINE
TC-TOP_LINE.
ENDFORM. " set_cursor_field
Please reward points for helpful answers.
Regards,
hari krishna