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

Problem in reading a table control data

Former Member
0 Likes
1,026

Hi Friends,

I have the output in the table control now I want to pick some records from the table control, I am doing that using the flag but I am unable to read a record after the user selects the check box. I need to trasnfer only those records which user has selected and update in the database.

Can any one tell me how to do it.

Regards,

Line

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
955

Hi,

See the sample code for this

TABLES: kna1,knbk.

DATA: v_kunnr LIKE kna1-kunnr.

DATA: v_check TYPE c.

DATA: BEGIN OF it_knbk OCCURS 0,

banks LIKE knbk-banks,

bankl LIKE knbk-bankl,

bankn LIKE knbk-bankn,

bkont LIKE knbk-bkont,

koinh LIKE knbk-koinh,

chk TYPE c,

END OF it_knbk.

DATA: v_ucomm TYPE sy-ucomm,

v_dynnr TYPE sy-dynnr.

DATA: l_index TYPE sy-index.

data: count type i.

CONTROLS: tc1 TYPE TABLEVIEW USING SCREEN 0200.

&----


*& Module STATUS_0100 OUTPUT

&----


  • text

----


MODULE status_0100 OUTPUT.

SET PF-STATUS 'ABC'.

  • SET TITLEBAR 'xxx'.

ENDMODULE. " STATUS_0100 OUTPUT

&----


*& Module USER_COMMAND_0100 INPUT

&----


  • text

----


MODULE user_command_0100 INPUT.

v_ucomm = sy-ucomm.

CASE v_ucomm.

WHEN 'DISP' OR 'CHNG'.

IF v_kunnr <> space.

SELECT banks

bankl

bankn

bkont

koinh

FROM knbk

INTO TABLE it_knbk

WHERE kunnr = v_kunnr.

LEAVE TO SCREEN '0200'.

ENDIF.

WHEN 'BACK'.

LEAVE TO SCREEN 0.

ENDCASE.

ENDMODULE. " USER_COMMAND_0100 INPUT

&----


*& Module MOD_KUNNR INPUT

&----


  • text

----


MODULE mod_kunnr INPUT.

IF NOT v_kunnr IS INITIAL.

SELECT SINGLE

kunnr

FROM kna1

INTO v_kunnr

WHERE kunnr = v_kunnr.

IF sy-subrc <> 0.

MESSAGE e000(zz) WITH 'INCORRECT CUSTOMER NUMBER'.

ENDIF.

ENDIF.

IF v_kunnr IS INITIAL.

MESSAGE e000(zz) WITH 'PLEASE ENTER A VALUE'.

ENDIF.

ENDMODULE. " MOD_KUNNR INPUT

&----


*& Module STATUS_0200 OUTPUT

&----


  • text

----


MODULE status_0200 OUTPUT.

SET PF-STATUS 'ABC1'.

  • SET TITLEBAR 'xxx'.

ENDMODULE. " STATUS_0200 OUTPUT

&----


*& Module SCREENMOD OUTPUT

&----


  • text

----


MODULE screenmod OUTPUT.

IF v_ucomm = 'DISP'.

LOOP AT SCREEN.

screen-input = 0.

MODIFY SCREEN.

ENDLOOP.

ELSE."if v_UCOMM = 'CHNG'.

LOOP AT SCREEN.

IF screen-group1 = 'G1'.

screen-input = 0.

ELSE.

screen-input = 1.

ENDIF.

MODIFY SCREEN.

ENDLOOP.

endif.

if sy-ucomm = 'INSE'.

loop at screen.

IF ( tc1-current_line <> tc1-lines ).

screen-input = 0.

else.

screen-input = 1.

modify screen.

endif.

endloop.

endif.

ENDMODULE. " SCREENMOD OUTPUT

&----


*& Module EXIT2 INPUT

&----


  • text

----


MODULE exit2 INPUT.

LEAVE TO SCREEN 0.

ENDMODULE. " EXIT2 INPUT

&----


*& Module modify INPUT

&----


  • text

----


MODULE modify INPUT.

IF v_check = 'X'.

it_knbk-chk = 'X'.

MODIFY it_knbk index tc1-current_line.

ELSE.

CLEAR it_knbk-chk .

