Table control in internal table
what will b the sequence to creat module pool
i.e topinclude , pbo ,pai , screen-layout, flow logic ,
i m confused which sequence i follow .
Hi,
In the Object Browser, the module pool code belongs to one of the following categories:
Global fields: data declarations that can be used by all modules in the module pool
PBO modules: modules that are called before displaying the screen
PAI modules: modules that are called in response to the user input
Subroutines: subroutines that can be called from any position within the module pool
By default, the system divides a module pool into one or several include programs. An include program can contain several modules of the same type (only PBO modules or only PAI modules). The main program then consists of a sequence of INCLUDE statements that link the modules to the module pool:
*& Module pool SAPMTZ10
*& Display data of Table SPFLI
Global data
INCLUDE MTZ10TOP.
PAI modules
INCLUDE MTZ10I01.
PBO modules
INCLUDE MTZ10O01.
In the ABAP/4 editor, you can display the code hidden behind the INCLUDE statements by choosing Edit ---> More functions ---> EXPAND include. With all INCLUDE statements expanded, the module pool looks like this:
*& Module pool SAPMTZ10
*& FUNCTION: Display data from Table SPFLI
INCLUDE MTZ10TOP (This is the TOP include:
the TOP module contains global data declarations)
PROGRAM SAPMTZ10.
TABLES: SPFLI.
DATA OK_CODE(4).
INCLUDE MTZ10I01 (This is a PAI include.)
*& Module USER_COMMAND_0100 INPUT
Retrieve data from SPFLI or leave transaction
MODULE USER_COMMAND_0100 INPUT.
CASE OK_CODE.
WHEN 'SHOW'.
CLEAR OK_CODE.
SELECT SINGLE * FROM SPFLI WHERE CARRID = SPFLI-CARRID
AND CONNID = SPFLI-CONNID.
WHEN SPACE.
WHEN OTHERS.
CLEAR OK_CODE.
SET SCREEN 0.
LEAVE SCREEN.
ENDCASE.
ENDMODULE.
INCLUDE MTZ10O01 (This is a PBO include.)
*& Module STATUS_0100
Specify GUI status and title for screen 100
MODULE STATUS_0100.
SET PF-STATUS 'TZ0100'.
SET TITLEBAR '100'.
ENDMODULE.
You use the ABAP/4 Dictionary to store frequently used data declarations centrally. Objects defined in the Dictionary are known throughout the system. Active Dictionary definitions can be accessed by any application. Data defined in the Dictionary can be included in a screen or used by an ABAP/4 program. You declare global data in the TOP module of the transaction, using the TABLES, STRUCTURE, LIKE statements and others
Cheers,
vasu.
kindly reward if helpful.
Similar Messages
-
Help regarding 'table controls' and 'internal table' updation
Hi all.
Basically this is what i have done..... I have created a table control in module pool program. I declared an Internal table and also have populated it from a database table. I have also used insert statement to insert an blank record in the table control view and delete statements to delete any record, also in the table control view... .
But I am not able to update any new record into an Internal table or the original table ..
Any Ideas how to do it ,Gurus
ThanksHEllo,
Check thsi simple report.
REPORT ZTFH_TABLECONTROL .
TABLES : ZEMPTABLE.
DATA : SELLINE .
DATA : FLD(20).
DATA : LINNO TYPE I , OFF TYPE I.
DATA : ITAB LIKE ZEMPTABLE OCCURS 10 WITH HEADER LINE.
CONTROLS : CON_TAB TYPE TABLEVIEW USING SCREEN 100.
SELECT * FROM ZEMPTABLE INTO TABLE ITAB.
DESCRIBE TABLE ITAB LINES CON_TAB-LINES.
CALL SCREEN 100.
*& Module EXT_COMM INPUT
* text
MODULE EXT_COMM INPUT.
LEAVE PROGRAM.
ENDMODULE. " EXT_COMM INPUT
*& Module TAB_UPDATE INPUT
* text
MODULE TAB_UPDATE INPUT.
CASE SY-UCOMM.
WHEN 'DEL'.
IF SELLINE = 'X'.
DELETE ITAB WHERE EMPNO = ITAB-EMPNO.
MESSAGE I000(ZYF_DEL).
ENDIF.
WHEN 'UPD'.
IF SELLINE = 'X'.
MODIFY ITAB INDEX CON_TAB-CURRENT_LINE.
MESSAGE I001(ZYF_DEL).
ENDIF.
WHEN 'INS'.
IF SELLINE = 'X'.
GET CURSOR FIELD FLD LINE LINNO OFFSET OFF.
SET CURSOR FIELD FLD LINE LINNO OFFSET OFF.
IF FLD CP 'ITAB*' AND SY-SUBRC = 0.
IF LINNO >= 1.
LINNO = LINNO + CON_TAB-TOP_LINE - 1.
CLEAR ITAB.
INSERT ITAB INDEX LINNO.
CON_TAB-LINES = CON_TAB-LINES + 1.
ELSE.
CLEAR ITAB.
APPEND ITAB.
CON_TAB-LINES = CON_TAB-LINES + 1.
ENDIF.
ENDIF.
ENDIF.
WHEN 'SAV'.
MODIFY ITAB INDEX CON_TAB-CURRENT_LINE.
MESSAGE I002(ZYF_DEL).
ENDCASE.
ENDMODULE. " TAB_UPDATE INPUT
FLOW LOGIC
PROCESS BEFORE OUTPUT.
MODULE STATUS_0100.
LOOP AT ITAB WITH CONTROL CON_TAB.
ENDLOOP.
PROCESS AFTER INPUT.
MODULE USER_COMMAND_0100.
MODULE EXT_COMM AT EXIT-COMMAND.
LOOP AT ITAB.
MODULE TAB_UPDATE.
ENDLOOP.
REgards,
Vasanth -
Table control from internal table giving problem.
HI ALL,
I am creating a table control using wizard from internal table in the program when i give work area it gives this error "The table work area G_TABC_WA does not exist or is not a structure"
I have declared internal table and work like this.
TYPES: BEGIN OF T_TABC,
OPTID LIKE ZHRPMT_TRNSAC-OPTID,
STGID LIKE ZHRPMT_TRNSAC-STGID,
TETID LIKE ZHRPMT_TRNSAC-TETID,
REQSR LIKE ZHRPMT_TRNSAC-REQSR,
MUNIT LIKE ZHRPMT_TRNSAC-MUNIT,
END OF T_TABC.
DATA: G_TABC_ITAB TYPE T_TABC OCCURS 0,
G_TABC_WA TYPE T_TABC. "work area
why it is giving this error and how to correct this.
thanks.Hay
Hello there is very small mistake
TYPES: BEGIN OF t_tabc,
optid TYPE zhrpmt_trnsac-optid,
stgid TYPE zhrpmt_trnsac-stgid,
tetid TYPE zhrpmt_trnsac-tetid,
reqsr TYPE zhrpmt_trnsac-reqsr,
munit TYPE zhrpmt_trnsac-munit,
END OF t_tabc.
DATA: g_tabc_itab TYPE TABLE OF t_tabc ,
g_tabc_wa LIKE t_tabc. "work area
**Please reward suitable points***
With Regards
Navin Khedikar -
Sample pgm for moving data from table control to internal table
Hi Experts,
I am newbi to ABAP. I don't have good material for Table control . Appreciate if you direct me to some good source of knowledge on Table control.
The problem at hand : I am trying to move info/data from table control (in screen painter/ input and output mode ) to ITAB but couldn't . Sample pgm if possible.
<b>Modify ITAB index TC-Current_Line .</b>
The above statement is not inserting new lines to ITAB . Help me!
Thanks for your timehi,
do like this...
<b>PROCESS AFTER INPUT.</b>
*&SPWIZARD: PAI FLOW LOGIC FOR TABLECONTROL 'TAB1'
LOOP AT itab_det.
CHAIN.
FIELD itab_det-comp_code.
FIELD itab_det-bill_no.
FIELD itab_det-bill_date.
FIELD itab_det-vend_cust_code.
FIELD itab_det-bill_amt.
MODULE <b>tab1_modify</b> ON CHAIN-REQUEST.
ENDCHAIN.
FIELD itab_det-mark
MODULE tab1_mark ON REQUEST.
ENDLOOP.
<b>MODULE tab1_modify INPUT.</b>
APPEND itab_det.
<b>ENDMODULE. "TAB1_MODIFY INPUT</b> -
Method to transfer data from Table control to Internal table
hi,
Hi,
I´m working with CL_GUI_ALV_GRID and use the following methods:
- CALL METHOD grid->set_table_for_first_display, to display my ALV;
- CALL METHOD grid->get_selected_rows, to select the rows.
But i have some fields that can suffer alterarions in the values...
How can i recoup this values from the screen? Is there any method to do this?
thnks.HI,
You neeed to handle the change event.
Example below...
Definition.
Code:
CLASS lcl_event_handler DEFINITION.
PUBLIC SECTION.
METHODS:
handle_data_changed
FOR EVENT data_changed
OF cl_gui_alv_grid
IMPORTING er_data_changed.
ENDCLASS. "lcl_event_handler DEFINITION
Implement
Code:
CLASS lcl_event_handler IMPLEMENTATION.
METHOD handle_data_changed.
CONSTANTS:
lc_wa(11) TYPE c VALUE '<LW_SDITM>-'.
DATA:
l_subrc TYPE sy-subrc,
l_variable TYPE string,
lw_good TYPE lvc_s_modi.
FIELD-SYMBOLS:
<lw_sditm> TYPE /powercor/sditm,
<lw> TYPE ANY. "Generic field symbol
LOOP AT er_data_changed->mt_good_cells INTO lw_good.
Update the internal table
READ TABLE t_item_sel ASSIGNING <lw_sditm> INDEX lw_good-row_id.
IF sy-subrc EQ 0.
CONCATENATE lc_wa lw_good-fieldname INTO l_variable.
ASSIGN (l_variable) TO <lw>.
IF sy-subrc EQ 0.
<lw> = lw_good-value.
ENDIF.
ENDIF.
ENDLOOP.
ENDMETHOD. "handle_data_changed
ENDCLASS. "lcl_event_handler IMPLEMENTATION
Set for your grid.
Code:
SET HANDLER g_handler->handle_data_changed FOR my_grid.
Cheers,
Chandra Sekhar. -
How to modify DataBase Table with an internal Table
Hi, Friends.
I am coping Data from a Database table to an internal table after modifying data in the internal table I want to modify the db table according to the modification in the internal table. can some one help me out in this way, i am doing this modification in Table Control in Screen programing.
My Code is as follow.
MODULE zfsl_stinf_tc_init OUTPUT.
IF tc_copy IS INITIAL.
SELECT * INTO CORRESPONDING FIELDS OF TABLE it_zfsl_stinf FROM zfsl_stinf.
tc_copy = 'X'.
REFRESH CONTROL 'TC_FOR_ZFSL_STINF' FROM SCREEN '0001'.
ENDIF.
ENDMODULE. " zfsl_stinf_init OUTPUT
*& Module zfsl_stinf_tc_move OUTPUT
text
MODULE zfsl_stinf_tc_move OUTPUT.
MOVE-CORRESPONDING wa_it_zfsl_stinf TO zfsl_stinf.
ENDMODULE. " zfsl_stinf_tc_move OUTPUT
*& Module STATUS_0001 OUTPUT
text
MODULE status_0001 OUTPUT.
SET PF-STATUS 'ZFSL_SCREEN_1ONLY'.
SET TITLEBAR 'xxx'.
ENDMODULE. " STATUS_0001 OUTPUT
*& Module zfsl_stinf_tc_modify INPUT
text
MODULE zfsl_stinf_tc_modify INPUT.
MOVE-CORRESPONDING zfsl_stinf TO wa_it_zfsl_stinf.
MODIFY it_zfsl_stinf FROM wa_it_zfsl_stinf INDEX tc_for_zfsl_stinf-current_line.
_*"" here i have the modified internal table " it_zfsl_stinf "*_
ENDMODULE. " zfsl_stinf_tc_modify INPUT
Kind regards,
FaisalHi
Here you are modifying your dbtable in module pool programming
so better to use work area to modify the database table
example:
data: itab type table of zfsl_stinf .
data: wa_itab type itab.
select single * from zfsl_stinf INTO itab WHERE <condition>
(pass your values to wa_itab.)
modify zfsl_stinf from values of wa_itab.
Regards
Srinivasu -
Copy selected values from a table control into another table control
hi there,
as seen in the subject i need to copy selected values from a table control into another table control in the same screen. as i dont know much about table controls i made 2 table controls with the wizard and started to change the code... right now im totally messed up. nothing works anymore and i don't know where to start over.
i looked up the forums and google, but there is nothing to help me with this problem (or i suck in searching the internet for solutions)
i have 2 buttons. one to push the selected data from the top table control into the bottom tc and the other button is to push selected data from the bottom tc into the top tc. does somebody has a sample code to do this?you're funny
i still don't get it... can't believe, there is no tutorial or sample code around how to copy multiple selected rows from a tc.
here's my code, maybe you can tell me exactly were i have to change it:
tc1 = upper table control
tc2 = lower table control
SCREEN 0100:
PROCESS BEFORE OUTPUT.
MODULE status_0100.
MODULE get_nfo. --> gets data from the dictionary table
MODULE tc1_change_tc_attr.
LOOP AT it_roles_tc1
INTO wa_roles_tc1
WITH CONTROL tc1
CURSOR tc1-current_line.
ENDLOOP.
MODULE tc2_change_tc_attr.
LOOP AT it_roles_tc2
INTO wa_roles_tc2l
WITH CONTROL tc2
CURSOR tc2-current_line.
ENDLOOP.
PROCESS AFTER INPUT.
LOOP AT it_roles_tc1.
CHAIN.
FIELD wa_roles_tc1-agr_name.
FIELD wa_roles_tc1-text.
ENDCHAIN.
FIELD wa_roles_tc1-mark
MODULE tc1_mark ON REQUEST.
ENDLOOP.
LOOP AT it_roles_tc2.
CHAIN.
FIELD wa_roles_tc2-agr_name.
FIELD wa_roles_tc2-text.
ENDCHAIN.
FIELD wa_roles_tc2-mark
MODULE tc2_mark ON REQUEST.
ENDLOOP.
MODULE ok_code.
MODULE user_command_0100.
INCLUDE PAI:
MODULE tc1_mark INPUT.
IF tc1-line_sel_mode = 2
AND wa_roles_tc1-mark = 'X'.
LOOP AT it_roles_tc1 INTO g_tc1_wa2
WHERE mark = 'X'. -
> big problem here is, that no entry has an 'X' there
g_tc1_wa2-mark = ''.
MODIFY it_roles_tc1
FROM g_tc1_wa2
TRANSPORTING mark.
ENDLOOP.
ENDIF.
MODIFY it_roles_tc1
FROM wa_roles_tc1
INDEX tc1-current_line
TRANSPORTING mark.
ENDMODULE. "TC1_MARK INPUT
MODULE tc2_mark INPUT.
IF tc2-line_sel_mode = 2
AND wa_roles_tc2-mark = 'X'.
LOOP AT it_roles_tc2 INTO g_tc2_wa2
WHERE mark = 'X'. -
> same here, it doesn't gets any data
g_tc2_wa2-mark = ''.
MODIFY it_roles_tc2
FROM g_tc2_wa2
TRANSPORTING mark.
ENDLOOP.
ENDIF.
MODIFY it_roles_tc2
FROM wa_roles_tc2
INDEX tc2-current_line
TRANSPORTING mark.
ENDMODULE.
thx for anybody who can help with this! -
Fetch the values from internal table inside an internal table (urgent!!)
data : BEGIN OF PITB2_ZLINFO occurs 0,
BEGDA LIKE SY-DATUM,
ENDDA LIKE SY-DATUM,
PABRJ(4) TYPE N, "Payroll Year
PABRP(2) TYPE N, "Pay. Period
ZL LIKE PC2BF OCCURS 0,
END OF PITB2_ZLINFO.
I have a internal table like this,
How to Fetch the values from internal table inside an internal table.
Kindly Help me on this..
Regards,
Ram.Hi,
Try this....
Loop at PITB2_ZLINF0.
Loop at PITB2_ZLINF0-ZL.
endloop.
Endloop.
Thanks...
Preetham S -
Data retrieve from one table control to another table control
Hi all,
I had an requirement like to create Two table controls.
for first Table control i had an sel field defined as 'MARK'.
when i check the row in the first table control think it is header data for sales order .
all the item details have to retrieve in the second table control.
This is my requirement, i am not able to trigger when selecting the row in table control.
will anybody had an experience like this.
Regards,
MadhaviHi Madhavi,
If we need the case to display header and item as mentioned in 2 table controls....
we can display in table control 2/item only (the line items of the one selected in the table control 1 or the header )...so ,at a time we need to display line items for only 1 header ....
so ...first disable the selections/multiple selections to disable the row selector
We have already declared a field type C to capture the value for the field selector...so we can convert this field to a radio button and then assign a function code to the radio button at screen level
Whenever you click on the radio button ..immediately the function code is triggered..then in PAI ..we can check and find the header record with 'X' and populate the data for the table control 2
Hope it helps
Regards
Byju -
How to pass data from dynamic internal table to standard internal table
hi experts,
below is the piece of code which i have used in my requirement but the data is not moved.
LOOP AT <tab> ASSIGNING <tab1>.
MOVE-CORRESPONDING <tab1> TO wa.
append wa TO gt_outtab.
ENDLOOP.
here
<tab> - dynamic internal table.
<tab1>-dynamic internal table work area.
gt_outtab - standard internal table.
wa- standard internal table work area.
i am not getting what additional thing i have to write.
pls help me in this regard.
thankx in advance.
soham.p.Hello soham p ,
I am also using the same logic but in my program it is working fine so you declare the fieldsymols like this and try and also check the dynamic internal contain the data or not.
FIELD-SYMBOLS : <y_i_table> TYPE STANDARD TABLE,
<y_wa_table> TYPE ANY.
LOOP AT <y_i_table> ASSIGNING <y_wa_table>.
MOVE-CORRESPONDING <y_wa_table> TO y_wa_vfscaid.
APPEND y_wa_vfscaid TO y_i_vfscaid.
CLEAR y_wa_vfscaid.
ENDLOOP. -
How to move data from 2 internal table to 1 internal table
Can any body send me code that how to move data from 2 internal table into one internal table.
Moderator message : Read ABAP documentation. Thread locked.
Edited by: Vinod Kumar on Jun 13, 2011 11:45 AMHi Mohdarif92;
I don't know your full needs. But general method should be as below code.
Please check exam below code.
Best regards.
data : begin of gt_result.
... like mkpf-...
... like mkpf-...
... like mseg-...
... like mseg-...
end of gt_result
select *
into table gt_mkpf
from mkpf where ...
select *
into table mseg
from mseg where ...
loop at gt_mkpf.
loop at gt_mseg where ... = mkpf-...
move-corresponding gt_mkpf to gt_result.
move-corresponding gt_mseg to gt_result.
append gt_result
endloop.
endloop. -
How to do a SELECT from different tables into an internal table?
How to do a SELECT from different tables into an internal table?
I want to select data from MARA, MARC and ZPERSON and populate my ITAB_FINAL
REPORT zinternal_table.
TABLES:
mara,
marc,
zperson.
TYPES:
BEGIN OF str_table1,
v_name LIKE zperson-zname,
v_matnr LIKE marc-matnr,
v_emarc LIKE marc-emarc,
v_werks_d LIKE marc-werks_d,
v_dstat LIKE marc-dstat,
END OF str_table,
i_table1 TYPE STANDARD TABLE OF str_table1.
DATA:
BEGIN OF str_table2,
v_mandt LIKE mara-mandt,
v_ernam LIKE mara-ernam,
v_laeda LIKE mara-laeda,
END OF str_table2,
itab_final LIKE STANDARD TABLE OF str_table2.first find the link between mara , marc and zperson , if u have link to 3 tables then u can jus write a join and populate the table u want ( thats final table with all the fields).
u defenitely have alink between mara and marc so join them and retrieve all data into one internal table.
then for all the entries in that internal table retrieve data from zperson into another internal table.
then loop at one internal table
read another internal table where key equals in both the tables.
finally assign fileds if sy-subrc = 0.
gs_finaltable-matnr = gs_table-matnr
etc...
and finally append gs_finaltable to gt_finaltable.
there u go ur final table has all the data u want.
regards
Edited by: BrightSide on Apr 2, 2009 3:49 PM -
Populate Final internal table from Dynamic internal table
Hello,
I have ti display data in ALV grid whose structure is fixed. I am dynamically selecting data iin an internal table.
Now from this dynamic internal table, i need to populate my final internal table whose structurte is fixed.
Please help.
Rgds,
HimanshuHello Himanshu,
When you say dynamic internal table there are two things one is the actual structure and other one is field table that holds information for all the fields used to create dynamic internal table.
No if you want to move data from dynamic table to fixed internal table then you can try as follows:
1.
field-symbols <field_name> TYPE C.
field-symbols <field_value> TYPE C.
Now you either use
LOOP AT fields_itab.
ASSIGN fields_itab-fieldname to <field_name>.
ASSIGN COMPONENT <field_name> OF STRUCTURE <structure_name> TO <field_value>
Now you move value from <field_value> to required field in fixed internal table.
i.e.
itab-fieldname = <field_value>.
Other way to do this:
If you fields order is constant then you can also use index in assign component statement.
do <no_of_fields> times.
ASSIGN COMPONENT sy-index OF STRUCTURE <structure_name> TO <field_value>.
rest is same as first method.
Hope this help!
I have given sudo code and you need to work on it little.
Thanks,
Augustin. -
How to append Header of an internal table to another internal table
Hello Experts,
Can we append the header of an internal table to another internal table? Do we have have to use work area for this?
Thanks.Wrong - it will append only the header. If you want to append the whole table, you would:
APPEND LINES OF itab1 TO itab2.
If you need more help, please press F1 on APPEND.
Rob
Edited by: Rob Burbank on Mar 3, 2008 4:06 PM -
Hi, Bapi or function module to update RBCO table from an internal table.
I have a requirement to update RBCO table from an internal table. is there any Bapi or function module or any other method other than update, modify statements.
Moderator message: Welcome to SCN!
Moderator message: please do more research before asking, show what you have done yourself when asking.
[Rules of engagement|http://wiki.sdn.sap.com/wiki/display/HOME/RulesofEngagement]
[Asking Good Questions in the Forums to get Good Answers|/people/rob.burbank/blog/2010/05/12/asking-good-questions-in-the-forums-to-get-good-answers]
Edited by: Thomas Zloch on Jul 12, 2011 12:28 PMI don't know if any FM exists for your requirement. But you may like to copy it into a custom table and modify it according to your enterprise needs.
Maybe you are looking for
-
Is there some way to make the iPad Camera Connection Kit work on the iPod touch?
I bought the Camera Connection Kit because a tech said it would work with my iPod Touch, but I get the message that the iPod does not support that connection. I would really like itt to work because I have used an older iPod to back up photos while o
-
I've forgotten my pass-code to my Ipod touch 4g and when I try to restore and update it on my itunes library the internet connection cuts out so this is not an option. Is there another way to fix this problem? Cheers
-
Hi... I've created a matrix report through the XML publisher. The layout is working fine but I don't know how to get column wise & row-wise totals. Are there any XML tags to get these totals in a matrix environment.?? There's another issue.... the ou
-
how do i boot my minimac to osx, im on windows right now, and when i reboot it just goes back to windows, someone help, thanks
-
== Issue == I have a problem with my bookmarks, cookies, history or settings == Description == New install of new Firefox on different hard drive from old install, after copy/pasting profiles folder, bookmarks are still unavailable. '''Troubleshootin