Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

table control

Former Member
0 Likes
577

Hi all,

how to add dropdownlist column in table control?

6 REPLIES 6
Read only

Former Member
0 Likes
544

Hi,

Please refer program rsdemo_dropdown_listbox

Best regards,

Prashant

Read only

0 Likes
544

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

Read only

Former Member
0 Likes
544

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.

Read only

gopi_narendra
Active Contributor
0 Likes
544

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

Read only

Former Member
0 Likes
544

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

Read only

Former Member
0 Likes
544

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