Sub ssCol2Chn (ByVal GridName As String, Tbl As TrueGrid)
'Example: On Form_Load event, call ssCol2Chn to perform
' conversion :-
' ssCol2Chn GridTitle, Form
Dim tbXlate As Table
Dim btbOpened As Integer, OpenRetry As Integer
Dim szCap As String
Dim DelimAt As Integer
Dim i As Integer, MatchStr As String
Dim ret As Integer
Dim nCol As Integer
Dim oldCursor As Integer
Dim fdApplName As Field, fdFormName As Field
Dim fdItemName As Field
Dim fdEngText As Field, fdAltText As Field
oldCursor = Screen.MousePointer
Screen.MousePointer = HOURGLASS
nCol = Tbl.Columns
If (nCol <= 0) Then
Screen.MousePointer = oldCursor
Exit Sub
End If
ReDim bXlated(1 To nCol) As Integer
OpenRetry = 0
OpenC2CErrRetry:
On Error GoTo errCol2Chn
If (G_SaveCaption) Then
Set tbXlate = g_helpdb.OpenTable("LangXlate")
Else
Set tbXlate = g_helpdb.OpenTable("LangXlate", DB_READONLY)
End If
btbOpened = True
tbXlate.Index = "PrimaryKey"
Set fdApplName = tbXlate!ApplName
Set fdFormName = tbXlate!FormName
Set fdItemName = tbXlate!ItemName
Set fdEngText = tbXlate!EngText
Set fdAltText = tbXlate!AltText
If G_SaveCaption Then
On Error GoTo errC2CNoCaption
For i = 1 To Tbl.Columns
szCap = Trim$(Tbl.ColumnName(i))
DelimAt = InStr(szCap, ":")
If (DelimAt > 0) Then
szCap = Trim$(Left$(szCap, DelimAt - 1))
End If
tbXlate.Seek "=", gAppName, GridName, szCap
If (Not tbXlate.NoMatch) Then
If (G_Sess.Language = "C") Then
Tbl.ColumnName(i) = NVL(fdAltText, "")
Else
Tbl.ColumnName(i) = NVL(fdEngText, "")
End If
bXlated(i) = True
ElseIf (gAppName <> "" And GridName <> "" And szCap <> "") Then
tbXlate.AddNew
fdApplName = gAppName
fdFormName = GridName
fdItemName = szCap
fdEngText = szCap
tbXlate.Update
End If
errC2CNoCaption:
If (Err <> 0) Then Resume errC2CSkipNoCaption
errC2CSkipNoCaption:
Next i
Else
tbXlate.Seek ">=", gAppName, GridName, ""
Do
If (tbXlate.NoMatch) Then Exit Do
If (UCase$(fdApplName) <> UCase$(gAppName) Or UCase$(fdFormName) <> UCase$(GridName)) Then
Exit Do
End If
MatchStr = fdItemName
For i = 1 To nCol
szCap = Tbl.ColumnName(i)
DelimAt = InStr(szCap, ":")
If (DelimAt > 0) Then
szCap = Trim$(Left$(szCap, DelimAt - 1))
End If
If (UCase$(szCap) = UCase$(MatchStr)) Then
If (G_Sess.Language = "C") Then
Tbl.ColumnName(i) = NVL(fdAltText, "")
Else
Tbl.ColumnName(i) = NVL(fdEngText, "")
End If
bXlated(i) = True
End If
Next i
tbXlate.MoveNext
Loop
If (pXlateTable <> 0) Then
Dim szEngText As String * 50, szAltText As String * 50
Dim szBaseCap As String, szExtension As String
For i = 1 To nCol
If (Not bXlated(i)) Then
szCap = UCase$(Tbl.ColumnName(i))
DelimAt = InStr(szCap, ":")
If (DelimAt > 0) Then
szBaseCap = Trim$(Left$(szCap, DelimAt - 1))
szExtension = Mid$(szCap, DelimAt + 1)
Else
szBaseCap = szCap
szExtension = ""
End If
ret = TranslateWord(pXlateTable, szBaseCap, szEngText, Len(szEngText), szAltText, Len(szAltText))
If (ret > 0) Then
If (G_Sess.Language = "C") Then
szBaseCap = Trim$(TrimNull(szAltText))
Else
szBaseCap = Trim$(TrimNull(szEngText))
End If
If (DelimAt > 0) Then
Tbl.ColumnName(i) = szBaseCap & " :" & szExtension
Else
Tbl.ColumnName(i) = szBaseCap
End If
End If
End If
Next i
End If
End If
errCol2Chn:
If (btbOpened) Then
tbXlate.Close
Else
If OpenRetry <= 5 Then
On Error Resume Next
OpenRetry = OpenRetry + 1
g_helpdb.Close
Set g_helpdb = OpenDatabase(FullPath(G_Sess.WorkFilePath, "HELP.MDB"), False, True)
GoTo OpenC2CErrRetry:
End If
End If
Screen.MousePointer = oldCursor
Exit Sub
End Sub