'**********************************************************************************************************
'Function Name: funGetColumnNumberFromJavaTable
'Purpose : This function will return the column number from the JAVA Table based on the column name passed
'Parameters: ip_objTable: Object Table
' ip_strExpectedColName: Expected column Name
' ip_intStartColNum: Start index from this point search for the expected column will start
' ip_blnIsRelativeComparison: Pass this parameter as False if column name is to be matched with exact column header
' else pass as True for relative compartison
'Return value "": If Expected column is not found
'Example: returnValue = funGetColumnNumberFromJavaTable(objLeftGrid, "Item", 0, False)
'**********************************************************************************************************
Public Function funGetColumnNumberFromJavaTable(ByRef ip_objTable, ip_strExpectedColName, ip_intStartColNum, ip_blnIsRelativeComparison)
'<<< Default Return value is set as empty >>>
funGetColumnNumberFromJavaTable = ""
Dim intColCnt, intColIndex, strColName
intColCnt = ip_objTable.GetROProperty("cols")
'<<< Extract the cell value from given row number starting from the mentioned start index for column >>>
For intColIndex = ip_intStartColNum To intColCnt - 1
strColName = ip_objTable.GetColumnName(intColIndex)
'<<< Using Instr function for relative comparison based upon the flag value passed >>>
If ip_blnIsRelativeComparison = True Then
If Instr(UCase(Trim(strColName)),UCase(Trim(ip_strExpectedColName))) Then
funGetColumnNumberFromJavaTable = intColIndex
Exit Function
End If
Else
If UCase(Trim(strColName)) = UCase(Trim(ip_strExpectedColName)) Then
funGetColumnNumberFromJavaTable = intColIndex
Exit Function
End If
End If
Next
End Function
'**********************************************************************************************************
'Function Name: Fun_ExpandJavaTable
'Purpose : This function will exapnd the grid based on the value cell details passed
'Parameters: ip_objTable: Object Table
'Return value 0: If succeeded
' 1: If Fails
'Example: returnValue = Fun_ExpandJavaTable(objLeftGrid)
'**********************************************************************************************************
Public Function Fun_ExpandJavaTable(ByRef ip_objTable)
Dim intExpandableColNum, strExpandableColName
Fun_ExpandJavaTable = 0 'indicates success
intExpandableColNum = funGetColumnNumberFromJavaTable(ip_objTable, "(+)", 0, False)
If Trim(CStr(intExpandableColNum)) = "" Then
Fun_ReportFailure "Expandworklist grid", "Unable to find the expandable column with name as (+)", Browser("Browser Main")
Fun_ExpandJavaTable = 1 'indicates failure
End If
strExpandableColName = ip_objTable.GetColumnName(intExpandableColNum)
ip_objTable.SelectColumnHeader strExpandableColName
Wait intConstShortWaitTime
intExpandableColNum = funGetColumnNumberFromJavaTable(ip_objTable, "(-)", 0, False)
If Trim(CStr(intExpandableColNum)) = "" Then
Fun_ReportFailure "Expandworklist grid", "Unable to expand the java table", Browser("Browser Main")
Fun_ExpandJavaTable = 1 'indicates failure
End If
End Function
'**********************************************************************************************************
'Function Name: fun_GetLotRowNumberWithDetails
'Purpose : This function will return the expected lot under the javatable
'Parameters: ip_objGridLeftGrid: Object Left Table which contains Item Lot information
' ip_objGridRightGrid: Object Right Table which contains Item details information
' ip_strItemNum: Expected Item Number EX: 5889550
' ip_strLineNum: Expected Line Number under the given lot EX: 0108
' ip_strColNameCollection: Column name details EX: "SSC#|Whse PO #| Engine Status"
' ip_strColValueCollection: Expected value collection: "258|9564|Running"
'Return value "": If Fails
' ROw number: If succeeds in finding a row
'Example: returnValue = fun_GetLotRowNumberWithDetails(objLeftGrid, objRightGrid, "5889550", "0108", "SSC#|Whse PO #| Engine Status", "258|9564|Running")
'**********************************************************************************************************
Public Function fun_GetLotRowNumberWithDetails(ip_objGridLeftGrid,ip_objGridRightGrid, ip_strItemNum, ip_strLineNum, ip_strColNameCollection, ip_strColValueCollection)
Dim arrColNameCollection, arrValueCollection, intExpectedColIndex, intRowCount, intRowIndex
Dim blnDetailsMatched, intDetailsIndex, strActualValue, strLineValue, intItemColNum
Dim arrColNumCollection
Dim intFindItemNumIndex, strItemNum
fun_GetLotRowNumberWithDetails = "" 'indicates failure
intItemColNum = funGetColumnNumberFromJavaTable(ip_objGridLeftGrid, "Item", 0, False)
If Trim(intItemColNum) = "" Then
Fun_ReportFailure "Find Columns", "Unable to find the column with name as Item", Browser("Browser Main")
fun_GetLotRowNumberWithDetails = "" 'indicates failure
Exit Function
End If
arrColNameCollection = Split(ip_strColNameCollection, "|")
arrValueCollection = Split(ip_strColValueCollection, "|")
ReDim arrColNumCollection(UBound(arrColNameCollection))
For intExpectedColIndex = 0 To UBound(arrColNameCollection)
arrColNumCollection(intExpectedColIndex) = funGetColumnNumberFromJavaTable(ip_objGridRightGrid, Trim(arrColNameCollection(intExpectedColIndex)), 0, False)
If Trim(arrColNumCollection(intExpectedColIndex)) = "" Then
Fun_ReportFailure "Find Columns", "Unable to find the column with name as:" & arrColNameCollection(intExpectedColIndex), Browser("Browser Main")
fun_GetLotRowNumberWithDetails = "" 'indicates failure
Exit Function
End If
Next
intRowCount = ip_objGridLeftGrid.GetROProperty("rows")
For intRowIndex = 0 To intRowCount - 1
blnDetailsMatched = True
For intDetailsIndex = 0 To UBound(arrValueCollection)
strActualValue = ip_objGridRightGrid.GetCellData(intRowIndex, arrColNumCollection(intDetailsIndex))
Select Case UCase(Trim(arrValueCollection(intDetailsIndex)))
Case "BLANK"
If Trim(strActualValue) <> "" Then
blnDetailsMatched = False
Exit For
End If
Case "NON BLANK"
If Trim(strActualValue) = "" Then
blnDetailsMatched = False
Exit For
End If
Case Else
If Trim(strActualValue) <> Trim(arrValueCollection(intDetailsIndex)) Then
blnDetailsMatched = False
Exit For
End If
End Select
Next
If blnDetailsMatched = True Then
strLineValue = ip_objGridLeftGrid.GetCellData(intRowIndex, intItemColNum)
If Trim(strLineValue) = Trim(ip_strLineNum) Then
For intFindItemNumIndex = intRowIndex - 1 To 0 Step -1
strItemNum = Trim(ip_objGridLeftGrid.GetCellData(intFindItemNumIndex, intItemColNum))
If Len(strItemNum) = 7 Then
If Trim(strItemNum) = Trim(ip_strItemNum) Then
fun_GetLotRowNumberWithDetails = intFindItemNumIndex
Exit Function
Else
Exit For
End If
End If
Next
End If
End If
Next
End Function
'**********************************************************************************************************
'Function Name: fun_GetLotRowNumberWithoutDetails
'Purpose : This function will return the expected lot under the javatable
'Parameters: ip_objLeftGrid: Object Left Table which contains Item Lot information
' ip_strItemNum: Expected Item Number EX: 5889550
' ip_strLineNum: Expected Line Number under the given lot EX: 0108
'Return value "": If Fails
' ROw number: If succeeds in finding a row
'Example: returnValue = fun_GetLotRowNumberWithoutDetails(objLeftGrid, "5889550", "0108")
'**********************************************************************************************************
Public Function fun_GetLotRowNumberWithoutDetails(ip_objLeftGrid, ip_strItemNum, ip_strLineNum)
Dim intRowCount, intItemColNum, intRowIndex, strLineValue, intFindItemNumIndex, strItemNum
fun_GetLotRowNumberWithoutDetails = ""
intRowCount = ip_objLeftGrid.GetROProperty("rows")
intItemColNum = funGetColumnNumberFromJavaTable(ip_objLeftGrid, "Item", 0, False)
If Trim(Cstr(intItemColNum)) = "" Then
Fun_ReportFailure "Validate Item column", "Unable to find column with name Item", Browser("Browser Main")
fun_GetLotRowNumberWithoutDetails = ""
Exit Function
End If
For intRowIndex = 0 To intRowCount - 1
strLineValue = ip_objLeftGrid.GetCellData(intRowIndex, intItemColNum)
If Trim(strLineValue) = Trim(ip_strLineNum) Then
For intFindItemNumIndex = intRowIndex - 1 To 0 Step -1
strItemNum = Trim(ip_objLeftGrid.GetCellData(intFindItemNumIndex, intItemColNum))
If Len(strItemNum) = 7 Then
If Trim(strItemNum) = Trim(ip_strItemNum) Then
fun_GetLotRowNumberWithoutDetails = intFindItemNumIndex
Else
Exit For
End If
End If
Next
End If
Next
End Function
'**********************************************************************************************************
'Function Name: Fun_SelectingRows
'Purpose : This Function will Select Rows depending on Line Item,Lot Number,Warehouse Number, Source DI
'Parameters: ip_objLeftGrid: Object Left Table which contains Item Lot information
' ip_objRightGrid: Object Right Table which contains Source DI and WarehouseDetails
' ip_strItemsToBeSelected: Expected Item Numbers to be selected EX: "5230304|L|2965"
' ip_strSourceDI: Expected Source DI numbers to be Selected EX: "77793247-00"
'Return value "": If Fails
' ROw number: If succeeds in finding a row
'Example: Fun_SelectingRows = fun_GetLotRowNumberWithoutDetails(objLeftGrid,ip_objRightGrid, "5230304##9764|L|2965", "77793247-00")
'**********************************************************************************************************
Function Fun_SelectingRows(ByRef ip_objLeftGrid, ByRef ip_objRightGrid, ip_strItemsToBeSelected, ip_strSourceDI)
Dim strMatchedRowCollection,arrSourceDINumCollection,intItemIndex,arrItemCollection,arrItemDetails
Dim arrItemWarehouseDetails,intTryIndex,strUpdatedSourceDIValue,intMatchedRow,arrSourceDI
strMatchedRowCollection = ""
'<<< Select items based on the Source DI also along with item no and line no>>>
arrItemCollection = Split(ip_strItemsToBeSelected, ",")
If Trim(ip_strSourceDI) <> "" Then
arrSourceDINumCollection = Split(ip_strSourceDI, ",")
End If
For intItemIndex = 0 To UBound(arrItemCollection)
arrItemDetails = Split(arrItemCollection(intItemIndex), "|")
If Instr(arrItemDetails(0), "##") Then
arrItemWarehouseDetails = Split(arrItemDetails(0), "##")
If Trim(ip_strSourceDI) <> "" Then
'<<< Getting Row Number with Warehouse Details and Source DI>>>
'<<< Ignoring the -00, -01, -02 -03 >>>
arrSourceDI = Split(arrSourceDINumCollection(intItemIndex), "-")
For intTryIndex = 0 To 3
strUpdatedSourceDIValue = arrSourceDI(0) & "-0" & CStr(intTryIndex)
intMatchedRow = fun_GetLotRowNumberWithDetails(ip_objLeftGrid, ip_objRightGrid, arrItemWarehouseDetails(0), arrItemDetails(2), "PO Whse #|Source DI #", arrItemWarehouseDetails(1) & "|" & strUpdatedSourceDIValue)
If CStr(intMatchedRow) <> "" Then
'<<< Indicates expected row with source DI is found >>>
Exit For
End If
Next
Else
'<<< Getting Row Number with Warehouse Details and without Source DI>>>
intMatchedRow = fun_GetLotRowNumberWithDetails(ip_objLeftGrid, ip_objRightGrid, arrItemWarehouseDetails(0), arrItemDetails(2), "PO Whse #", arrItemWarehouseDetails(1))
End If
Else
'<<< Getting Row Number without Warehouse Details with Source DI>>>
If Trim(ip_strSourceDI) <> "" Then
'<<< Ignoring the -00, -01, -02 -03 >>>
arrSourceDI = Split(arrSourceDINumCollection(intItemIndex), "-")
For intTryIndex = 0 To 3
strUpdatedSourceDIValue = arrSourceDI(0) & "-0" & CStr(intTryIndex)
intMatchedRow = fun_GetLotRowNumberWithDetails(ip_objLeftGrid, ip_objRightGrid, arrItemDetails(0), arrItemDetails(2), "Source DI #", strUpdatedSourceDIValue)
If CStr(intMatchedRow) <> "" Then
'<<< Indicates expected row with source DI is found >>>
Exit For
End If
Next
Else
'<<< Getting Row Number without Warehouse Details and Source DI>>>
intMatchedRow = fun_GetLotRowNumberWithoutDetails(ip_objLeftGrid, arrItemDetails(0), arrItemDetails(2))
End If
End If
If CStr(intMatchedRow) <> "" Then
ip_objLeftGrid.SelectCell intMatchedRow, 0
strMatchedRowCollection = strMatchedRowCollection & "|" & Cstr(intMatchedRow)
Else
'<<< Expected Row with Lot and Source DI details not found >>>
Fun_ReportFailure "Validate if Row with Lot and Source DI details found", "Validate if Row with Lot and Source DI details found", Browser("Browser Main")
ExitComponentIteration
End If
Next
Fun_SelectingRows = Right(strMatchedRowCollection, Len(strMatchedRowCollection) - 1)
End Function
No comments:
Post a Comment