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

editable table control

Former Member
0 Likes
576

Hi experts,

I m looking for a sample program of an editable table control, where i can add/modify rows (without popup screens) to a control table , and restore the result in an internal table.

table control must have 4 columns : position , material number, material description and quantity.

The columns position and material description are not editable.

The value of positions is an integer : every new row results : last position + 1.

material description will be filled automatically after filling the material number.

Thanks.

2 REPLIES 2
Read only

Former Member
0 Likes
539

Using a Table control with an internal table

Table control : TC1

Internal table : it_zsd00003

In the attributes of the table control, select w/SelColumn to get a selection

column on the table control, and give a name (In this example IT_ZSD00003-LINESEL).

Remember to include the field IT_ZSD00003-LINESEL in the

internal table ( linesel(1) type c, ).

When used with an internal table, remember to program

the update functionality of the database tables. Update and

validation can be done when leaving the screen or in PAI using controlname-

current_line (E.g. TC1-current_line ) to indentify the entry in the internal table.


process before output.
  module status_0100.
  loop at it_zsd00003 with control tc1 cursor tc1-
current_line.
    module tc1_set_field_attr.     "Optional
  endloop.

module status_0100 output.
  set pf-status 'SCREEN0100'.

* OPTIONAL: If it_zsd00003 hasn't allready been filled with
* data, you can do it the first time PBO is called
  module read_data.


* Setting the number of lines of the table control
  describe table it_zsd00003 lines tc1-lines.


* Optional: Place the cursor on line  g_current_line e.g. after a
* validation error has occured 
  if not ( g_current_line is initial ).
    tc1-top_line =  g_current_line.
    clear g_current_line.
  endif.

endmodule.                 " STATUS_0100  OUTPUT

module read_data.
  if flag is initial.
    perform read_data.
    flag = 1.

  endif.
endmodule.        

module tc1_set_field_attr output.
* Optional: Protect some of the columns on the
* table control
    loop at screen.
      if screen-group1 = 'X'.
        screen-input = 0.
        modify screen.
      endif.
    endloop.
  endif.
endmodule.                 " tc1_set_field_attr  OUTPUT

 
process after input.
  loop at it_zsd00003.
     module modify_tc1.
  endloop.

  module user_command_0100.



module modify_tc1 input.

* Modify an existing entry
  modify it_zsd00003 index tc1-current_line.

* OR

* Appending a new entry
  append it_zsd00003.


endmodule.                 " modify_tc1  INPUT



Deleting a single line selected with the selection column: 

form delete_record.

  loop at it_zsd00003.
    if it_zsd00003-linesel = 'X'.
       exit.
    endif.
  endloop.
  
   delete from zsd00003
       where  zdriftscenter     = it_zsd00003-zdriftscenter
              ................................. 
             
endform.                    

Regards,

Prabhudas

Read only

Former Member
0 Likes
539

You can check programs : DEMO_DYNPRO_TABLE_CONTROL_1 & DEMO_DYNPRO_TABLE_CONTROL_2