ENDIF.

ENDMODULE. " modify INPUT

&----


*& Module USER_COMMAND_0200 INPUT

&----


  • text

----


MODULE user_command_0200 INPUT.

v_ucomm = sy-ucomm.

CASE v_ucomm.

WHEN 'DELE'.

DELETE it_knbk where chk eq 'X'.

DESCRIBE TABLE it_knbk LINES tc1-lines.

WHEN 'INSE'.

CLEAR it_knbk.

APPEND it_knbk.

DESCRIBE TABLE it_knbk LINES tc1-lines.

WHEN 'LIST'.

LEAVE TO LIST-PROCESSING AND RETURN TO SCREEN '0200'.

WRITE 'Report'.

WHEN 'BACK'.

LEAVE TO SCREEN '0100'.

ENDCASE.

ENDMODULE. " USER_COMMAND_0200 INPUT

&----


*& Module validate INPUT

&----


  • text

----


module validate input.

IF IT_KNBK IS INITIAL.

MESSAGE E000(ZZ) WITH 'A BLANK LINE CANNOT BE SAVED'.

ENDIF.

endmodule. " validate INPUT

reward if useful

regards

Anji

8 REPLIES 8
Read only

Former Member
0 Likes
955

Hi

Check the below link:

http://wiki.ittoolbox.com/index.php/FAQ:What_is_module_pool_program_in_abap%3F

http://help.sap.com/saphelp_46c/helpdata/en/35/26b1aaafab52b9e10000009b38f974/content.htm

http://sap.mis.cmich.edu/sap-abap/abap09/sld011.htm

http://sap.mis.cmich.edu/sap-abap/abap09/index.htm

You can also check the transaction ABAPDOCU which gives you lot of sample programs.

Also you can see the below examples...

Go to se38 and give demodynpro and press F4.

YOu will get a list of demo module pool programs.

One more T-Code is ABAPDOCU.

YOu can find more examples there.

See the prgrams:

DEMO_DYNPRO_TABLE_CONTROL_1 Table Control with LOOP Statement

DEMO_DYNPRO_TABLE_CONTROL_2 Table Control with LOOP AT ITAB

http://www.geocities.com/ZSAPcHAT

http://www.allsaplinks.com/files/using_table_in_screen.pdf

Reward Points if useful

regards

Anji

Read only

Former Member
0 Likes
955

Check this sample programs

http://www.planetsap.com/online_pgm_main_page.htm

http://sap.niraj.tripod.com/id29.html

http://www.sapdevelopment.co.uk/dialog/tabcontrol/tc_basic.htm

and also look for the examples related to Table Control in SE38

RSDEMO_TABLE_CONTROL

demo_dynpro_tabcont_loop

demo_dynpro_tabcont_loop_at

or look in transaction DWDM

Regards,

Santosh

Read only

0 Likes
955

Hi,

Thanx for ur repy, any sample code will be appreciated.

Regards,

Line

Read only

Former Member
0 Likes
955

hi,

You can find some sample code here

Reward if it helps

Regards,

Santosh

Read only

Former Member
0 Likes
956

Hi,

See the sample code for this

TABLES: kna1,knbk.

DATA: v_kunnr LIKE kna1-kunnr.

DATA: v_check TYPE c.

DATA: BEGIN OF it_knbk OCCURS 0,

banks LIKE knbk-banks,

bankl LIKE knbk-bankl,

bankn LIKE knbk-bankn,

bkont LIKE knbk-bkont,

koinh LIKE knbk-koinh,

chk TYPE c,

END OF it_knbk.

DATA: v_ucomm TYPE sy-ucomm,

v_dynnr TYPE sy-dynnr.

DATA: l_index TYPE sy-index.

data: count type i.

CONTROLS: tc1 TYPE TABLEVIEW USING SCREEN 0200.

&----


*& Module STATUS_0100 OUTPUT

&----


  • text

----


MODULE status_0100 OUTPUT.

SET PF-STATUS 'ABC'.

  • SET TITLEBAR 'xxx'.

ENDMODULE. " STATUS_0100 OUTPUT

&----


*& Module USER_COMMAND_0100 INPUT

&----


  • text

----


MODULE user_command_0100 INPUT.

