Table Control Prob.
Hi Experts,
Presently I am working with table control,I have got two date fields, I need to do the validation for the date fields,that can be done by me
But if the user enters the wrong date while entering multiple entries, how can we get the line number of the record in which wrong entry is being done.
Do I need to write this In the Screen PAI with CHAIN and ENDCHAIN statements for this table fields.
or in the PAI screen if ok code equal to save.
Thanks In Advance,
Regards,
Irfan Hussain
You can do it in a module in CHAIN.. ENDCHAIN in PAI. If an error is thrown at one particular table control line, the control stops and waits for a valid input for the further processing.
Ex:
PAI
loop at itab.
chain.
field SFLIGHT-CARRID.
field SFLIGHT-CONNID.
field SFLIGHT-FLDATE.
field SFLIGHT-PRICE.
module TABCON1_modify on chain-request.
endchain.
endloop.
Module pool program:
module TABCON1_modify input.
do certain validations of the field values entered
message e001 with 'Please enter valid data'.
endmodule.
Message was edited by: Sravanthi
Similar Messages
-
Module Pool table controle row level prob
Hi Experts,
I am working in a module pool program where in table controle i want a perticular row should become in display mode if a specific field is NE SPACE. is it possible if possible than please sugest me how.
Thanks and Regards,
D Tarun KumarIn this case all the rows will be in display mode
Exactly My Requirement I am describing with example
Suppose in table control I have three Records and the first field is main field which is if initial than the row should in change mode otherwise is should be in display mode.
Field1 Field2 Field3 Field4 Field5
1abc2 1abc3 1abc4 1abc5 Record 1
2xyz1 2xyz2 2xyz3 2xyz4 2xyz5 Record 2
3pqr2 3pqr3 3pqr4 3pqr5 Record 3
So here the second rowu2019s first field is not initial so I need here in table control the second row should be in display mode and next first and second row should be in change mode.
Now You tell me is it possible or not if possible than please suggest me what I have to do
Thanks & regards,
D Tarun Kumar
Edited by: Devalla T Kumar on Oct 24, 2009 9:17 AM -
How to delete a row from table control
I have created a push button on the screen for delete.
its getting stored in ok_code.
'FLAG' is the name of the mark on the table control.
I am getting probs in this line.
I am not getting anything in mark_field.
ASSIGN COMPONENT p_mark_name OF STRUCTURE <wa> TO <mark_field>.
The code is:
MODULE tablctrl2_user_command INPUT.
PERFORM user_ok_tc USING 'TABLCTRL2'
'I_ZSKILLEMP'
'FLAG'
CHANGING ok_code.
ENDMODULE.
FORM user_ok_tc USING p_tc_name TYPE dynfnam
p_table_name
p_mark_name
CHANGING p_ok LIKE sy-ucomm.
-BEGIN OF LOCAL DATA----
DATA: l_ok TYPE sy-ucomm,
l_offset TYPE i.
-END OF LOCAL DATA----
Table control specific operations *
evaluate TC name and operations *
SEARCH p_ok FOR p_tc_name.
IF sy-subrc <> 0.
EXIT.
ENDIF.
l_offset = strlen( p_tc_name ) + 1.
l_ok = p_ok+l_offset.
execute general and TC specific operations *
CASE l_ok.
WHEN 'INSR'. "insert row
PERFORM fcode_insert_row USING p_tc_name
p_table_name.
CLEAR p_ok.
WHEN 'DELE'. "delete row
PERFORM fcode_delete_row USING p_tc_name
p_table_name
p_mark_name.
CLEAR p_ok.
FORM fcode_delete_row
USING p_tc_name TYPE dynfnam
p_table_name
p_mark_name .
-BEGIN OF LOCAL DATA----
DATA l_table_name LIKE feld-name.
FIELD-SYMBOLS <tc> TYPE cxtab_control.
FIELD-SYMBOLS <table> TYPE STANDARD TABLE.
FIELD-SYMBOLS <wa>.
FIELD-SYMBOLS <mark_field>.
-END OF LOCAL DATA----
ASSIGN (p_tc_name) TO <tc>.
get the table, which belongs to the tc *
CONCATENATE p_table_name '[]' INTO l_table_name. "table body
ASSIGN (l_table_name) TO <table>. "not headerline
delete marked lines *
DESCRIBE TABLE <table> LINES <tc>-lines.
LOOP AT <table> ASSIGNING <wa>.
access to the component 'FLAG' of the table header *
ASSIGN COMPONENT p_mark_name OF STRUCTURE <wa> TO <mark_field>.
IF <mark_field> = 'X'.
DELETE <table> INDEX syst-tabix.
IF sy-subrc = 0.
<tc>-lines = <tc>-lines - 1.
ENDIF.
ENDIF.
ENDLOOP.
ENDFORM.Hi...
i got the same prob...but got the solution too...
you have to take an internal table of same type of dbase table..and maintain a flag in it...which will be get filled automatically with 'X'.
here is the code..go throug it..
REPORT YH642_DIALOG_TABLECONTROL.
CALL SCREEN 999.
DATA:
W_INDEX TYPE I.
DATA:
W_UCOMM LIKE SY-UCOMM.
***&SPWIZARD: DATA DECLARATION FOR TABLECONTROL 'TAB'
*&SPWIZARD: DEFINITION OF DDIC-TABLE
TABLES: YH642_RAM.
DATA:
BEGIN OF DDTAB,
TAB_FLAG TYPE C,
MANDT LIKE YH642_RAM-MANDT,
EID LIKE YH642_RAM-EID,
ENAME LIKE YH642_RAM-ENAME,
MOBILE LIKE YH642_RAM-MOBILE,
END OF DDTAB.
*&SPWIZARD: TYPE FOR THE DATA OF TABLECONTROL 'TAB'
TYPES: BEGIN OF T_TAB,
TAB_FLAG TYPE C,
MANDT LIKE YH642_RAM-MANDT,
EID LIKE YH642_RAM-EID,
ENAME LIKE YH642_RAM-ENAME,
MOBILE LIKE YH642_RAM-MOBILE,
END OF T_TAB.
*&SPWIZARD: INTERNAL TABLE FOR TABLECONTROL 'TAB'
DATA: G_TAB_ITAB TYPE T_TAB OCCURS 0,
H_TAB_ITAB TYPE T_TAB OCCURS 0,
G_TAB_WA TYPE T_TAB. "work area
DATA: G_TAB_COPIED. "copy flag
*&SPWIZARD: DECLARATION OF TABLECONTROL 'TAB' ITSELF
CONTROLS: TAB TYPE TABLEVIEW USING SCREEN 0999.
*&SPWIZARD: LINES OF TABLECONTROL 'TAB'
DATA: G_TAB_LINES LIKE SY-LOOPC.
DATA: OK_CODE LIKE SY-UCOMM.
*&SPWIZARD: OUTPUT MODULE FOR TC 'TAB'. DO NOT CHANGE THIS LINE!
*&SPWIZARD: COPY DDIC-TABLE TO ITAB
MODULE TAB_INIT OUTPUT.
IF G_TAB_COPIED IS INITIAL.
*&SPWIZARD: COPY DDIC-TABLE 'YH642_RAM'
*&SPWIZARD: INTO INTERNAL TABLE 'g_TAB_itab'
SELECT * FROM YH642_RAM
INTO CORRESPONDING FIELDS
OF TABLE G_TAB_ITAB.
G_TAB_COPIED = 'X'.
H_TAB_ITAB[] = G_TAB_ITAB[].
REFRESH CONTROL 'TAB' FROM SCREEN '0999'.
ENDIF.
ENDMODULE. "TAB_INIT OUTPUT
*&SPWIZARD: OUTPUT MODULE FOR TC 'TAB'. DO NOT CHANGE THIS LINE!
*&SPWIZARD: MOVE ITAB TO DYNPRO
MODULE TAB_MOVE OUTPUT.
MOVE-CORRESPONDING G_TAB_WA TO DDTAB.
ENDMODULE. "TAB_MOVE OUTPUT
*&SPWIZARD: OUTPUT MODULE FOR TC 'TAB'. DO NOT CHANGE THIS LINE!
*&SPWIZARD: GET LINES OF TABLECONTROL
MODULE TAB_GET_LINES OUTPUT.
G_TAB_LINES = SY-LOOPC.
ENDMODULE. "TAB_GET_LINES OUTPUT
*&SPWIZARD: INPUT MODULE FOR TC 'TAB'. DO NOT CHANGE THIS LINE!
*&SPWIZARD: MODIFY TABLE
MODULE TAB_MODIFY INPUT.
MOVE-CORRESPONDING DDTAB TO G_TAB_WA.
MODIFY G_TAB_ITAB
FROM G_TAB_WA
INDEX TAB-CURRENT_LINE.
ENDMODULE. "TAB_MODIFY INPUT
*&SPWIZARD: INPUT MODULE FOR TC 'TAB'. DO NOT CHANGE THIS LINE!
*&SPWIZARD: PROCESS USER COMMAND
MODULE TAB_USER_COMMAND INPUT.
OK_CODE = SY-UCOMM.
PERFORM USER_OK_TC USING 'TAB'
'G_TAB_ITAB'
'TAB_FLAG'
CHANGING OK_CODE.
SY-UCOMM = OK_CODE.
ENDMODULE. "TAB_USER_COMMAND INPUT
INCLUDE TABLECONTROL_FORMS *
*& Form USER_OK_TC *
FORM USER_OK_TC USING P_TC_NAME TYPE DYNFNAM
P_TABLE_NAME
P_MARK_NAME
CHANGING P_OK LIKE SY-UCOMM.
&SPWIZARD: BEGIN OF LOCAL DATA----
DATA: L_OK TYPE SY-UCOMM,
L_OFFSET TYPE I.
&SPWIZARD: END OF LOCAL DATA----
*&SPWIZARD: Table control specific operations *
*&SPWIZARD: evaluate TC name and operations *
SEARCH P_OK FOR P_TC_NAME.
IF SY-SUBRC <> 0.
EXIT.
ENDIF.
L_OFFSET = STRLEN( P_TC_NAME ) + 1.
L_OK = P_OK+L_OFFSET.
L_OK = 'DELE'.
*&SPWIZARD: execute general and TC specific operations *
CASE L_OK.
WHEN 'INSR'. "insert row
PERFORM FCODE_INSERT_ROW USING P_TC_NAME
P_TABLE_NAME.
CLEAR P_OK.
WHEN 'DELE'. "delete row
MESSAGE 'Are you really going to delete??' type 'I'.
PERFORM FCODE_DELETE_ROW USING P_TC_NAME
P_TABLE_NAME
P_MARK_NAME.
CLEAR P_OK.
WHEN 'P--' OR "top of list
'P-' OR "previous page
'P+' OR "next page
'P++'. "bottom of list
PERFORM COMPUTE_SCROLLING_IN_TC USING P_TC_NAME
L_OK.
CLEAR P_OK.
WHEN 'L--'. "total left
PERFORM FCODE_TOTAL_LEFT USING P_TC_NAME.
WHEN 'L-'. "column left
PERFORM FCODE_COLUMN_LEFT USING P_TC_NAME.
WHEN 'R+'. "column right
PERFORM FCODE_COLUMN_RIGHT USING P_TC_NAME.
WHEN 'R++'. "total right
PERFORM FCODE_TOTAL_RIGHT USING P_TC_NAME.
WHEN 'MARK'. "mark all filled lines
PERFORM FCODE_TC_MARK_LINES USING P_TC_NAME
P_TABLE_NAME
P_MARK_NAME .
CLEAR P_OK.
WHEN 'DMRK'. "demark all filled lines
PERFORM FCODE_TC_DEMARK_LINES USING P_TC_NAME
P_TABLE_NAME
P_MARK_NAME .
CLEAR P_OK.
WHEN 'SASCEND' OR
'SDESCEND'. "sort column
PERFORM FCODE_SORT_TC USING P_TC_NAME
l_ok.
ENDCASE.
ENDFORM. " USER_OK_TC
*& Form FCODE_INSERT_ROW *
FORM FCODE_INSERT_ROW
USING P_TC_NAME TYPE DYNFNAM
P_TABLE_NAME .
&SPWIZARD: BEGIN OF LOCAL DATA----
DATA L_LINES_NAME LIKE FELD-NAME.
DATA L_SELLINE LIKE SY-STEPL.
DATA L_LASTLINE TYPE I.
DATA L_LINE TYPE I.
DATA L_TABLE_NAME LIKE FELD-NAME.
FIELD-SYMBOLS <TC> TYPE CXTAB_CONTROL.
FIELD-SYMBOLS <TABLE> TYPE STANDARD TABLE.
FIELD-SYMBOLS <LINES> TYPE I.
&SPWIZARD: END OF LOCAL DATA----
ASSIGN (P_TC_NAME) TO <TC>.
*&SPWIZARD: get the table, which belongs to the tc *
CONCATENATE P_TABLE_NAME '[]' INTO L_TABLE_NAME. "table body
ASSIGN (L_TABLE_NAME) TO <TABLE>. "not headerline
*&SPWIZARD: get looplines of TableControl *
CONCATENATE 'G_' P_TC_NAME '_LINES' INTO L_LINES_NAME.
ASSIGN (L_LINES_NAME) TO <LINES>.
*&SPWIZARD: get current line *
GET CURSOR LINE L_SELLINE.
IF SY-SUBRC <> 0. " append line to table
L_SELLINE = <TC>-LINES + 1.
*&SPWIZARD: set top line *
IF L_SELLINE > <LINES>.
<TC>-TOP_LINE = L_SELLINE - <LINES> + 1 .
ELSE.
<TC>-TOP_LINE = 1.
ENDIF.
ELSE. " insert line into table
L_SELLINE = <TC>-TOP_LINE + L_SELLINE - 1.
L_LASTLINE = <TC>-TOP_LINE + <LINES> - 1.
ENDIF.
*&SPWIZARD: set new cursor line *
L_LINE = L_SELLINE - <TC>-TOP_LINE + 1.
*&SPWIZARD: insert initial line *
INSERT INITIAL LINE INTO <TABLE> INDEX L_SELLINE.
<TC>-LINES = <TC>-LINES + 1.
*&SPWIZARD: set cursor *
SET CURSOR LINE L_LINE.
ENDFORM. " FCODE_INSERT_ROW
*& Form FCODE_DELETE_ROW *
FORM FCODE_DELETE_ROW
USING P_TC_NAME TYPE DYNFNAM
P_TABLE_NAME
P_MARK_NAME .
&SPWIZARD: BEGIN OF LOCAL DATA----
DATA L_TABLE_NAME LIKE FELD-NAME.
FIELD-SYMBOLS <TC> TYPE CXTAB_CONTROL.
FIELD-SYMBOLS <TABLE> TYPE STANDARD TABLE.
FIELD-SYMBOLS <WA>.
FIELD-SYMBOLS <MARK_FIELD>.
&SPWIZARD: END OF LOCAL DATA----
ASSIGN (P_TC_NAME) TO <TC>.
*&SPWIZARD: get the table, which belongs to the tc *
CONCATENATE P_TABLE_NAME '[]' INTO L_TABLE_NAME. "table body
ASSIGN (L_TABLE_NAME) TO <TABLE>. "not headerline
*&SPWIZARD: delete marked lines *
DESCRIBE TABLE <TABLE> LINES <TC>-LINES.
LOOP AT <TABLE> ASSIGNING <WA>.
*&SPWIZARD: access to the component 'FLAG' of the table header *
ASSIGN COMPONENT P_MARK_NAME OF STRUCTURE <WA> TO <MARK_FIELD>.
IF <MARK_FIELD> = 'X'.
W_INDEX = SYST-TABIX.
DELETE <TABLE> INDEX SYST-TABIX.
IF SY-SUBRC = 0.
<TC>-LINES = <TC>-LINES - 1.
ENDIF.
ENDIF.
ENDLOOP.
READ TABLE H_TAB_ITAB INDEX W_INDEX INTO G_TAB_WA.
IF SY-SUBRC EQ 0.
MOVE-CORRESPONDING G_TAB_WA TO YH642_RAM.
DELETE YH642_RAM.
ENDIF.
ENDFORM. " FCODE_DELETE_ROW
*& Form COMPUTE_SCROLLING_IN_TC
text
-->P_TC_NAME name of tablecontrol
-->P_OK ok code
FORM COMPUTE_SCROLLING_IN_TC USING P_TC_NAME
P_OK.
&SPWIZARD: BEGIN OF LOCAL DATA----
DATA L_TC_NEW_TOP_LINE TYPE I.
DATA L_TC_NAME LIKE FELD-NAME.
DATA L_TC_LINES_NAME LIKE FELD-NAME.
DATA L_TC_FIELD_NAME LIKE FELD-NAME.
FIELD-SYMBOLS <TC> TYPE CXTAB_CONTROL.
FIELD-SYMBOLS <LINES> TYPE I.
&SPWIZARD: END OF LOCAL DATA----
ASSIGN (P_TC_NAME) TO <TC>.
*&SPWIZARD: get looplines of TableControl *
CONCATENATE 'G_' P_TC_NAME '_LINES' INTO L_TC_LINES_NAME.
ASSIGN (L_TC_LINES_NAME) TO <LINES>.
*&SPWIZARD: is no line filled? *
IF <TC>-LINES = 0.
*&SPWIZARD: yes, ... *
L_TC_NEW_TOP_LINE = 1.
ELSE.
*&SPWIZARD: no, ... *
CALL FUNCTION 'SCROLLING_IN_TABLE'
EXPORTING
ENTRY_ACT = <TC>-TOP_LINE
ENTRY_FROM = 1
ENTRY_TO = <TC>-LINES
LAST_PAGE_FULL = 'X'
LOOPS = <LINES>
OK_CODE = P_OK
OVERLAPPING = 'X'
IMPORTING
ENTRY_NEW = L_TC_NEW_TOP_LINE
EXCEPTIONS
NO_ENTRY_OR_PAGE_ACT = 01
NO_ENTRY_TO = 02
NO_OK_CODE_OR_PAGE_GO = 03
OTHERS = 0.
ENDIF.
*&SPWIZARD: get actual tc and column *
GET CURSOR FIELD L_TC_FIELD_NAME
AREA L_TC_NAME.
IF SYST-SUBRC = 0.
IF L_TC_NAME = P_TC_NAME.
*&SPWIZARD: et actual column *
SET CURSOR FIELD L_TC_FIELD_NAME LINE 1.
ENDIF.
ENDIF.
*&SPWIZARD: set the new top line *
<TC>-TOP_LINE = L_TC_NEW_TOP_LINE.
ENDFORM. " COMPUTE_SCROLLING_IN_TC
*& Form FCODE_TC_MARK_LINES
marks all TableControl lines
-->P_TC_NAME name of tablecontrol
FORM FCODE_TC_MARK_LINES USING P_TC_NAME
P_TABLE_NAME
P_MARK_NAME.
&SPWIZARD: EGIN OF LOCAL DATA----
DATA L_TABLE_NAME LIKE FELD-NAME.
FIELD-SYMBOLS <TC> TYPE CXTAB_CONTROL.
FIELD-SYMBOLS <TABLE> TYPE STANDARD TABLE.
FIELD-SYMBOLS <WA>.
FIELD-SYMBOLS <MARK_FIELD>.
&SPWIZARD: END OF LOCAL DATA----
ASSIGN (P_TC_NAME) TO <TC>.
*&SPWIZARD: get the table, which belongs to the tc *
CONCATENATE P_TABLE_NAME '[]' INTO L_TABLE_NAME. "table body
ASSIGN (L_TABLE_NAME) TO <TABLE>. "not headerline
*&SPWIZARD: mark all filled lines *
LOOP AT <TABLE> ASSIGNING <WA>.
*&SPWIZARD: access to the component 'FLAG' of the table header *
ASSIGN COMPONENT P_MARK_NAME OF STRUCTURE <WA> TO <MARK_FIELD>.
<MARK_FIELD> = 'X'.
ENDLOOP.
ENDFORM. "fcode_tc_mark_lines
*& Form FCODE_TC_DEMARK_LINES
demarks all TableControl lines
-->P_TC_NAME name of tablecontrol
FORM FCODE_TC_DEMARK_LINES USING P_TC_NAME
P_TABLE_NAME
P_MARK_NAME .
&SPWIZARD: BEGIN OF LOCAL DATA----
DATA L_TABLE_NAME LIKE FELD-NAME.
FIELD-SYMBOLS <TC> TYPE CXTAB_CONTROL.
FIELD-SYMBOLS <TABLE> TYPE STANDARD TABLE.
FIELD-SYMBOLS <WA>.
FIELD-SYMBOLS <MARK_FIELD>.
&SPWIZARD: END OF LOCAL DATA----
ASSIGN (P_TC_NAME) TO <TC>.
*&SPWIZARD: get the table, which belongs to the tc *
CONCATENATE P_TABLE_NAME '[]' INTO L_TABLE_NAME. "table body
ASSIGN (L_TABLE_NAME) TO <TABLE>. "not headerline
*&SPWIZARD: demark all filled lines *
LOOP AT <TABLE> ASSIGNING <WA>.
*&SPWIZARD: access to the component 'FLAG' of the table header *
ASSIGN COMPONENT P_MARK_NAME OF STRUCTURE <WA> TO <MARK_FIELD>.
<MARK_FIELD> = SPACE.
ENDLOOP.
ENDFORM. "fcode_tc_mark_lines
*& Module STATUS_0999 OUTPUT
text
MODULE STATUS_0999 OUTPUT.
SET PF-STATUS 'SS_STD'.
SET TITLEBAR 'TITLE'.
ENDMODULE. " STATUS_0999 OUTPUT
*& Module USER_COMMAND_0999 INPUT
text
MODULE USER_COMMAND_0999 INPUT.
DATA:
H_TAB_WA LIKE G_TAB_WA.
CASE W_UCOMM.
WHEN 'BACK'.
LEAVE PROGRAM.
WHEN 'TAB_MODI' OR 'SAVE'.
LOOP AT G_TAB_ITAB INTO G_TAB_WA.
FORMAT INPUT OFF.
MOVE-CORRESPONDING G_TAB_WA TO YH642_RAM.
READ TABLE H_TAB_ITAB WITH KEY EID = G_TAB_WA-EID INTO H_TAB_WA.
IF SY-SUBRC EQ 0.
IF G_TAB_WA NE H_TAB_WA.
MODIFY YH642_RAM.
ENDIF.
ELSE.
INSERT YH642_RAM.
ENDIF.
ENDLOOP.
SORT G_TAB_ITAB.
ENDCASE.
*CALL SCREEN 700.
ENDMODULE. " USER_COMMAND_0999 INPUT -
Error when displaying - on table control
hy guys,
im working with a table control..
the problem is when the table control loads a -200 or any number with - .
ERROR
DYNPRO_FIELD_CONVERSION
I already tried to change the format of the table field to currency, dec, char and numc
currency the error is displayed.
dec the error is displayed
char the column is displayed empty
numc the table is displayed but the - is not displayed in the field.
any ideas?
Edited by: javier santana on Sep 7, 2008 7:26 PMHi,
The problem mayb with the -ve value display, keep the format to currency and double click on the field in table control, u wil find a option to display -ve values select that
If -ve value is ur prob then this should work -
Data visible in 2D Array but not in connected Table Control
In the attached drawing, you see that I take the Table Control as an array, change elements using Replace Array Subset and then send the resultant array back to the Table Control.
I can see my data in "Output Array" and in a probe on that wire but my Table Control is blank. The Table Control is 10 columns by 50 rows.
Can anyone tell me why there is no data getting to the Table Control?
Please don't ask me to post the VI because it is large, ungainly and not mine to post.
Solved!
Go to Solution.I can't believe it.
I could not see the data because it was out-of-frame. My Control Table was scrolled down to the bottom of a 30 row window and my data was in the first row only. -
Table control - what is the limit to how much I can sent to it.
Greetings,
I am using a table control for a test program. Each time a feature of the unit is tested it is logged to the table control.
I know that the answer will depend on how many columns i am filling (9) and the length of the strings in each column,
but i need to get a ball park figure on how many rows i can write to the table control before I have problems?
Secondly is there something I can do to the control to lets say purge the first x number of entries to regain memory used or am I
just going to create a memory leak by doing this?
thanks in advance
Pete HedlundHi phedlund,
According to the CVI Help Topic on "Programming with Table Controls" a table in CVI can hold an arbitrary number of rows and columns. You can use the DeleteTableRows and DeleteTableColumns functions to adjust the size of the table and the length of the strings does not effect the data structure of the table as the table should only hold pointers to strings. One thing to keep in mind is if the GetTableCellRangeVals function is used to probe the values in the table then make sure to clear the return values from memory using FreeTableValStrings, etc to prevent memory leaks.
Milan -
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 -
Tranfering data from alv display to a transaction with table control.
Hi all,
I am having some problem transfering data from my alv display to a trasaction which needs to display some values in a table control base on criterias which I have selected from my alv report.
When selecting an entry in my alv report.
1. The program should check whether there is an entry in a z table(already created), if so it retrieves data fro the z table base on the selected criteria.
2.otherwise it search from the data from other tables and then saves it in the z table and display the values in the tc.
my program is as follows.
FORM button_click USING p_ucomm TYPE sy-ucomm
p_selfield TYPE slis_selfield.
CASE p_ucomm.
WHEN 'SALES'.
READ TABLE gt_alvdisplay
INDEX p_selfield-tabindex
INTO gs_alvdisplay.
SET PARAMETER ID: *I dont know how to pass the para to the tc.....
CALL TRANSACTION 'ztrans_test".
ENDFORM.
Note: TC is already created and it retrieves data from the z table but am having prob just to pass the parameters.
Ill be very grateful to you allHello,
Yes you can create text field without using screen painter as follows:
PARAMETERS P1 TYPE CHAR12 MEMORY ID mid.
Here, this code will create text box with name P1 and parameter id "mid"
You can assign meaning text to p1 using menu link GO TO --> TEXT ELEMENTS --> SELECTION TEXTS.
So before call transaction which contains this field you can write below statement.
SET PARAMETER ID mid VALUE <value variable>.
* Here vlaue variable is the variable from which you want to pass value to parameter id mid.
Refer [SAP Help|http://help.sap.com/saphelp_nw70/helpdata/en/e7/deb237b9a9a968e10000009b38f8cf/frameset.htm] for more information.
Hope this helps!
Thanks,
Augustin. -
Reg:How to delete the column in table control also from database table.
Hi Experts,
Once again thank u all for giving the responses.
one more doubt is how to delete the columns of table control and also the record shold delete from ztable.
With Regards,
Saroja.P.Hi,
If you want to delete the rows in the table control and simultaneously delete it from the database table, then you can implement a 'DELETE' functionality specific to your table control. Have a MARK field (you will find that in the screen attributes of the table control -> give a name for the MARK field, you will find an additional MARK column at the beginning of your table control). You can check whatever rows you want to delete from the table control, call the delete module.
"This portion of code inside the LOOP...ENDLOOP.
IF sy-ucomm eq 'F_DELETE'.
gt_itab2-check = mark. " Store the MARK field status into your internal table's correspoding field 'check'
MODIFY gt_itab INDEX tabcontrol-current_line.
ENDIF.
iF sy-ucomm eq 'DELETE1'.
DELETE gt_itab WHERE check eq 'X'. "Your internal table does not have rows that you want to delete
ENDIF.
Now you can modify your database table using the MODIFY statement.
MODIFY ZDB FROM TABLE gt_itab. -
How to delete the row in table control with respect to one field in module pool programming?
Hi,
Can I know the way to delete the row in table control with respect to one field in module pool programming
Regards
Darshan MSHI,
I want to delete the row after the display of table control. I have created push button as delete row. If I click on this push button, the selected row should get deleted.
I have written this code,
module USER_COMMAND_9000 input.
DATA OK_CODE TYPE SY-UCOMM.
OK_CODE = SY-UCOMM.
CASE OK_CODE.
WHEN 'DELETE'.
LOOP AT lt_source INTO ls_source WHERE mark = 'X'.
APPEND LS_SOURCE TO LT_RESTORE.
DELETE TABLE LT_SOURCE FROM LS_SOURCE.
SOURCE-LINES = SOURCE-LINES - 1.
ENDLOOP.
But I'm unable to delete the selected rows, It is getting deleted the last rows eventhough I select the other row.
So I thought of doing with respect to the field. -
HAI FRIENDS,
I HAVE DISPLAYED THE VALUES IN THE TABLE CONTROL
I HAVE DEFINED 'CHECK' FOR SELECTING THE FIELDS OF TABLE CONTROL
THE ISSUE STARTS HERE
WHEN I CHECK TOP FIELDS OF TABLE CONTROL
THEN SCROLLED VERTICALLY, THE TABLE CONTROL TO SELECT I.E CHECK THE
BOTTOM FIELDS OF TABLE CONTROL.
THE TOP FIELDS WATEVER CHECK WHERE CHECKS DISPAPEARS FOR TOP FIELDS .
BY THIS I UNABLE TO SELECT THE FIELDS OF TABLE.
PLZ HELP ME URGENTLY NEEDED.
MY MONDAY I NEEDEDYou use an internal table for values in table control..
One of the fields( very first field) in that itab is used for check - uncheck..
u have make it 'X' when u click any row...
I think this might be the problem in ur case.. when u scroll PAI starts... in that PAI check the value of check box for that particular field...
Regards
Prax -
How to populate data in table control .
hi all,
i put matnr no. in screen no. 103
validation is done at that screen only.
now when i want to modify dat record
when i put matnr no. at screen 103
so how i will get all data of dat number to table control screen.Hi Darshan,
Here is a detailed description of how to update data in table controll.
Updating data in table control
The ABAP language provides two mechanisms for loading the table control with data from the internal table and then storing the altered rows of the table control back to the internal table.
Method 1: Read the internal table into the Table Control in the screenu2019s flow logic. Used when the names of the Table Control fields are based on fields of the internal table.
Method 2: Read the internal table into the Table Control in the module pool code. Used when the names of the Table Control fields are based on fields of the database table.
Method 1 (table control fields = itab fields)
In the flow logic we can read an internal table using the LOOP statement. Define the reference to the relevant able control by specifying WITH CONTROL <ctrl>
Determine which table entry is to be read by specifying CURSOR <ctrl>-CURRENT_LINE.
After the read operation the field contents are placed in the header line of the internal table. If the fields in the table control have the same name as the internal they will be filled automatically. Otherwise we need to write a module to transfer the internal table fields to the screen fields.
We must reflect any changes the user makes to the fields of the table control in the internal table otherwise they will not appear when the screen is redisplayed after PBO processing, (eg, after the user presses Enter or scrolls) However, this processing should be performed only if changes have actually been made to the screen fields of the table control (hence the use of the ON REQUEST)
PROCESS BEFORE OUTPUT.
LOOP AT ITAB_REG WITH CONTROL TCREG
CURSOR TCREG-CURRENT_LINE.
ENDLOOP.
PROCESS AFTER INPUT.
LOOP AT ITAB_REG.
MODULE MODIFY_ITAB_REG.
ENDLOOP.
MODULE MODIFY_ITAB_REG INPUT.
MODIFY ITAB_REG INDEX TCREG-CURRENT_LINE.
ENDMODULE.
Method 2 (table control fields = dict. fields)
If using a LOOP statement without an internal table in the flow logic, we must read the data in a PBO module which is called each time the loop is processed.
Since, in this case, the system cannot determine the number of internal table entries itself, we must use the EXIT FROM STEP-LOOP statement to ensure that no blank lines are displayed in the table control if there are no more corresponding entries in the internal table.
PROCESS BEFORE OUTPUT.
LOOP WITH CONTROL TCREG.
MODULE READ_ITAB_REG.
ENDLOOP.
PROCESS AFTER INPUT.
LOOP WITH CONTROL TCREG.
CHAIN.
FIELD: ITAB_REG-REG,
ITAB_REG-DESC.
MODULE MODIFY_ITAB_REG
ON CHAIN-REQUEST.
ENDCHAIN.
ENDLOOP.
MODULE READ_ITAB_REG OUTPUT.
READ TABLE ITAB_REG INDEX TCREG-CURRENT_LINE.
IF SY-SUBRC EQ 0.
MOVE-CORRESPONDING ITAB_REREG TO TCREG.
ELSE.
EXIT FROM STEP-LOOP.
ENDIF.
ENDMODULE.
MODULE MODIFY_ITAB_REG INPUT.
MOVE-CORRESPONDING TCREG TO ITAB_REG.
MODIFY ITAB_REG INDEX
TCREG-CURRENT_LINE.
ENDMODULE.
Updating the internal table
Method 1
PROCESS AFTER INPUT.
LOOP AT ITAB_REG.
CHAIN.
FIELD: ITAB_REG-REG,
ITAB_REG-DESC.
MODULE MODIFY_ITAB_REG ON CHAIN-REQUEST.
ENDCHAIN.
ENDLOOP.
MODULE MODIFY_ITAB_REG INPUT.
ITAB_REG-MARK = u2018Xu2019.
MODIFY ITAB_REG INDEX TCREG-CURRENT_LINE.
ENDMODULE.
Method 2
PROCESS AFTER INPUT.
LOOP WITH CONTROL TCREG.
CHAIN.
FIELD: TCREG-REG,
TCREG-DESC.
MODULE MODIFY_ITAB_REG ON CHAIN-REQUEST.
ENDCHAIN.
ENDLOOP.
MODULE MODIFY_ITAB_REG INPUT.
MOVE-CORRESPONDING TCREG TO ITAB_REG.
ITAB_REG-MARK = u2018Xu2019.
MODIFY ITAB_REG INDEX TCREG-CURRENT_LINE.
ENDMODULE.
Updating the database
MODULE USER_COMMAND_100.
CASE OK_CODE.
WHEN u2018SAVEu2019.
LOOP AT ITAB-REG.
CHECK ITAB_REG-MARK = u2018Xu2019.
MOVE-CORRESPONDING ITAB_REG TO TCREG.
UPDATE TCREG.
ENDLOOP.
WHEN u2026
u2026
ENDCASE.
ENDMODULE.
Hope this will solve your problem.
Regards,
Pavan.
Edited by: PAVAN CHANDRASEKHAR GANTI on Aug 3, 2009 12:48 PM -
Update internal table data from table control
Hi GURUS,
I need help regarding one of my requirement.
I need to display data from the internal table on the screen and when the user selects a record/multiple records from screen and clicks on approve button i need to update one of the field from N to Y in the corresponding Ztable. Once the record is updated from Ztable , that should no longer be visible for the user on the screen.
I am using table control wizard to display data. I am able to update the Ztable, but that record is not refreshing from the user screen. Any suggestions would be approved.
Also please let me know if table control is the best way to do this/ alv grid control??hi
REFRESH CONTROL Control-Name FROM SCREEN '0100' -> use this command to refresh the table control
to know more, read into
https://forums.sdn.sap.com/click.jspa?searchID=2934287&messageID=673474
Re: URGENT HELP REQ IN TABLE CONTROL WIZARD
if helpful, reward
Sathish. R -
Validação de campos em um Table Control
Boa tarde.
Gostaria de pedir um auxilio .
Tenho uma duvida, na seguinte situação. Estou construindo um programa de Module Pool
Neste programa vai ter um tabstrip, para atualizar duas tabelas Z
Na primeira u201CABAu201D, serão inseridos os registros da tabela pai e na segunda u201CABAu201D, os registros da tabela
Filho a relação será de 1 para N.
Na tabela filho os campos chaves serão um identificador próprio , mais o registro chave da tabela pai.
Na segunda a aba para inserir os registros da tabela filho, terei que usar um table Control.
O meu problema é que ao inserir os registros na tabela filho, terei que de forma automática preencher o campo que corresponde a chave da tabela pai. Ou seja o usuário na primeira u201Cabau201D digamos digite o código da tabela pai como 10 ao inserir na table Control um registro o campo correspondente a chave da tabela pai devera ser preenchido com o valor 10 e não permitir ao usuário efetuar qualquer manutenção neste campo.
Como eu faço isso???
Alguém tem algum exemplo????
Obrigado a todosOlá, bom dia!
Este é um dessenvolvimento bem específico, talvez por isso ninguem lhe respondeu ainda. Voce já deu uma olhada na seção de Wiki, buscando algum código de exemplo?
Vai alguns links que encontrei:
http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/1499ec90-0201-0010-769f-860989655f7e?QuickLink=index&overridelayout=true
http://wiki.sdn.sap.com/wiki/display/sandbox/ModulePoolProgramming
O primeiro link traz um exemplo de como torna um campo ineditavel via codigo. Espero que possa ajudar.
Abraços,
Rodrigo Paisante -
Capture field name in table control on double click
Hi,
How can I capture the field name of internal table passed to table control on double click?
I have set function code as 'PICK' and applied 'Respond to double click' and used GET CURSOR statement. Here I can get the values like row number (line number), field value also. But I would like to capture on which field the cursor is (or on which column the cursor is)?
Thanks in advance.
Regards
Ramesh.Got it.
We can capture it by using the statement GET CURSOR only.
GET CURSOR field <field xx> .
Here the <field xx> is the field name where we have said double click.
Maybe you are looking for
-
Apple TV flickers, sound cuts out intermittently for short instances
I use airplay to watch internet TV on my Flatscreen (panasonic viera) via Apple TV. From when I can remember it's always having sound cut in and out quite frequently and even somtimes flickers to a scrambled screen. I checked my serial number to s
-
hi can anybody help me i have 8 mac machine with tiger os (power bookg4 ,ibookg4 , imac 1.9, power mac). iwant to upgrade my machine 10.4 to 10.4.3 & 10.4 .2 to 10.4.3 but its not upgrading when i will try to upgrade in the middle of installation its
-
Translate daynumber to date in APEX calendar
Hello all, I've got a problem with a query for a calendar. My current customer has two tables to see wether or not an employee is available. One to see if an employee has parttime hours. EMP_CALENDAR - empno number - day_name varchar2(24) - day_numbe
-
UML Class diagrams: Printing and formatting
I really like the UML capabilities of NetBeans 5.5. In particular, I like the ability to create a "centered" dependency class diagram by right-clicking on a class and selecting "Generate Dependency Diagram." However, I am having trouble with some bas
-
Possible Workaround - AirPort Extreme Disk Utility not working in Windows
1) The only way I have managed to get Windows (in my case Vista) working with AE Disk Utility is to set it up using the "Assist Me" or "Manual Setup" with the Airport Utility with no special settings used to configure it. 2) Update the Station & let