Table control in PAI of a screen.
Hi all..
Here i am having a scenario where in i have to display header details and item details(in table control) in a screen. At first, screen should not display any contents but after choosing a value for key field of the header table from provided search help, it should populate my table in the screen depending upon the chosen key field value. How to handle this in PAI of the screen.
please provide me some sample code.
regards,
Jalendhar
Hi Jalendar,
When you a value in the header table and pressing any button or enter it immediately takes to the PAI. In the PAL module populate the internal table.
the cursor then goes to the PBO to show the screen. So here in PBO write like this
LOOP AT <internal table> CURSOR <scroll-var>
[WITH CONTROL <table-control> ]
[FROM <line1> ] [TO <line2> ].
...<actions>...
ENDLOOP.
The above syntax is to display the data on the screen for table control.
Br,
Laxmi.
Similar Messages
-
Problem with looping table control in PAI
Hi,
I have a table control which displays 10 records at a time. In PAI it is looping only these 10 records even though itab has more than 10. I need to do some validations on all the records. How to overcome this prob.
Thanks in advance.c if u want to do validationsdo it on the internal table before passing it to the table control..
Secondly in a table control if its size on the screen is for displaying 4 records only den it will display on 4 while running even though ur table has 10 records...
So in SE41 drag and increase the size for table control...den it will display all records..
And if u dont want dis..den write the code for vertical scroll in table control..
Get back to me in case u want 2 do dat..
Hope dis helps..
Reward if it does -
How to save three table control in subscreen from main screen
hi All,
I have three table control in subscreen and i want to save the content of all the table control from the save button of Main screen how can i do it.
Thanks
Narendra Vikram Vishwakarmahi
in main screen PAI
when 'SAVE'
write the code here to save it.
thanks -
Table Control on a report selection screen -not a dialog transaction screen
Hi
Does anyone know of a way to have table control functionality on a report selection-screen? The program needs to be able to run as a background job (ie cannot be a dialog transaction) and we need to be able to save variants with the selection-screen values.
Any help would be appreciated.
The key point is we want to allow the user to enter a dynamic number of rows of table data on the selection-screen, save a variant containing that data and execute the program with the variant as a background job.
Thanks
Nicole KnightHi Nicole,
The main problem is how to persist the data. If you are not able to create a couple of tables then you could always utilise TVARV instead. On a similar line to my original post you could have the button call a dialog transaction. In here you could do your normal GUI table control. When saving the data simply transpose each column into a separate select-option held on TVARV keyed by the 'variant name' + fieldname. Then retrieve and transpose this back when executing the report.
Other methods could be storing the data in cluster xy (see EXPORT TO DATABASE command).
This seems a bit overkill for what would be a couple of maintenance dialogs.
Cheers,
Pete
PS. The view cluster is just a way of hierarchically performing table maintenance across multiple related tables. It offers a good UI for this purpose (header and item config tables) and is utilised extensively in the IMG. -
Table control:screen painter(Module Pool)
hi !
Table name :ZDR_MOD.
Internal table:ITAB.
I am doing Custom table control in screen painter.I have done desgin in screen painter,I am not writing any doing in PAI abd PBO. while compiling it showing error like,
"The field "ITAB-MANDT" is not assigned to a loop."LOOP ... ENDLOOP" must appear in PBO and PAI""
Report coding:
EPORT ZDR_PGM_TMP.
tables:zdr_mod.
CONTROLS tc TYPE TABLEVIEW USING SCREEN 100.
data:itab TYPE STANDARD TABLE OF zdr_mod with HEADER LINE.
DATA : flg, "Flag to set the change mode
ln TYPE i. "No. of records
select * from zdr_mod into CORRESPONDING FIELDS OF TABLE ITAB.
call SCREEN 100.
INCLUDE ZDR_PGM_TMP_STATUS_0100O01.
INCLUDE ZDR_PGM_TMP_USER_COMMAND_01I01.
thank in advance
DharmaHi,
When a table control is added onto the Screen Painter, it is mandatory that the fields that you have added on from the dictionary be present in your program and is used within a loop...endloop.
PROCESS BEFORE OUTPUT.
MODULE STATUS_0100.
LOOP AT T_ITAB INTO WA_ITAB WITH CONTROL TABCONTROL1.
MODULE PURCHASEITEM_DETAILS.
ENDLOOP.
PROCESS AFTER INPUT.
LOOP AT T_ITAB.
MODULE USER_COMMAND_0100.
ENDLOOP.
The internal table that you declare will have the same structure as that your table control. So it always loops with respect to the table control. -
BDC: Table Control Screen Resolution
Hi Abapers,
1.In BDC while handling table control , how to handle screen resolution , that means in some systems i can see 5 item entries , in some systems i can see 10 item entries how to handle this , can u send the Code relating this.
With Regards
Bhaskar Rao.Mhi
The numeber of lines of table control for BDC depend on screen resolution, but It can't be managed by program.
So the better solution is to create a bdc doesn't depend on resolution.
It can do that using always the first two lines of table control.
When you start the simulation, first record has to be placed in first line of tc and the second in second one.
Before placing the third record, it needs to place the second record to the top and so the third record can be placed in the second line.
Before placing the next record, it needs to place the third record to the top and so the fourth record can be placed in the second line and so.
In this way your BDC'll use alwways the first two lines of tc and your program won't depend on resolution.
The problem is the transaction you need to simulate by BDC has to have a scroll functionality to allow to place the last record was elaborated to the top of tc, so the second line of tc can always be used to place the new record.
If there isn't this functionality, it's better to use a BAPI instead of BDC.
check these two
BDC - standard screen resolution required?
https://forums.sdn.sap.com/click.jspa?searchID=739193&messageID=823953
reward points if found helpful -
Table control on Tabbed selection-screen
Hi All,
My Requirement is: I have a tabbed selection-screen with 3 tabs.
On one of the tabs I have to include a Table control.
Currently I'm displaying Table control as Pop-up . But I want that on the screen itself.
Please suggest me how to do this.Once i have done this. but only table control was there on the screen.
design a screen and place one table control.
y will declare one default subscreen in the selection screen tab declaration,
and
At selection-screen.
change the value of the deflaut screen to ur designed screen.
below is one example
controls: tab type tableview using screen 201.
SELECTION-SCREEN BEGIN OF TABBED BLOCK object FOR 50 LINES.
SELECTION-SCREEN TAB (60) tab_cls USER-COMMAND ut_cls
DEFAULT SCREEN 101.
SELECTION-SCREEN TAB (60) tab_rcp USER-COMMAND ut_rcp
DEFAULT SCREEN 200.
SELECTION-SCREEN END OF BLOCK object.
SELECTION-SCREEN BEGIN OF SCREEN 0101 AS SUBSCREEN NESTING LEVEL 2.
parameters: P_lifnr type lfa1-lifnr.
SELECTION-SCREEN END OF SCREEN 0101.
SELECTION-SCREEN BEGIN OF SCREEN 0200 AS SUBSCREEN NESTING LEVEL 2.
parameters: p_ebele type ekko-ebeln.
SELECTION-SCREEN END OF SCREEN 0200.
AT SELECTION-SCREEN.
CASE sy-dynnr.
WHEN 1000.
CASE sy-ucomm.
WHEN 'PUSH1'.
object-dynnr = 100.
WHEN 'UT_RCP'.
object-dynnr = 201.
WHEN OTHERS.
ENDCASE.
here the defualt screen is 200 but for table control purpose i changed it to 201 which has the table control in it. -
How can I directly update a SAP screen table control with values?
I have a need to update a table control on a standard SAP screen with values. Here's the scenario: The user will come into a standard SAP transaction (IQS2-change notification) and click on an action button which calls a function module. That function module will determine what needs to be added to the SAP screen table control (add additional task rows). When the function module returns with the row data to be added to table control, I would like to set those values as if the user input directly. The table control is located on it's separate tab (TASKS) in the transaction. I cannot find any user exists or BADI's for this transaction to allow me to affect the TASKS tab table control for this GUI. I'm trying to prevent from having to make a custom modification. If anyone has any ideas, please let me know. Thanks.
Hi,
Check these enhancements:
IWOC0002 PM/SM notification: Check whether status change is allowed
QQMA0001 QM/PM/SM: User Subscreen for Notification Header
QQMA0008 QM/PM/SM: User Subscreen for Additional Data on Notif. Ite
QQMA0011 QM/PM/SM: User Subscreen for Additional Data on Task
QQMA0013 QM: Default Values when Creating a Task
QQMA0014 QM/PM/SM: Checks before saving a notification
QQMA0015 QM/PM/SM: User-Exit before Call-Up of F4 Help on Catalogs
QQMA0016 QM/PM/SM: "User data" Function "Goto" --> "Task" Menu
IWO10026 User check on setting status 'Do not perform'
IWO10027 User exit: Generate user-defined settlement rule
IWOC0001 Create PM/SM notification: Determine reference object
IWOC0002 PM/SM notification: Check whether status change is allowed
IWOC0003 PM/SM authorization check of ref. object and planner group
IWOC0004 Change single-level list editing PM/QM/SM ALV settings
Regards
Appana -
Module pool transfer of data from one table control to another
Hi all,
I have been assigned to module pool object wherein i have to display table control on screen and that table control contains only 10 rows on screen for display. Now my internal table it_out has 15 rows
Describe table it_out
line v_l. " v_l = 15.
There is a pushbutton below table control and when i select multiple rows and click on that pushbutton it will navigate me to the next screen containing another table control on which i need to display those selected records.
Now the problem is that when i select first record and move cursor down to select last record then i am seeing only last record on next screen table control. why is it happening? please provide me with solution. For rest of cases it is working fine for example if i select first record and second record then i am seeing both these selected records on next screen table control . Only the problem arises when i tried to select first and lets say last record when scrolling down on table control.
I think the problem is with scrolling but when i loop on next screen with moved records i am seeing that 2 records are their but it is transferring only one record to next screen not the last one.
Your response is highly appreciated.
Thanks
ParagHi Parag,
Screen 8002 (with table control) --> select records --> press a button --> move to screen 8003 --> display selected records in screen 8002.
First problem that if you select first record in table control and scroll to end to select the last record, the first record in deselected.
Next problem, that if you select say 3 records in table control you want the to be displayed in another table control, the use this code.
Also take another internal table and work area same as the initial internal table and work area used in screen 8002.
On screen 8002, take a button with function code 'PROCESS', on which user clicks the screen 8003 should display selected records.
Now, use this code, its working:-
Take the names of the input/output fields as work_area-field_name and select column in table control as work_area-flag.
Also take a flag field of size 1 datatype character as the last field in the internal table and work area while declaration.
You must have passed a code in PBO of the screen for reading internal table into the table control.
So it reads the internal table into the table control whenever you perform any action on use command.
All you need to do is to write a code to modify the internal table form the table control while performing any user action.
Remember to change the LINE SEL option in attributes of table control as MULTIPLE.
At Screen Logic:-
PROCESS BEFORE OUTPUT.
MODULE status_8002. "for pf-status
LOOP WITH CONTROL po_tab. "po_tab is name of table control
MODULE pass_data. "to pass data into table control from internal table
ENDLOOP.
PROCESS AFTER INPUT.
MODULE user_command_8002. "to handle other user commands (back and exit)
LOOP WITH CONTROL po_tab. "po_tab is name of table control
MODULE modify_data. "to modify data from table control into internal table
MODULE process_data. "to display selected records on another screen
ENDLOOP.
In PBO,
*& Module STATUS_8002 OUTPUT
MODULE status_8002 OUTPUT.
SET pf-status 'ZAB_PFSTA'. " pf-status
DATA : line_count TYPE i.
DESCIRBE TABLE it_ekpo
LINES line_count.
po_tab-lines = line_count + 10.
" to make table control scrollable
ENDMODULE. " STATUS_8002 OUTPUT
*& Module PASS_DATA OUTPUT
MODULE pass_data OUTPUT.
READ TABLE it_ekpo into wa_ekpo INDEX po_tab-current_line.
ENDMODULE. " PASS_DATA OUTPUT
"it_ekpo is internal table and wa_ekpo is the work area
In PAI,
*& Module MODIFY_DATA INPUT
MODULE MODIFY_DATA INPUT.
MODIFY IT_EKPO INDEX PO_TAB-CURRENT_LINE FROM WA_EKPO.
"modify records from table control into the internal table
ENDMODULE. " MODIFY_DATA INPUT
*& Module PROCESS_DATA INPUT
MODULE PROCESS_DATA INPUT.
CASE sy-ucomm.
WHEN 'PROCESS'.
IF wa_ekpo-flag = 'X'.
wa_ekpo1 = wa_ekpo.
APPEND wa_ekpo1 TO it_ekpo1. "if record selected move to another internal table
ENDIF.
ENDCASE.
"modify records from table control into the internal table
ENDMODULE. " PROCESS_DATA INPUT
Now if you select some records in this table control the values will retain in internal table.
Screen 8003 with selected records to be displayed in another table control.
At Screen Logic:-
PROCESS BEFORE OUTPUT.
MODULE status_8003. "for pf-status
LOOP WITH CONTROL po_tb. "po_tb is name of table control
MODULE pass_data1. "to pass data into table control from internal table
ENDLOOP.
PROCESS AFTER INPUT.
MODULE user_command_8003. "to handle other user commands (back and exit)
LOOP WITH CONTROL po_tb. "po_tb is name of table control
MODULE modify_data1. "to modify data from table control into internal table
ENDLOOP.
In PBO,
*& Module STATUS_8003 OUTPUT
MODULE status_8003 OUTPUT.
SET pf-status 'ZAB_PFSTA'. " pf-status
DATA : line_count1 TYPE i.
DESCIRBE TABLE it_ekpo1
LINES line_count1.
po_tb-lines = line_count1 + 10.
" to make table control scrollable
ENDMODULE. " STATUS_8003 OUTPUT
*& Module PASS_DATA1 OUTPUT
MODULE pass_data1 OUTPUT.
READ TABLE it_ekpo1 into wa_ekpo1 INDEX po_tb-current_line.
ENDMODULE. " PASS_DATA1 OUTPUT
"it_ekpo is internal table and wa_ekpo is the work area
In PAI,
*& Module MODIFY_DATA1 INPUT
MODULE MODIFY_DATA1 INPUT.
MODIFY IT_EKPO1 INDEX PO_TB-CURRENT_LINE FROM WA_EKPO1.
"modify records from table control into the internal table
ENDMODULE. " MODIFY_DATA1 INPUT
Hope this solves your problem.
Thanks & Regards,
Tarun Gambhir -
Closing INDIVIDUAL lines for input in a table control
Right, hopefully I can explain my issue clearly enough to get an answer that will help me resolve this pain in the *** issue.
My table control has a delete function but the client doesn't want the line removed from the control table they simply want the line in question to be greyed out (closed for input). Has anyone achieved this in the past? I know it's possible to grey out columns but I can't see any way of doing individual lines.
For all answers that help me I will shout a beer provided you are in either Sydney or Adelaide.Hi,
>
Neil Gardiner wrote:
> Right, hopefully I can explain my issue clearly enough to get an answer that will help me resolve this pain in the *** issue.
>
> My table control has a delete function but the client doesn't want the line removed from the control table they simply want the line in question to be greyed out (closed for input). Has anyone achieved this in the past? I know it's possible to grey out columns but I can't see any way of doing individual lines.
>
> For all answers that help me I will shout a beer provided you are in either Sydney or Adelaide.
Refer:-
it_zekpo is my internal table w/o header line,
wa_zekpo is work area.
Name of input/output fields on screen are:-
wa_zekpo-field1,
wa_zekpo-field2, and so on...
Add a field as flag(1) type c in the internal table and work area
And keep a name of SELCOL in the attributes of table control as wa_zekpo-flag
Take the group1 for all textboxes as 'ABC' in the table control
Try using code:-
At screen logic:
PROCESS BEFORE OUTPUT.
* MODULE status_8003.
LOOP WITH CONTROL po_tb.
MODULE read_data.
ENDLOOP.
PROCESS AFTER INPUT.
* MODULE user_command_8003.
LOOP WITH CONTROL po_tb.
MODULE modify_data.
ENDLOOP.
In PBO
*& Module READ_DATA OUTPUT
MODULE read_data OUTPUT.
READ TABLE it_zekpo INTO wa_zekpo INDEX po_tb-current_line. "po_tab is table control name
data : line_count type i.
describe it_zekpo
lines line_count.
po_tb-lines = line_count + 10.
"to increase the number of lines in table control dynamically
if sy-ucomm = 'DELETE'. "<--when user click delete button
if wa-zekpo-flag = 'X'. "<--if record selected
if screen-group1 = 'ABC'.
loop at screen.
screen-input = 0. "disable
screen-active = 0.
endloop.
modify screen.
endif.
else. "<--if record not selected
if screen-group1 = 'ABC'.
loop at screen.
screen-input = 1. "enable
screen-active = 1.
endloop.
modify screen.
endif.
endif.
endif.
ENDMODULE. " READ_DATA OUTPUT
In PAI
*& Module MODIFY_DATA INPUT
MODULE MODIFY_DATA INPUT.
MODIFY IT_ZEKPO FROM WA_ZEKPO INDEX po_tb-currentline.
"this will insert a new line
"and will modify the contents of existing line
ENDMODULE. " MODIFY_DATA INPUT
Hope this helps you.
Let mw know if you have any doubts.
Regards,
Tarun -
How to delete data in table control
Hi,
I am doing module pool programming. After the user enters the data in table control after saving the data. if the user wants to remove the line item the line item shd be removed from the screen and data base.
Please Give me vaulable Suggestions
RegardsHi,
Screen 8002 (with table control) --> select records --> press delete button --> delete selected records
Now you wan to delete those records selected by the user at runtime when DELETE button is clicked.
Take another internal table and work area same as the initial internal table and work area used in screen 8002 which is to be used to delete the selected data.
Take the names of the input/output fields as work_area-field_name and select column in table control as work_area-flag.
Also take a flag field of size 1 datatype character as the last field in the internal table and work area while declaration.
You must have passed a code in PBO of the screen for reading internal table into the table control.
So it reads the internal table into the table control whenever you perform any action on use command.
All you need to do is to write a code to modify the internal table form the table control while performing any user action.
Remember to change the LINE SEL option in attributes of table control as MULTIPLE.
At screen logic,
PROCESS BEFORE OUTPUT.
MODULE status_8002. "for pf-status
LOOP WITH CONTROL po_tab. "po_tab is table control
MODULE pass_data. "to pass data into table control from internal table
ENDLOOP.
PROCESS AFTER INPUT.
MODULE user_command_8002. "for user command(back and exit)
LOOP WITH CONTROL po_tab.
MODULE modify_data. "to modify data from table control into table control
ENDLOOP.
MODULE delete. "to delete the selected records
In PBO,
*& Module STATUS_8002 OUTPUT
MODULE status_8002 OUTPUT.
SET pf-status 'ZAB_PFSTA'. " pf-status
DATA : line_count TYPE i.
DESCIRBE TABLE it_ekpo
LINES line_count.
po_tab-lines = line_count + 10.
" to make table control scrollable
ENDMODULE. " STATUS_8002 OUTPUT
*& Module PASS_DATA OUTPUT
MODULE pass_data OUTPUT.
READ TABLE it_ekpo into wa_ekpo INDEX po_tab-current_line.
ENDMODULE. " PASS_DATA OUTPUT
"it_ekpo is internal table and wa_ekpo is the work area
In PAI,
*& Module MODIFY_DATA INPUT
MODULE MODIFY_DATA INPUT.
MODIFY IT_EKPO INDEX PO_TAB-CURRENT_LINE FROM WA_EKPO.
"modify records from table control into the internal table
ENDMODULE. " MODIFY_DATA INPUT
*& Module DELETE INPUT
MODULE DELETE INPUT.
OK_CODE = SY-UCOMM.
CASE OK_CODE.
WHEN 'DELETE'. "when delete button is clicked
SORT IT_EKPO BY FLAG DESCENDING. "sort by flag(selection column value)
CLEAR WA_EKPO1.
CLEAR WA_EKPO.
REFRESH IT_EKPO1.
LOOP AT IT_EKPO INTO WA_EKPO WHERE FLAG = 'X'.
DATA : J TYPE I.
CLEAR J.
J = SY-TABIX. "assign index value if a record is selected
MOVE-CORRESPONDING WA_EKPO TO WA_EKPO1. "append selected records to another
"work area and append to another internal table to delete
APPEND WA_EKPO1 TO IT_EKPO1.
DELETE IT_EKPO. "delete the selected records from initial internal table
" to reflect the changes on the table control
ENDLOOP.
IF J = 0.
MESSAGE I006. "if no record selected
ELSE. "if some records are selected
DELETE ZEKPO FROM TABLE IT_EKPO1. "delete from database table
COMMIT WORK.
IF SY-SUBRC = 0.
MESSAGE S007. "success message (records deleted)
ENDIF.
ENDIF.
ENDCASE.
ENDMODULE. " DELETE INPUT
Now at PAI, you have delete records and these changes are reflected back to the internal table.
Now when PBO is executed it will again read the initial internal table and will not show the deleted records.
Hope this solves your problem.
Thanks & Regards,
Tarun Gambhir -
I have problem in Table Control?
Hi,
With the help of Table Control I put data on screens but my question is " How can I read one or more rows from that list " ??
Plz help me out.
Thanks and Regards,
GaganHi Gagan
Depen on when you want to read data from list.
You should read data in a module of PAI, but if you want to read only line which are displayed, you should put this module between LOOP/ENDLOOP of tablecontrol, if you want to read whole list you should put this module out of LOOP/ENDLOOP....
and also depen on how you've built the fields of table control.
IF you have called them as the fields of your internal table:
PROCESS PBO.
LOOP AT ITAB WITH CONTROL T_CTRL CURSOR T_CTRL-CURRENT_LINE.
ENDLOOP.
PROCESS PAI.
LOOP AT ITAB.
MODIFY_ITAB.
ENDLOOP.
MODULE MODIFY_ITAB.
As the output fields of table control are called the
internal table, its headerline is automatically filled:
MODIFY ITAB INDEX T_CTRL-CURRENT_LINE.
Remenber: here you can see only records which are
displayed
ENDMODULE.
IF the names are different:
PROCESS PBO.
LOOP AT ITAB WITH CONTROL T_CTRL
CURSOR T_CTRL-CURRENT_LINE.
MODULE DISPLAY_RECORD.
ENDLOOP.
PROCESS PAI.
LOOP AT ITAB.
MODULE MODIFY_ITAB.
ENDLOOP.
MODULE DISPLAY_RECORD.
FIELD_TAB_CTRL1 = ITAB-FIELD1.
FIELD_TAB_CTRL2 = ITAB-FIELD2.
FIELD_TAB_CTRL3 = ITAB-FIELD3.
ENDMODULE.
MODULE MODIFY_ITAB.
ITAB-FIELD1 = FIELD_TAB_CTRL1.
ITAB-FIELD2 = FIELD_TAB_CTRL2.
ITAB-FIELD3 = FIELD_TAB_CTRL3.
MODIFY ITAB INDEX T_CTRL-CURRENT_LINE.
Remenber: here you can see only records which are
displayed
ENDMODULE.
Now if you want to read whole list:
PROCESS PAI.
LOOP AT ITAB.
MODULE MODIFY_ITAB.
ENDLOOP.
MODULE LOOP_TABLE.
MODULE LOOP_TABLE.
LOOP AT ITAB.
ENDLOOP.
ENDMODULE.
But you can use USER_COMMAND module instead of LOOP_TABLE module... depend on how you prefer to do that
Max
Message was edited by: max bianchi
Message was edited by: max bianchi -
How to transfer from internal table to table control ?
How to transfer data from internal table to table control wihtout using select statement?
HI
GOOD
The commands in the flow logic are:
LOOP AT itab [INTO wa] WITH CONTROL ctrl.
ENDLOOP.
This statement assigns an internal table itab of the ABAP program to the table control and triggers a parallel loop run over the table control rows displayed on the screen and over the internal table itab. The additions INTO and WITH CONTROL are possible at the time of PBO, but not at PAI. The assignment of the loop to the table control takes place at PAI through the internal table.
Using the INTO addition, the fields of the internal table itab are written to the work area wa at the time of PBO and the content of wa is transported, line by line, to the identically-named fields of the table control on the screen. Without the INTO addition, you must use an internal table with a header line. Then the content of the header line is transported line by line to the identically-named fields of the table control on the screen at the time of PBO. No module is required for filling the table control rows.
Conversely, at the time of PAI, the internal table rows are not automatically filled with the contents of the table control rows. Instead, you must call a dialog module within the loop that modifies the table.
http://help.sap.com/saphelp_nw2004s/helpdata/en/9f/dbac5135c111d1829f0000e829fbfe/content.htm
http://help.sap.com/saphelp_nw2004s/helpdata/en/fa/0970a4543b11d1898e0000e8322d00/content.htm
THANKS
MRUTYUN^ -
Table control enable and disable rows
Hi,
I want to keep the table control in disabled mode initially.
When user press the add button,the row next to where data is already present should alone be enabled for data entry.
In PBO event i was able to disable the entire table control.but when i could not find a way to identify the first blank line to enable it for data entry.
Please help.
Thanks
AmbilyHi Ambily,
follow the below steps
declare a data : w_flag type c. in the global
and next write the code the PBO
PROCESS BEFORE OUTPUT.
* Module screen GUI-Screen&Status and Screen Logic
MODULE status_<Screennum>.
* Table control for OUTPUT
LOOP AT <table-control> .
MODULE Modify_screen.
ENDLOOP.
Module modify_screen output.
* Table control reading values from input screen & displaying on screen
READ TABLE <table> INDEX <tablecontrol>-current_line.
If w_flag is initial.
LOOP AT SCREEN.
IF screen-name = <Tablecontrol Line>.
screen-input = 0.
ENDIF.
MODIFY SCREEN.
ENDLOOP.
ENDIF.
wndif.
Endmodule.
"next in PAI mark the w_flag to 'X'
Prabhudas -
About the data of table control in tab strip control
hi experts:
I use screen 0001 include one tab strip control,and its include two subscreens,one of it is table control(subscreen is 0003).
I input data in the table control,when I click the button of tab strip control to change to another subscreen 0002.I found that the data I input into table control have not append to internal table.how can I solve this problem?
appreciate your reply.thanks a lot.Hi,
in the Main Screen
In PAI
call subscreen sub. ---> here it calls the subscreen where the tablecontrol is placed
then call module user_command
In the subscreen where you have your table control
in PAI
Loop at itab.
module modify_tab.
endloop.
module modify_tab,
descirbe table itab lines tc-lilnes.
if tc-lines <= tc-current_line.
modify itab index tc-current_lilne.
else.
append itab.
endmodule.
next you call the module user_command on the main screen
module user_command
case sy-ucomm
WHEN 'TAB1'
TS-ACTIVE_TAB = 'TAB1'
when tab2.
ts-active_tab = 'TAB2'.
endmodule
further you can take the help of CONTROL EXAMPLES in DWDM tcode
Regards
Ramchander Rao.K
Maybe you are looking for
-
Error while passing data to custom screen. Entry MUM doesn't exist in T001P
Dear All, I have created a custom screen for PB10. I am getting below error while executing the screen. Entry MUM doesn't exist in T001P (Check Entry) . The detail error is Entry MUM does not exist in T001P (check entry) Message no. 00058 Diagnosis
-
Hello I want to create a textfield that only allows user to key in numerics and with fixed character length (means only a fixed length of characters can be entered). I have viewed this post: http://forum.java.sun.com/thread.jspa?threadID=536977&messa
-
Content conversion sender multi levels
hi, i need to map a flat file to this structure: header : 1..1 item: 0..unbounded item_header : 1..1 item_data: 0..unbounded field1 : 1..1 field2: 1..1 field3 : 1..1 footer: 1..1 how can i achive that with content conversion and what should i write
-
I created a calendar in the wrong calendar year. I need to change it from 2012 to 2013. Help!!!
-
Hi All, I have a requirement where I have to populate 11 prior months based on user entered Period and Year. I've created declared 24 customer exit variables ( 12 for month and 12 for year ), upon debugging the user-exit I found that the user-exi