v_ucomm = sy-ucomm.

CASE v_ucomm.

WHEN 'DISP' OR 'CHNG'.

IF v_kunnr <> space.

SELECT banks

bankl

bankn

bkont

koinh

FROM knbk

INTO TABLE it_knbk

WHERE kunnr = v_kunnr.

LEAVE TO SCREEN '0200'.

ENDIF.

WHEN 'BACK'.

LEAVE TO SCREEN 0.

ENDCASE.

ENDMODULE. " USER_COMMAND_0100 INPUT

&----


*& Module MOD_KUNNR INPUT

&----


  • text

----


MODULE mod_kunnr INPUT.

IF NOT v_kunnr IS INITIAL.

SELECT SINGLE

kunnr

FROM kna1

INTO v_kunnr

WHERE kunnr = v_kunnr.

IF sy-subrc <> 0.

MESSAGE e000(zz) WITH 'INCORRECT CUSTOMER NUMBER'.

ENDIF.

ENDIF.

IF v_kunnr IS INITIAL.

MESSAGE e000(zz) WITH 'PLEASE ENTER A VALUE'.

ENDIF.

ENDMODULE. " MOD_KUNNR INPUT

&----


*& Module STATUS_0200 OUTPUT

&----


  • text

----


MODULE status_0200 OUTPUT.

SET PF-STATUS 'ABC1'.

  • SET TITLEBAR 'xxx'.

ENDMODULE. " STATUS_0200 OUTPUT

&----


*& Module SCREENMOD OUTPUT

&----


  • text

----


MODULE screenmod OUTPUT.

IF v_ucomm = 'DISP'.

LOOP AT SCREEN.

screen-input = 0.

MODIFY SCREEN.

ENDLOOP.

ELSE."if v_UCOMM = 'CHNG'.

LOOP AT SCREEN.

IF screen-group1 = 'G1'.

screen-input = 0.

ELSE.

screen-input = 1.

ENDIF.

MODIFY SCREEN.

ENDLOOP.

endif.

if sy-ucomm = 'INSE'.

loop at screen.

IF ( tc1-current_line <> tc1-lines ).

screen-input = 0.

else.

screen-input = 1.

modify screen.

endif.

endloop.

endif.

ENDMODULE. " SCREENMOD OUTPUT

&----


*& Module EXIT2 INPUT

&----


  • text

----


MODULE exit2 INPUT.

LEAVE TO SCREEN 0.

ENDMODULE. " EXIT2 INPUT

&----


*& Module modify INPUT

&----


  • text

----


MODULE modify INPUT.

IF v_check = 'X'.

it_knbk-chk = 'X'.

MODIFY it_knbk index tc1-current_line.

ELSE.

CLEAR it_knbk-chk .

ENDIF.

ENDMODULE. " modify INPUT

&----


*& Module USER_COMMAND_0200 INPUT

&----


  • text

----


MODULE user_command_0200 INPUT.

v_ucomm = sy-ucomm.

CASE v_ucomm.

WHEN 'DELE'.

DELETE it_knbk where chk eq 'X'.

DESCRIBE TABLE it_knbk LINES tc1-lines.

WHEN 'INSE'.

CLEAR it_knbk.

APPEND it_knbk.

DESCRIBE TABLE it_knbk LINES tc1-lines.

WHEN 'LIST'.

LEAVE TO LIST-PROCESSING AND RETURN TO SCREEN '0200'.

WRITE 'Report'.

WHEN 'BACK'.

LEAVE TO SCREEN '0100'.

ENDCASE.

ENDMODULE. " USER_COMMAND_0200 INPUT

&----


*& Module validate INPUT

&----


  • text

----


module validate input.

IF IT_KNBK IS INITIAL.

MESSAGE E000(ZZ) WITH 'A BLANK LINE CANNOT BE SAVED'.

ENDIF.

endmodule. " validate INPUT

reward if useful

regards

Anji

Read only

Former Member
0 Likes
955

hi plese tell me how to post quastion to sdn

Read only

Former Member
0 Likes
955

hi plese tell me how to post quastion to sdn

Read only

0 Likes
955

Hi Venkat,

Click on the post new thread to post ur question.

Line