Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

     Public Type FIELD_DETAIL

...

         fieldLen As Long
    flags As Long
End Type
 
Public Const TOTAL_FIELDS = 2
 
Sub SetSkillsList()
    ' reads all skill descriptions and populates the skill list
    On Error Resume Next
    
    Dim iRet As Integer
    Dim i As Integer
    Dim sBuff As String
    Dim sTemp As String
    Dim iPos As Long
    Dim iLovalPos As Long
    Dim fldData(TOTAL_FIELDS) As FIELD_DETAIL
 
    ' remove any previous query results
    iRet = LceDeleteSelect(iSession, "SKLTAB")
    
    '

...

 Request select
    ' Set Select to IMMEDIATE MODE is recommended to increase speed
    iRet = LceSetSelectOptions(iSession, "*RECEIVEIMMED")

...

         iRet = LceRequestSelect(iSession,

...

 "SKILCODE,SKILDESC",

...

 "SKLTAB",

...

 _
           "",

...

 False)
 
    '

...

 Clear previous selection
    sBuff = String(FIELD_DATA_SIZE,

...

 Chr(0))
    lstSkills.Clear

...

         ReDim SkillKey(0)

...

         i = 0 ' reset counter
 
    '

...

Read all records selected
    While LceReceiveNextX(iSession,

...

 sBuff,

...

 FIELD_DATA_SIZE,

...

 fldData(0),

...

 TOTAL_FIELDS)

...

 =

...

 LceTrue
        ReDim Preserve SkillKey(i + 1) ' resize array key
 
        iPos = 1
       If (fldData(i).flags = 1) Then

...

                 ' Display error as key field should not be Null
        Else
            sTemp = Trim(Mid(sBuff,

...

 iPos,

...

 fldData(0).fieldLen))

...

                 iLovalPos = InStr(1,

...

 sTemp,

...

 Chr(0),

...

 vbTextCompare)

...

                 If iLovalPos > 0 Then
                sTemp = Trim(Left(sTemp,

...

 iLovalPos - 1))

...

                 End If
 

...

                 SkillKey(i) = sTemp 
 

...

                 iPos = iPos + fldData(0).fieldLen
 

...

                 If (fldData

...

(i).flags = 1) Then
                '

...

 Value is SQLNULL 
                sTemp = "No description provided"
            Else
                sTemp = Trim(Mid(sBuff,

...

 iPos,

...

 fldData(1).fieldLen))

...

                     iLovalPos = InStr(1,

...

 sTemp,

...

 Chr(0),

...

 vbTextCompare)

...

                     If iLovalPos > 0 Then
                    sTemp = Trim(Left(sTemp,

...

 iLovalPos - 1))

...

                     End If
            End If
 
            lstSkills.

...

AddItem sTemp 
        End If
 

...

             i = i + 1 ' increment index
 
    Wend
    '

...

 select first record
    If lstSkills.ListCount > 0 Then lstSkills.ListIndex = 0
End Sub