MODULE DESCRIPTION: Routines and utilities to work on SQA Type=JavaTable objects in Data-Driven Automation.Action Commands Global Variables Routine Details
SUPPORTED ACTION COMMANDS: ClickCell 'Click on a specified x,y cell DoubleClickCell 'DoubleClick on a specified x,y cell RightClickCell 'RightClick on a specified x,y cell SelectCell 'Same as ClickCell ActivateCell 'Same as DoubleClickCell AssignCellTextRow 'Extract row # based on multiple exact column matches AssignCellContainsTextRow 'Extract row # based on multiple fuzzy column matches AssignVariableCellText 'Extract cell text based on exact parameters AssignVariableFuzzyCellText 'Extract cell text based on fuzzy parameters VerifyCellText 'Verify cell text based on exact parameters VerifyFuzzyCellText 'Verify cell text based on fuzzy parameters VerifyCellTextContains 'Verify cell text based on exact parameters VerifyFuzzyCellTextContains 'Verify cell text based on fuzzy parameters SelectCellText 'Select a cell based on exact parameters SelectCellTextFind 'Select a cell based on multiple column matches SelectFuzzyCellTextFind 'Select a cell based on multiple column matches SelectCellContainsTextFind 'Select a cell based on multiple column matches CaptureRangeToFile 'Output a range of cells to a file. CaptureFuzzyRangeToFile 'Output a range of cells to a file based on fuzzy parameters
(none)
Sub JavaTableClick (Optional action) DESCRIPTION: Tries to perform a standard Click on a cell in a JavaTable. The command uses the same format for: ClickCell Single Click (same as "SelectCell") DoubleClickCell Double Click (same as "ActivateCell") RightClickCell Right Click SelectCell Single Click (same as "ClickCell") ActivateCell Double Click (same as "DoubleClickCell") Typical Data Table records: (1) t, JavaWin, JTable, Click (2) t, JavaWin, JTable, Click, 3, 4 #1 above should merely click in the table at cell 1,1. #2 above will click at cell defined by row/col 3,4 in the table. PARAMETERS: action The SQABasic CONSTANT to use (Click, DblClick, RightClick, etc.) DATA TABLE PARAMETERS: FLD CONTENT --- ------------------------------ 5 (OPTIONAL) The row of the cell in the row/col specification. Defaults to 1. Rows are 1-based. 6 (OPTIONAL) The column of the cell in the row/col specification. Defaults to 1. Columns are 1-based. ERRORS: none Orig Author: Bernd Weber Orig Date: JUN 05, 2002 History: JUN 05, 2002 Original Release FEB 10, 2003 (CANAGL) Added post-click verification. JUL 11, 2004 (CANAGL) mod to use selectCellRowColumn. OCT 19, 2004 (bolawl) Mod to build ColumnNames() and send it to selectCellRowColumn() APR 19, 2004 (CANAGL) If specified Row is not numeric attempt Generic Click command. OCT 17, 2005 (CANAGL) Added support for RightClick
Sub PerformFindCellCommands (mode As Integer) DESCRIPTION: Attempts to select a cell and/or assign variable values in the identified column based on matching the values in N number of other columns. In addition, the provided variable will receive the row # that satisfied the search. "Assign" commands will also capture the value of the cell in the target column into a second variable. Note, if you supply the name of the variable and include the leading caret (^) symbol then the variable must be enclosed in quotes. Otherwise, that variable will be used like any other variable and the substituted value of that variable will be interpretted as the name of the variable you wish to use. "Contains" or "Fuzzy" versions of commands allow for case-insensitive comparisons matching substrings of actual table values. MODE = 1 signifies to use "fuzzy", substring matching logic. DATA TABLE PARAMETERS: FLD CONTENT --- ------------------------------ 5 The name of the Variable to receive the row#. GetTrimmedQuotedField will be used to extract the name of the variable. This also is the 'root' variable name for any "Assign" commands that extract the value of a cell into a variable 'root'.Value Note, if you supply the name of the variable and include the leading caret (^) symbol then the variable must be enclosed in quotes. Otherwise, that variable will be used like any other variable and the substituted value of that variable will be interpretted as the name of the variable you wish to use. 6 The target column for the cell selection/value assignment on the deduced row. Defaults to 1. Columns are 1-based. Alternatively, this can be a unique field header text value. "Select/Find" commands will select the target cell. "Assign/Row" commands will store the cell value into a variable with the root name defined in field #5 and a ".Value" suffix. Thus, if field #5 contains "TableRow", the value variable will be "TableRow.Value". 7n The column to search for the provided 8n value. Defaults to 1. Columns are 1-based. Alternatively, this can be a unique field header text value. 8n The value to locate in the provided 7n column. 9n+ (Optional) Additional col/value pairs like 7n/8n. As many of these 10n+ field pairs can be supplied as necessary to uniquely match the desired row based on cell contents. If a col/value pair search fails we will attempt to use those that have succeeded to find a unique row. ERRORS: none Orig Author: Carl Nagle Orig Date: JUL 09, 2004 History: JUL 11, 2004 Original Release Oct 19, 2004 (bolawl) Mod to include table2DData() and ColumnNames() in calls to getColumnIndices() and selectCellRowColumn().
Sub AssignVariable (mode As Integer) DESCRIPTION: Attempts to extract a particular cell value and assign it to the provided variable name. Note, if you supply the name of the variable and include the leading caret (^) symbol then the variable must be enclosed in quotes. Otherwise, that variable will be used like any other variable and the substituted value of that variable will be interpretted as the name of the variable you wish to use. Typical Data Table records: T, JavaWin, JTable, AssignVariableCellText, AVariableName Assign the value of cell 1,1 in JTable to DDVariable ^AVariableName. T, JavaWin, JTable, AssignVariableCellText, "AVariableName", 1 , 1 Assign the value of cell 1,1 in JTable to DDVariable ^AVariableName. T, JavaWin, JTable, AssignVariableCellText, "^AVariableName", 4, "Field5" Assign the value of cell 4, Field5 in JTable to DDVariable ^AVariableName. The column is determined by matching the text "Field5" to the field headers in the JTable. C, SetVariableValues, ^AVariableName="NextVariableName" T, JavaWin, JTable, AssignVariableCellText, ^AVariableName, "ADatum", 5 Assign the value of cell ADatum,5 in JTable to DDVariable ^NextVariableName. The row is determined by matching the text "ADatum" to the first cell in column 1 in the JTable that contains "ADatum". The "Assign...Fuzzy..." version of this function will allow case-insensitive substring matches during the evaluation of column 1 row text and header fields. DATA TABLE PARAMETERS: FLD CONTENT --- ------------------------------ 5 The name of the Variable to receive the value. GetTrimmedQuotedField will be used to extract the name of the variable. Note, if you supply the name of the variable and include the leading caret (^) symbol then the variable must be enclosed in quotes. Otherwise, that variable will be used like any other variable and the substituted value of that variable will be interpretted as the name of the variable you wish to use. 6 (OPTIONAL) The row of the cell in the row/col specification. Defaults to 1. Rows are 1-based. Alternatively, this can be a unique cell value in column 1. 7 (OPTIONAL) The column of the cell in the row/col specification. Defaults to 1. Columns are 1-based. Alternatively, this can be a unique field header text value. The "Assign...Fuzzy..." version of this function will allow case-insensitive substring matches during the evaluation of column 1 row text and header fields. ERRORS: none Orig Author: Carl Nagle Orig Date: FEB 05, 2003 History: FEB 05, 2003 Original Release FEB 08, 2003 (CANAGL) Modified the "Contains" keyword to use "Fuzzy" instead. OCT 19, 2004 (bolawl) Mod to include output param ColumnNames() in call to getRowColCellIndices().
Sub VerifyCellText (cellmode as Integer, matchmode as Integer) DESCRIPTION: Attempts to verify a particular cell value. Typical Data Table records: T, JavaWin, JTable, VerifyCellText, AValue Compares the value of cell 1,1 in JTable to "AValue". T, JavaWin, JTable, VerifyCellText, "AValue", 1 , 1 Compares the value of cell 1,1 in JTable to "AValue". T, JavaWin, JTable, VerifyCellText, ^AVariableName, 4, "Field5" Compares the value of cell 4, Field5 in JTable to the value stored in ^AVariableName. The column is determined by matching the text "Field5" to the field headers in the JTable. T, JavaWin, JTable, VerifyCellText, ^AVariableName, "ADatum", 5 Compares the value of cell ADatum,5 in JTable to the value stored in ^AVariableName. The row is determined by matching the text "ADatum" to the first cell in column 1 in the JTable that contains "ADatum". The "VerifyFuzzy..." version of this function will allow case-insensitive substring matches during the evaluation of column 1 row text and header fields. The "Verify...Contains" version of this function will allow case-insensitive substring matches during the comparison of the cell value and the benchmark text. DATA TABLE PARAMETERS: FLD CONTENT --- ------------------------------ 5 The benchmark value for the comparison. 6 (OPTIONAL) The row of the cell in the row/col specification. Defaults to 1. Rows are 1-based. Alternatively, this can be a unique cell value in column 1. 7 (OPTIONAL) The column of the cell in the row/col specification. Defaults to 1. Columns are 1-based. Alternatively, this can be a unique field header text value. The "VerifyFuzzy..." version of this function will allow case-insensitive substring matches during the evaluation of column 1 row text and header fields. The "Verify...Contains" version of this function will allow case-insensitive substring matches during the comparison of the cell value and the benchmark text. ERRORS: none Orig Author: Carl Nagle Orig Date: FEB 07, 2003 History: FEB 07, 2003 Original Release OCT 19, 2004 (bolawl) Mod to include output param ColumnNames() in call to getRowColCellIndices().
Sub SelectCellText (mode as Integer) DESCRIPTION: Attempts to select a particular cell. Typical Data Table records: T, JavaWin, JTable, SelectCellText Selects cell 1,1 in JTable. T, JavaWin, JTable, SelectCellText, 1 , 1 Selects cell 1,1 in JTable. T, JavaWin, JTable, SelectCellText, 4, "Field5" Selects 4, Field5 in JTable. The column is determined by matching the text "Field5" to the field headers in the JTable. T, JavaWin, JTable, SelectCellText, "ADatum", 5 Selects cell ADatum,5 in JTable. The row is determined by matching the text "ADatum" to the first cell in column 1 in the JTable that contains "ADatum". The "SelectFuzzy..." version of this function will allow case-insensitive substring matches during the evaluation of column 1 row text and header fields. DATA TABLE PARAMETERS: FLD CONTENT --- ------------------------------ 5 (OPTIONAL) The row of the cell in the row/col specification. Defaults to 1. Rows are 1-based. Alternatively, this can be a unique cell value in column 1. 6 (OPTIONAL) The column of the cell in the row/col specification. Defaults to 1. Columns are 1-based. Alternatively, this can be a unique field header text value. The "SelectFuzzy..." version of this function will allow case-insensitive substring matches during the evaluation of column 1 row text and header fields. ERRORS: none Orig Author: Carl Nagle Orig Date: FEB 10, 2003 History: FEB 10, 2003 Original Release JUL 11, 2004 (CANAGL) mod to use selectCellRowColumn. Oct 19, 2004 (bolawl) Mod to include table2DData() and ColumnNames() in calls to getRowColCellIndices() and selectCellRowColumn()
Sub RangeToFile (mode As Integer) DESCRIPTION: Captures a range of cell values into the specified file. Typical Data Table records: T, JavaWin, JTable, CaptureRangeToFile, AFileName.txt Save the values of the entire table to <project>\Datapool\Test\AFileName.txt This is because no range beginning or end parameters were provided. T, JavaWin, JTable, CaptureRangeToFile, AFileName.txt, 1 , 1 Save the values of the entire table to <project>\Datapool\Test\AFileName.txt This is because we were told to start at the first cell and no parameters were provided specifying how many rows or columns to capture. T, JavaWin, JTable, CaptureRangeToFile, AFileName.txt, 4, "Field5", 2, 5 Save the values starting from cell 4, Field5 in JTable to <project>\Datapool\Test\AFileName.txt The column is determined by matching the text "Field5" to the field headers in the JTable. 2 rows and 5 columns will be copied starting from the specified cell. T, JavaWin, JTable, CaptureRangeToFile, AFileName.txt, "ADatum", 5, , 2 Save the values starting from cell ADatum,5 in JTable to <project>\Datapool\Test\AFileName.txt The row is determined by matching the text "ADatum" to the first cell in column 1 in the JTable that contains "ADatum". All subsequent rows for the specified 2 columns will be captured. The "CaptureFuzzy..." version of this function will allow case-insensitive substring matches during the evaluation of column 1 row text and header fields. DATA TABLE PARAMETERS: FLD CONTENT --- ------------------------------ 5 The filename to receive the values. 6 (OPTIONAL) The row of the cell in the row/col specification. Defaults to 1. Rows are 1-based. Alternatively, this can be a unique cell value in column 1. 7 (OPTIONAL) The column of the cell in the row/col specification. Defaults to 1. Columns are 1-based. Alternatively, this can be a unique field header text value. 8 (OPTIONAL) The number of rows to capture. If not provided, capture up to the last row. 9 (OPTIONAL) The number of columns to capture. If not provided, capture up to the last column. 10 (* FUTURE *) Optional File Filter to use during processing. 11 (* FUTURE *) Optional Filter options for the File Filter. The "CaptureFuzzy..." version of this function will allow case-insensitive substring matches during the evaluation of column 1 row text and header fields. ERRORS: none Orig Author: Carl Nagle Orig Date: FEB 12, 2003 History: FEB 12, 2003 Original Release OCT 19, 2004 (bolawl) Mod to include output param ColumnNames() in call to getRowColCellIndices().
Sub Main () DESCRIPTION: Entry point to process a StepDriver ACTION COMMAND on a JavaTable. The routine merely reads the Global StepDriverTestInfo.testcommand and calls the appropriate subroutine to process it. If the testcommand is unrecognized it will be processed by the GenericMasterFunctions.GenericUnimplementedCommand routine. DATA TABLE PARAMETERS: none - the called subroutine has the requirements ERRORS: none Orig Author: Bernd Weber Orig Date: Jun 05, 2002 History: JUN 05, 2002 Original Release OCT 17, 2002 (CANAGL) Reroute fallback to GenericObjectFunctions. OCT 22, 2002 (CANAGL) Warn of unimplemented TF and TW record types. DEC 12, 2002 (CANAGL) Added support for XSLComponentActions.MAP FEB 04, 2003 (CANAGL) Removed remnants of moved VP support. FEB 05, 2003 (CANAGL) Added AssignVariable commands. FEB 07, 2003 (CANAGL) Added Verify... ande SelectCellText... commands. FEB 10, 2003 (CANAGL) Added SelectCellText and SelectFuzzyCellText commands. FEB 12, 2003 (CANAGL) Added CaptureRangeToFile commands. JUL 11, 2004 (CANAGL) Added Assign/Row and Select/Find commands. OCT 17, 2005 (CANAGL) Added RightClickCell support.
Copyright (2001,2002,2003) Bernd Weber This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License Version 2 as published by the Free Software Foundation. This license version can be viewed in its entirety at: http://www.opensource.org/licenses/gpl-license.php THIS CODE IS PROVIDED "AS IS". THERE ARE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR ANY PARTICULAR PURPOSE, AND NONINFRINGEMENT. IN NO EVENT SHALL ANYONE BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY ARISING IN CONNECTION WITH THE CODE OR ITS USE. You should have received a copy of the GNU General Public License along with this program; if not, write to: the Free Software Foundation, Inc., 59 Temple Place, Suite 330 Boston, MA 02111-1307 USA ===============================================================================