112 lines
3.9 KiB
OpenEdge ABL
112 lines
3.9 KiB
OpenEdge ABL
' ============================================================
|
|
' Module Name: Master_222
|
|
' Module Desc: Z1 master data management (222)
|
|
' Module Methods:
|
|
' - Validate
|
|
' ============================================================
|
|
'
|
|
Public Sub Validate(ws As Worksheet, ByVal rowNum As Long, ByVal lastDataRow As Long)
|
|
|
|
Dim sheetConfDict As Object: Set sheetConfDict = GetSheetConfig()
|
|
Dim sheetConf As Object: Set sheetConf = sheetConfDict(ws.CodeName)
|
|
|
|
Dim startCol As String: startCol = sheetConf("StartCol")
|
|
Dim endCol As String: endCol = sheetConf("EndCol")
|
|
Dim errorCol As String: errorCol = sheetConf("ErrorCol")
|
|
|
|
' clear C~I columns background color
|
|
Dim clearRange As Range: Set clearRange = ws.Range(ws.Cells(rowNum, startCol), ws.Cells(rowNum, endCol))
|
|
clearRange.Interior.Color = vbWhite
|
|
|
|
Dim cValue As String: cValue = Trim(ws.Cells(rowNum, 3).Value)
|
|
If cValue = "" Then
|
|
ws.Cells(rowNum, errorCol).Value = "C column is required"
|
|
ws.Cells(rowNum, 3).Interior.Color = RGB(255, 0, 0)
|
|
Exit Sub
|
|
End If
|
|
|
|
If Len(cValue) <> 3 Then
|
|
ws.Cells(rowNum, errorCol).Value = "C column must be 3 characters"
|
|
ws.Cells(rowNum, 3).Interior.Color = RGB(255, 0, 0)
|
|
Exit Sub
|
|
End If
|
|
|
|
Dim i As Long
|
|
Dim ch As String
|
|
For i = 1 To 3
|
|
ch = Mid(cValue, i, 1)
|
|
If Not ((ch >= "0" And ch <= "9") Or (ch >= "A" And ch <= "Z") Or (ch >= "a" And ch <= "z")) Then
|
|
ws.Cells(rowNum, errorCol).Value = "C column must be alphanumeric"
|
|
ws.Cells(rowNum, 3).Interior.Color = RGB(255, 0, 0)
|
|
Exit Sub
|
|
End If
|
|
Next i
|
|
|
|
Dim dValue As String
|
|
dValue = Trim(ws.Cells(rowNum, 4).Value)
|
|
If dValue = "" Then
|
|
ws.Cells(rowNum, errorCol).Value = "D column is required"
|
|
ws.Cells(rowNum, 4).Interior.Color = RGB(255, 0, 0)
|
|
Exit Sub
|
|
End If
|
|
If Len(dValue) > 80 Then
|
|
ws.Cells(rowNum, errorCol).Value = "D column must be within 80 characters"
|
|
ws.Cells(rowNum, 4).Interior.Color = RGB(255, 0, 0)
|
|
Exit Sub
|
|
End If
|
|
|
|
Dim eValue As String
|
|
eValue = Trim(ws.Cells(rowNum, 5).Value)
|
|
If eValue = "" Then
|
|
ws.Cells(rowNum, errorCol).Value = "E column is required"
|
|
ws.Cells(rowNum, 5).Interior.Color = RGB(255, 0, 0)
|
|
Exit Sub
|
|
End If
|
|
If Len(eValue) > 80 Then
|
|
ws.Cells(rowNum, errorCol).Value = "E column must be within 80 characters"
|
|
ws.Cells(rowNum, 5).Interior.Color = RGB(255, 0, 0)
|
|
Exit Sub
|
|
End If
|
|
|
|
Dim fValue As String
|
|
fValue = Trim(ws.Cells(rowNum, 6).Value)
|
|
If fValue <> "" And Len(fValue) > 80 Then
|
|
ws.Cells(rowNum, errorCol).Value = "F column must be within 80 characters"
|
|
ws.Cells(rowNum, 6).Interior.Color = RGB(255, 0, 0)
|
|
Exit Sub
|
|
End If
|
|
|
|
Dim gValue As String
|
|
gValue = Trim(ws.Cells(rowNum, 7).Value)
|
|
If gValue <> "" And Len(gValue) > 80 Then
|
|
ws.Cells(rowNum, errorCol).Value = "G column must be within 80 characters"
|
|
ws.Cells(rowNum, 7).Interior.Color = RGB(255, 0, 0)
|
|
Exit Sub
|
|
End If
|
|
|
|
Dim hValue As String
|
|
hValue = Trim(ws.Cells(rowNum, 8).Value)
|
|
If hValue <> "" Then
|
|
If Len(hValue) <> 1 Then
|
|
ws.Cells(rowNum, errorCol).Value = "H column must be 1 digit"
|
|
ws.Cells(rowNum, 8).Interior.Color = RGB(255, 0, 0)
|
|
Exit Sub
|
|
End If
|
|
If hValue <> "0" And hValue <> "1" Then
|
|
ws.Cells(rowNum, errorCol).Value = "H column must be 0 or 1"
|
|
ws.Cells(rowNum, 8).Interior.Color = RGB(255, 0, 0)
|
|
Exit Sub
|
|
End If
|
|
End If
|
|
|
|
Dim iValue As String
|
|
iValue = Trim(ws.Cells(rowNum, 9).Value)
|
|
If iValue <> "" And Len(iValue) > 80 Then
|
|
ws.Cells(rowNum, errorCol).Value = "I column must be within 80 characters"
|
|
ws.Cells(rowNum, 9).Interior.Color = RGB(255, 0, 0)
|
|
Exit Sub
|
|
End If
|
|
|
|
ws.Cells(rowNum, errorCol).ClearContents
|
|
End Sub
|