CVI table control - preallocat​e rows?
Hello,
We are using a CVI table control to display test steps as part of a custom test sequencer. We have varying lengths of test sequences. A row in the table control is basically a test step in a sequence.
Is it a correct assumption to preallocate the maximum number of test steps we will encounter at application startup using InsertTableRows? (In our case it is around 60K rows)
I'm assuming that performing DeleteTableRows followed by InsertTableRows whenever a new test sequence is loaded could cause peformance issues involving possible memory fragmentation.
Thanks,
Hello Sirs,
I have also the same of slowing problem, when I try to fill some data in CVI table.
If I try to add 50 (TBC) rows, 4 columns, the fully data display seems to be correct.
If I try to add 1000 rows, 4 columns, the fully data display take several seconds (30s to 1 min) !
I try several computers (Core 2 Duo to i3) (XP pro to Seven 32 & 64), same problem.
In the past, I have the same problem with Labview.
A NI guy gave me a VIs (FA) property, to permit to delay the refresh of the control latter.
Like this at each new adding, they was not have a refresh requested, so the filling was fully more quick.
http://zone.ni.com/reference/fr-XX/help/371361K-0114/lvprop/pnl_defer_pnl_updts/
http://digital.ni.com/public.nsf/allkb/547DFDA3D02FD0AE86257154006933F3
I go one my reading to find the same CVI function.
Certified LabWindows/CVI DEVELOPER (2004)
LabVIEW since 5.01 | LabWindows/CVI since 4.01
Similar Messages
-
How to find dynamic value(screen value) in table control for current row .
hi to all,
i used table control in my screen. for column no 2 field i was used serrch help. and for column number 3 i used a dynamic help.
in change mode you can change any row for table control.
when i was using search help for a row which was already entered in column no 3 i cannot get any value.
how i can get value of row no 3 and column no 2 value.
thanksTry using like index for the serarch the TC-current_line
-
Table Control Enable / Disable Row
Hi,
I have a table control with 6 columns also screen contains some header input fields.
Out of 6 columns first two columns are disabled.
Depending on value entered in certain field in the header I fill the table control. e.g. if the value in certain field is X, table control is filled with say 15 rows, if value is Y, table control is filled with say 5 rows.
Now my requirement is only those rows which are filled should be disabled. i.e. If user chooses value Y then all rows after 5 should be input enabled.
But since I have disabled the columns statically complete column remains disabled.
Can anybody tell me How to enable a particular row in table control ?
Thanks n Regards,
Nitin
Message was edited by: Nitin PawarSay your Table control in TABCON.
You screen structure is SC_ITAB.
Your internal table is ITAB.
In PBO of screen
LOOP AT ITAB INTO SC_ITAB WITH CONTROL TABCON.
module SUPPRESS_ROW.
ENDLOOP.
In ABAP Module
MODULE SUPPRESS_ROW.
IF SC_TAB IS INITIAL.
LOOP AT SCREEN.
SCREEN-INPUT = 0.
MODIFY SCREEN.
ENDLOOP.
else.
LOOP AT SCREEN.
SCREEN-INPUT = 1.
MODIFY SCREEN.
ENDLOOP.
endif.
This will help you suppress at row level.
You may change the if condition to suit your need .
Cheers
ENDMODULE. -
How to insert row in table control and save the data in tables
Hi,
I have one table control i am displaying data into table control ,
my problem is : i want to display data into read mode in table control.
but when i click on insert button on the same screen i want one blank line should inserted into table control , then i want to insert some data into table control on that row , when i click the save button . the new data inserted into the table control is insert that data into ztable ,
please give me solution
main problen is how can know inserted line in table control and pass that data into ztable.Hi,
Follow the below logic,
PROCESS BEFORE OUTPUT.
MODULE STATUS_0001.
MODULE POPULATE_TABLE_CONTROL. --> Get the data from table store in
ITAB
LOOP AT GT_CTRL_LP_D516 INTO GS_WA_CTRL_LP_D516
WITH CONTROL CTRL_LP_D516
CURSOR CTRL_LP_D516-CURRENT_LINE.
The following module moves data to control
MODULE MOVE_TO_CONTROL.--> Move data from ITAB to table control
ENDLOOP.
PROCESS AFTER INPUT.
LOOP AT GT_CTRL_LP_D516.
ENDLOOP.
MODULE EXIT AT EXIT-COMMAND.
MODULE USER_COMMAND_0001. --> Here you have to take out the values from table control and update database table
Reward points if helpful.
Thanks and regards,
Mallareddy Rayapureddy,
Munich, Germany. -
How to delete a row in table control(accepts only input)?
Hi All,
I have an empty table control which is only use for data input(this data will then be use to store information to a custom table). I have two buttons, Create Entry and Delete Entry.
In my screenPainter for the table control, I have the checkbox w/SelColumn ticked and assign variable T_DATA-MARK on it.
Please see the actual screenshots and code below:
The aim of the table control is just to accept inputs, so the internal table in the PBO is always empty.
Table Control Screen Painter ScreenShot and Actual SAP Output:
http://img710.imageshack.us/img710/4751/tablecontrolrowdelete.jpg
PBO
PROCESS BEFORE OUTPUT.
LOOP WITH CONTROL TC_ID.
MODULE LOAD_TABLECTRL.
ENDLOOP.
module LOAD_TABLECTRL output.
READ TABLE T_ID_CHECK INTO WA_ID_CHECK INDEX TC_ID-current_line.
IF SY-SUBRC EQ 0.
MOVE-CORRESPONDING T_ID_CHECK TO TC_ID.
ELSE.
"EXIT FROM STEP-LOOP.
CLEAR ZQID_CHECK.
ENDIF.
PAI
PROCESS AFTER INPUT.
LOOP WITH CONTROL TC_ID.
CHAIN.
MODULE CHECK_ENTRIES ON CHAIN-INPUT.
MODULE MODIFY_T_ID_CHECK ON CHAIN-INPUT.
MODULE DELETE_ROW ON CHAIN-INPUT
ENDCHAIN.
ENDLOOP.
module CHECK_ENTRIES input.
CASE ok_code.
WHEN 'DEL'.
PERFORM F_FILL_ITABCREATE USING ZQID_CHECK-MATNR
ZQID_CHECK-LICHA
ZQID_CHECK-LIFNR.
ENDCASE.
endmodule.
form F_FILL_ITABCREATE using us_zqid_check_matnr LIKE MARA-MATNR
us_zqid_check_licha LIKE MCHA-LICHA
us_zqid_check_lifnr LIKE LFA1-LIFNR.
MOVE: us_zqid_check_matnr TO WA_ID_CHECK-MATNR,
us_zqid_check_licha TO WA_ID_CHECK-LICHA,
us_zqid_check_lifnr TO WA_ID_CHECK-LIFNR.
APPEND WA_ID_CHECK TO T_ID_CHECK.
CLEAR WA_ID_CHECK.
endform.
module MODIFY_T_ID_CHECK input.
DATA W_TEMPMARK(1) TYPE C.
MOVE: T_ID_CHECK-MARK TO W_TEMPMARK,
W_TEMPMARK TO T_ID_CHECK-MARK.
MODIFY T_ID_CHECK INDEX SY-TABIX TRANSPORTING MARK.
endmodule.
module DELETE_ROW input.
LOOP AT T_ID_CHECK WHERE MARK EQ 'X'.
DELETE T_ID_CHECK.
ENDLOOP.
endmodule.
Edited by: Jaime Cabanban on Jan 7, 2010 8:46 PMDebugging the PBO part after deletion will help you know why the rows are getting deleted
This is the sap doc answer for you question regarding LINE.
Controls the scroll bar of the table control. At LOOP without internal table, LINES has the initial value zero and must be set in the program so that the scroll bar can be used. At LOOP AT <itab> the system sets this component to the number of rows of the internal table, whenever the table control is processed for the first time. The initialization event of a table control is not determined uniquely. If the corresponding internal table is not fully created at this event, then the LINES variable receives an incorrect value. If LINES in the LOOP loop is smaller as the number of rows of the internal table, then the table control contains blank rows at the end.
Therefore you should always set the LINES component explicitly in the ABAP program, including at LOOP AT <itab>. In this way you have full control over the dimensions of the vertical scroll bar and so can control the number of rows that are ready for input. Initialization should usually occur at PBO directly before the LOOP statement for the table control. -
Processing of Rows in the Non-visible area - Table Controls
Hi,
I have a table control. At any given point on the screen the table control displays 17 rows. now there is a functionality thru which the user will be able to paste some values into a particular column of the table control from the clipboard. Then the user will press save to save all the data on the table control into a DB table. the problem is the rows that are not visible on the screen i.e. the rows that has to be seen by scrolling the table control. while looping the table control these rows are not getting looped i.e. the looping ends with first 17 visible rows. how do i make the table control loop at the remaining records also?suppose, your table control name is 'table0'
and you declare it as :
'controls table0 type tableview using screen 100.'
so to process all rows of this table control you should assign for it
'table0-lines = n.'
where n is row count that you know.
then you can use following statement
'LOOP AT <internal table> CURSOR <scroll-var>
[WITH CONTROL <table-control> ]
[FROM <line1> ] [TO <line2> ].
...<actions>...
ENDLOOP.'
result: all n rows will be processed. in your case n is greater than 17. -
Different values in a list box for each row of the table control...
Dear Experts,
Is it possible to populate different values for each row in a listbox inside a table control ?
Example,
Row 1 in the the table contains A, B & C
Row 2 in the same table contains C, D & E
If yes, How?
yes i am using
call function 'VRM_SET_VALUES'
exporting
id = i_name
values = i_list.
Thank you .
Message was edited by:
Kokwei Wong
Message was edited by:
Kokwei WongHi Wong,
this is code example for listbox
TYPE-POOLS vrm .
DATA: lt_vrm_values TYPE TABLE OF vrm_value.
DATA: wa_vrm_values TYPE vrm_value.
PARAMETER p_list AS LISTBOX VISIBLE LENGTH 10.
INITIALIZATION.
wa_vrm_values-key = 'Key1'.
wa_vrm_values-text = 'Value1'.
APPEND wa_vrm_values TO lt_vrm_values.
wa_vrm_values-key = 'Key2'.
wa_vrm_values-text = 'Value2'.
APPEND wa_vrm_values TO lt_vrm_values.
wa_vrm_values-key = 'Key3'.
wa_vrm_values-text = 'Value3'.
APPEND wa_vrm_values TO lt_vrm_values.
AT SELECTION-SCREEN OUTPUT.
CALL FUNCTION 'VRM_SET_VALUES'
EXPORTING
id = 'P_LIST'
values = lt_vrm_values
EXCEPTIONS
id_illegal_name = 1
OTHERS = 2.
IF sy-subrc 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
To fill it with data from DB, just do select in INITIALIZATION and put that values with same alghoritmus.
Manas M.
P.S.: This is very easy question, you should use search ... -
Table control list box. different values in each row of the list box
Hi all,
i have a requirement to display text box in table control. Each row of list box should contain different values.
i tried with the below code but the values are not getting populated in list box. please give your ideas.
I tried with list box which is having same values in all rows, it is working fine.
loop at itab.
select vbeln from ZSD_PS_BLAWB into ZSD_PS_BLAWB-vbeln
where BLAWBNO = itab-BLAWBNO and
BLAWBDT = itab-BLAWBDT and
CTRNO = itab-CTRNO.
if sy-subrc = 0.
index = 1.
list3-key = index.
list3-text = ZSD_PS_BLAWB-vbeln.
append list3 to list2.
index = index + 1.
endif.
endselect.
clear index.
CALL FUNCTION 'VRM_SET_VALUES'
EXPORTING
ID = 'ITAB-VBELN'
VALUES = list2
EXCEPTIONS
ID_ILLEGAL_NAME = 1
OTHERS = 2
IF SY-SUBRC 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
modify itab.
endloop.
Thanks in advance.Hi,
this is code example for listbox
TYPE-POOLS vrm .
DATA: lt_vrm_values TYPE TABLE OF vrm_value.
DATA: wa_vrm_values TYPE vrm_value.
PARAMETER p_list AS LISTBOX VISIBLE LENGTH 10.
INITIALIZATION.
wa_vrm_values-key = 'Key1'.
wa_vrm_values-text = 'Value1'.
APPEND wa_vrm_values TO lt_vrm_values.
wa_vrm_values-key = 'Key2'.
wa_vrm_values-text = 'Value2'.
APPEND wa_vrm_values TO lt_vrm_values.
wa_vrm_values-key = 'Key3'.
wa_vrm_values-text = 'Value3'.
APPEND wa_vrm_values TO lt_vrm_values.
AT SELECTION-SCREEN OUTPUT.
CALL FUNCTION 'VRM_SET_VALUES'
EXPORTING
id = 'P_LIST'
values = lt_vrm_values
EXCEPTIONS
id_illegal_name = 1
OTHERS = 2.
IF sy-subrc 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
To fill it with data from DB, just do select in INITIALIZATION and put that values with same alghoritmus.
Manas M.
P.S.: This is very easy question, you should use search ... -
Add row based on previous row in table control?
Dear all,
I have a table control with some rows. Every row contains one button. On button click i want to add another row with dirrerent data. I want to add content based on button text or another columns (ex text views text,) based on this text view, I have to add row. One button can click any no of times. On every click i want to add row, but desired position and content should be based on button click. Any help in doing this??
Cheers,
Venkys.Refer to these old threads referring this table and button problem.
Adding rows to table
How to create different rows in table or in ALV?
and for the current scenario what you can do is ...
in the eventhandler of the button click .
find out the row number by using the code to read index.
then based upon that add the element in the node at the desired position.
finding the row number
data indx type i.
DATA lo_el TYPE REF TO if_wd_context_element.
lo_el = wdevent->get_context_element( 'CONTEXT_ELEMENT' ).
indx = lo_el->get_index( ).
and the adding the element at the desired position say n
DATA lo_nd_zdealer TYPE REF TO if_wd_context_node.
lo_nd_zdealer = wd_context->get_child_node( name = 'DEALER' ).
data ls_str type wd_this->element_dealer.
ls_str-id = '00023445'.
ls_str-name = 'sarbjeet'.
ls_str-location = 'hosiarpur'.
ls_str-status = '0001'.
lo_nd_zdealer->bind_structure( new_item = ls_str
set_initial_elements = abap_false
index = n
thanks
sarbjeet singh -
Changing number of rows oin a table control dynamically
Hi all
Is there a way to change the no of rows dynamically.
I have a requirement that at run time , depending on a condition, I have to change the no of rows in the table control to 1 row.
Is this possible to do?If else How?
Thanks.You can redefine table control attributes eachtime PBO is called, because those attributes are dynamic. So although you defined tc-lines as 1 in first PBO execution, you can redefine to 2 if some condition is achieved,
One idea could be to create a global var, called tc_lines which is initialized as 1. In your PBO you shoud use: <tc>-lines = tc_lines.
In PAI, when you obtain your condition, you shoud here add or subract one from this global variable.
Regards,
Valter Oliveira. -
Selecting rows in table control
Hi experts,
I have question regarding selecting rows in table control. How can I select a row when a button is pressed. I cannot use the selection column in this case. Is there any option to achieve my requirement without using the selection column. Thanks.
regards,
sriram.By,
Using the Get cursor syntax you can achive the Selected row in Table control.
DATA : selrow TYPE i,
selindex TYPE i .
* getting the cursor line in Table Control for selected row
GET CURSOR FIELD selfield LINE selrow.
selindex = <tablecontrol>-top_line + selrow - 1.
Prabhu -
Disable rows of a table control
Hi Experts,
I want to disable a row in table control, whenever SAVE is pressed.
Scenario: A Table control having 5 rows. User entered data in the first row and pressed SAVE, then
that particular row should become greyed out or disabled, so that the user cant change or edit
anymore.
Thanks
ChandanHi Chandan,
in the PBO write the code to make the field display by the below logic..
first read the table control internal table line and check whether the field is filled if the field had value make it display mode else make it input filed..
see the below logic how to write it..
PROCESS BEFORE OUTPUT.
* Table control for OUTPUT
LOOP AT t_zcxref_classes INTO wa_zcxref_classes
WITH CONTROL tc_batch .
MODULE charac_classname_out.
ENDLOOP.
MODULE charac_classname_out OUTPUT.
* Table control reading values from input screen & displaying on screen
READ TABLE t_zcxref_classes INTO wa_zcxref_classes
INDEX tc_batch-current_line.
* Logic for screen Display when Required Flag = 'D'
IF wa_zcxref_classes-required_flag is not intial. "if the input field has some value making as disaply
LOOP AT SCREEN.
IF screen-name = 'WA_ZCXREF_CLASSES-ATWRT'. "field to make as display
screen-input = 0.
ENDIF.
MODIFY SCREEN.
ENDLOOP.
ENDIF.
ENDMODULE.
Regards,
Prabhudas -
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 make a table control header become two rows?
Hi, all.
May I know how to make the static header/label rown in table control on screen become two rows?
As we know, normally a table control's first row is header, and starting from the second row onwards are it's content or data. So, now I would like to make the hedear/label become first two rows.
Anyone know about it?
Thanks in advance.Hai Lim,
Kindly search in SDN.
"You can't actually have two lines but you can create a title which you may be able to align with the headings to achieve what you want. On the table control tick the 'w/title' box. It then forces you to put an element into a line at the top of the table control."
Regards,
Harish -
Hi Experts,
I am working on module pool Program using " Table Control ".
the below code is a part of program.
" Here i want insert new lines ( New values ). Please tell me that how to Do? "
MODULE USER_COMMAND_0100 INPUT.
SAVE_OK = OK_CODE.
CLEAR OK_CODE.
CASE SAVE_OK.
WHEN 'INSERT'.
" Here i want insert new lines ( New values ). Please tell me that how to Do? "
WHEN 'TOGGLE'.
LOOP AT EMPLOYE-COLS INTO COLS WHERE INDEX GT 2.
IF COLS-SCREEN-INPUT = '0'.
COLS-SCREEN-INPUT = '1'.
ELSEIF COLS-SCREEN-INPUT = '1'.
COLS-SCREEN-INPUT = '0'.
ENDIF.
MODIFY EMPLOYE-COLS FROM COLS INDEX SY-TABIX.
ENDLOOP.
WHEN 'DELETE'.
READ TABLE EMPLOYE-COLS INTO COLS WITH KEY SCREEN-INPUT = '1'.
IF SY-SUBRC = 0.
LOOP AT ITAB INTO ZEMPLOYE WHERE EMPID = 'X'.
DELETE ITAB.
ENDLOOP.
ENDIF.
ENDCASE.
ENDMODULE.
Its Urgent
Thank You.
BasuHi,
WHEN 'INSERT'.
" Here i want insert new lines ( New values ). Please tell me that how to Do? "
<b>Append initial line to EMPLOYE.</b>
Or
Change the table control attribute for rows.
Reward if helpful.
Maybe you are looking for
-
Using analytical function - value with highest count
Hi i have this table below CREATE TABLE table1 ( cust_name VARCHAR2 (10) , txn_id NUMBER , txn_date DATE , country VARCHAR2 (10) , flag number , CONSTRAINT key1 UNIQUE (cust_name, txn_id) INSERT INTO table1 (cust_name, txn_id, txn_date,country,flag)
-
Updated to Quick Time 7 Pro but Can't view trailers
I updated to Quick Time 7 Pro and every thing looks ok when Quick Time is opened. But when I try to view movie trailers on this website it continues to tell me that I need to download Quick Time. Help.
-
Macbook Pro won't start up, won't recognize Macintosh HD, and can't repair disk.
Since the beginning of April 2014 my mid-2012 11" Macbook Pro was experiencing poor performance - user interface was lagging during simple tasks like clicking, typing, and booting up. These bouts of lag, where the spinning beach ball would appear fo
-
If I were traveling overseas how would I turn off the phone but still enable me to connect to WIFI networks only???
-
Firefox not displaying website slider properly but works in other browsers
I am creating a website and the slider image is showing at the side of the website. I am using firefox 20 . It works fine on other browsers and other peoples firefox but for some reason it is not showing correctly on mine. This is the test website ht