‎2006 Dec 11 9:04 AM
hello all,
i am a novice in abap. can someone tell me how to display data using table control . <b>i want without wizard</b>.
thanks & regards,
seenu
‎2006 Dec 11 9:07 AM
hi seenu,
this code will helps u,,
PROCESS BEFORE OUTPUT.
MODULE STATUS_9000.
LOOP AT IT_STR WITH CONTROL TC.
MODULE FILL_MODULE_9OOO.
MODULE ICON_9000.
ENDLOOP.
PROCESS AFTER INPUT.
MODULE CANCEL AT EXIT-COMMAND.
LOOP AT IT_STR.
CHAIN.
FIELD IT_STR-MNO.
FIELD IT_STR-QTY.
MODULE FILL_TABLE_9000 ON CHAIN-REQUEST.
ENDCHAIN.
ENDLOOP.
****************************************************
MODULE FILL_TABLE_9000 ON CHAIN-REQUEST.
DATA : V_LINECOUNT TYPE I, "TO FIND NO OF LINES IN INTERNAL TABLE
V_PAGECOUNT TYPE I, "TO ADD LINES WHEN SCROLLING
V_ABS_LINE TYPE I. "FOR CURRENT LINE
IF SY-DATAR = 'X'. "CLICK IS ON MESSAGE OR IN SCROLL.
DESCRIBE TABLE IT_STR LINES V_LINECOUNT. "TO GET THE NO OF LINES
IF SY-SUBRC = 0.
V_ABS_LINE = TC-TOP_LINE + SY-STEPL - 1. "GETTING THE CURRENT LINE
IF V_ABS_LINE LE V_LINECOUNT. "CHECKING WHEATHER CURRENT LINE IS GT LINECOUNT
MODIFY IT_STR INDEX V_ABS_LINE. "SY-STEPL.
ELSE.
IT_STR-ZINO = V_ABS_LINE.
APPEND IT_STR.
ENDIF.
ENDIF.
*tc-lines = sy-tfill + 1.
V_PAGECOUNT = SY-STEPL DIV SY-LOOPC. "CHECKING WHEATHER TO ADD LINES OR NOT
IF V_PAGECOUNT > 0.
TC-LINES = V_LINECOUNT + SY-LOOPC.
ENDIF.
ENDMODULE.
ENDIF.
<b>reward points if this helps u,</b>
regards,
siva
Message was edited by:
sivakumar palaniswamy
‎2006 Dec 11 9:15 AM
hi...
jus go to screen painter,
click lay out.
in that,click on the table control icon.
after placing a table in the lay out,
jus click F6(dictionary or program fields) icon at the top of the lay out page.
then another screen wil appear, where in u can type the table name that u want.
all the fields of that table wil b displayed,which u can select as per ur requirement and finally press enter.
then all ur fields wil b seen at ur table control layout.
‎2006 Dec 11 9:16 AM
hi,
check this sample code...
PROGRAM ztrans3.
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 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
hope this helps,
do reward if it helps,
priya.