You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »


Source Code ActiveX Example 3 - Visual LANSA Source
Reusable Part AXOBJECTA
Reusable Part AXOBJECTB
Source Code ActiveX Example 3 - Reusable Part AXOBJECTA

  • Reusable Part AXOBJECTA
    Function Options(*DIRECT)
    Begin_Com Role(*EXTENDS #PRIM_OBJT)
    Attribute Class(#PRIM_ATTR.AX_TYPELIB) Guid('{F86172A5-3FF2-4864-869A-8B1A435C65CA}') TypeLibName('LANSA_AXOBJECTA_LIB')
    Attribute Class(#PRIM_ATTR.AX_CLASS) Guid('{4FD69BDC-F4F5-4AB2-8869-9708CA6AE921}') ProgId('LANSA.AXOBJECTA')
    Attribute Class(#PRIM_ATTR.AX_IN_INTERFACE)  Guid('{BA8C64E0-5654-472F-92DA-255D6DC8B999}') BaseDispId(0)
    Attribute Class(#PRIM_ATTR.AX_EVT_INTERFACE)  Guid('{AEC6E7D2-D3C9-48B0-8056-C96B7BCE13B5}') BaseDispId(0)
    *
    Define_Com Class(#prim_lcol<#skilcode>) Name(#SkillsCollection) Help('collection of skills for employee')
    DEFINE_COM CLASS(#skilcode) NAME(#tmpSkill) reference(*dynamic)
    Define_Com Class(#AXOBJECTB) Name(#AXOBJECTB)
    Define_Pty Name(uSkills) Get(*COLLECTION #SkillsCollection)
    Attribute Class(#PRIM_ATTR.AX_IN_MEMBER) Dispid(0) Name('uSkills')
  • Property Messages
    DEFINE_PTY NAME(uMessages) GET(*Collection #vMessages) HELP('Message Accessor')
    Attribute Class(#PRIM_ATTR.AX_IN_MEMBER) Dispid(1) Name('uMessages')
    Define_Com Class(#prim_lcol<#STD_TEXTL>) Name(#vMessages)
    *Property LastMessage
    Define_Pty Name(uLastMessage) Get(*auto #vLastMessage)
    Attribute Class(#PRIM_ATTR.AX_IN_MEMBER) Dispid(2) Name('uLastMessage')
    DEFINE_COM CLASS(#STD_TEXTL) NAME(#vLastMessage) reference(*dynamic)
     
  • Property LastStaus
    Define_Pty Name(uLastStatus) Get(*auto #vLastStatus)
    Attribute Class(#PRIM_ATTR.AX_IN_MEMBER) Dispid(3) Name('uLastStatus')
    Define_Com Class(#STD_TEXT) Name(#vLastStatus)
    *
  • Personal Details
    Define_Pty Name(uGiveName) Get(*auto #givename) Set(*auto #givename) Help('Given (first) name')
    Attribute Class(#PRIM_ATTR.AX_IN_MEMBER) Dispid(4) Name('uGiveName')
    Define_Pty Name(uSurname) Get(*auto #surname) Set(*auto #surname) Help('Surname')
    Attribute Class(#PRIM_ATTR.AX_IN_MEMBER) Dispid(5) Name('uSurname')
  • Address Details
    Define_Pty Name(uAddress1) Get(*auto #Address1) Set(*auto #Address1) Help('Number and Street')
    Attribute Class(#PRIM_ATTR.AX_IN_MEMBER) Dispid(6) Name('uAddress1')
    Define_Pty Name(uAddress2) Get(*auto #Address2) Set(*auto #Address2) Help('Suburb')
    Attribute Class(#PRIM_ATTR.AX_IN_MEMBER) Dispid(7) Name('uAddress2')
    Define_Pty Name(uAddress3) Get(*auto #Address3) Set(*auto #Address3) Help('City')
    Attribute Class(#PRIM_ATTR.AX_IN_MEMBER) Dispid(8) Name('uAddress3')
    Define_Pty Name(uPostCode) Get(*auto #PostCode) Set(*auto #PostCode) Help('Postcode')
    Attribute Class(#PRIM_ATTR.AX_IN_MEMBER) Dispid(9) Name('uPostCode')
  • contact numbers
    Define_Pty Name(uBusinessPhone) Get(*auto #PhoneBus) Set(*auto #PhoneBus) Help('Business Phone')
    Attribute Class(#PRIM_ATTR.AX_IN_MEMBER) Dispid(10) Name('uBusinessPhone')
    Define_Pty Name(uHomePhone) Get(*auto #PhoneHme) Set(*auto #PhoneHme) Help('Home phone')
    Attribute Class(#PRIM_ATTR.AX_IN_MEMBER) Dispid(11) Name('uHomePhone')
  • General
    Define_Pty Name(uDepartment) Get(*auto #deptment) Set(*auto #deptment) Help('Department Number')
    Attribute Class(#PRIM_ATTR.AX_IN_MEMBER) Dispid(12) Name('uDepartment')
    Define_Pty Name(uSection) Get(*auto #Section) Set(*auto #Section) Help('Section Code')
    Attribute Class(#PRIM_ATTR.AX_IN_MEMBER) Dispid(13) Name('uSection')
    Define_Pty Name(uSalary) Get(*auto #Salary) Set(*auto #Salary) Help('Yearly Salary')
    Attribute Class(#PRIM_ATTR.AX_IN_MEMBER) Dispid(14) Name('uSalary')
    Define_Pty Name(uNumber) Get(*auto #empno) Set(*auto #empno) Help('Number')
    Attribute Class(#PRIM_ATTR.AX_IN_MEMBER) Dispid(15) Name('uNumber')
    *
    Mthroutine Name(uLoadEmployee)
    Attribute Class(#PRIM_ATTR.AX_IN_MEMBER) Dispid(17) Name('uLoadEmployee')
    Define_Map For(*input) Class(#empno) Name(#uEmpno)
     
    Change Field(#EMPNO) To(#uEMPNO)
    Fetch Fields(*ALL) From_File(PSLMST) With_Key(#EMPNO)
    If_Status Is(*OKAY)
    Invoke Method(#com_owner.uLoadSkills) Uempno(#empno)
    Endif
     
    Endroutine
     
    Mthroutine Name(uSaveEmployee)
    Attribute Class(#PRIM_ATTR.AX_IN_MEMBER) Dispid(18) Name('uSaveEmployee')
    Define_Map For(*RESULT) Class(#io$sts) Name(#O_STATUS)
     
    UPDATE FIELDS(*ALL *excluding #empno) IN_FILE(PSLMST) WITH_KEY(#EMPNO) IO_ERROR(*NEXT) VAL_ERROR(*NEXT)
     
    Set Com(#O_STATUS) Value(#io$sts)
     
    Execute Subroutine(SETLASTMSG)
     
    Endroutine
     
    Mthroutine Name(uLoadSkills)
    Attribute Class(#PRIM_ATTR.AX_IN_MEMBER) Dispid(19) Name('uLoadSkills')
    Define_Map For(*input) Class(#empno) Name(#UEmpno)
     
    Change Field(#EMPNO) To(#uEMPNO)
    Invoke Method(#SkillsCollection.RemoveAll)
     
    Select Fields(#SKILCODE) From_File(PSLSKL) With_Key(#EMPNO)
    Set_Ref #tmpskill to(*create_As #skilcode)
    Set Com(#tmpSkill) Value(#skilcode)
    Invoke Method(#SkillsCollection.Insert) Item(#tmpSkill)
    Endselect
     
    Endroutine
     
  • SETLMSG Saves the last message.
    *
  • Get the Message using Built In Function : GET_MESSAGE
    *
  • This must be invoked in a Subroutine, as the messages will be cleared after
  • leaving or entering any MthRoutine.
    *
  • This is a temporary error mechanism, a better one is coming soon!
    Subroutine Name(SETLASTMSG)
    Define Field(#LASTMSG) Type(*CHAR) Length(80)
    Define Field(#RETCODE) Type(*CHAR) Length(2)
     
    Invoke Method(#vMessages.RemoveAll)
    Set Com(#vLastStatus) Value(IO$STS)
     
    If_Status Is_Not(*OKAY)
    Use Builtin(GET_MESSAGE) To_Get(#RETCODE #LASTMSG)
    DoWhile Cond('#RETCODE = OK')
    set_Ref #vlastmessage to(*create_as #std_textl)
    Set Com(#vLastMessage) Value(#LASTMSG)
    Invoke Method(#vMessages.Insert) Item(#vLastMessage)
    Use Builtin(GET_MESSAGE) To_Get(#RETCODE #LASTMSG)
    Endwhile
    Endif
     
    Endroutine
     
    End_Com
    Source Code ActiveX Example 3-  Reusable Part AXOBJECTB
  • Reusable Part AXOBJECTB
    Function Options(*DIRECT)
    Begin_Com Role(*EXTENDS #PRIM_OBJT)
    Attribute Class(#PRIM_ATTR.AX_TYPELIB) Guid('{9606E0AB-DCC2-426D-8ABE-EEFFB05F5F07}') Typelibname('LANSA_AXOBJECTB_LIB')
    Attribute Class(#PRIM_ATTR.AX_CLASS) Guid('{4261A3BF-BD23-4955-997F-FE4E0EA19999}') Progid('LANSA.AXOBJECTB')
    Attribute Class(#PRIM_ATTR.AX_IN_INTERFACE) Guid('{972B0B94-0740-46D7-AD6F-9BC2142F2A01}') Basedispid(0)
    Attribute Class(#PRIM_ATTR.AX_EVT_INTERFACE) Guid('{A61429A8-0B19-4788-BF8F-8D075B505EE5}') Basedispid(0)
  • employee object
    Define_Com Class(#axobjecta) Name(#Employee) Reference(*dynamic)
  • Collection of employees
    Define_Com Class(#prim_lcol<#axobjecta>) Name(#Employees)
  • Collection Iterator
    Define_Com Class(#prim_lcit<#axobjecta>) Name(#itrEmployees) Reference(*dynamic)
    Define_Com Class(#AXOBJECTA) Name(#AXOBJECTA)
     
    Define_Pty Name(uEmployees) Get(*COLLECTION #employees)
    Attribute Class(#PRIM_ATTR.AX_IN_MEMBER) Dispid(0) Name('uEmployees')
    Define_Pty Name(uCurrentEmployee) Get(*reference #employee)
    Attribute Class(#PRIM_ATTR.AX_IN_MEMBER) Dispid(6) Name('uCurrentEmployee')
     
    Mthroutine Name(uSetCurrentEmployee)
    Attribute Class(#PRIM_ATTR.AX_IN_MEMBER) Dispid(4) Name('uSetCurrentEmployee')
    Define_Map For(*input) Class(#std_num) Name(#index)
    Define_Map For(*RESULT) Class(#prim_boln) Name(#uDirty)
     
    Set Com(#uDirty) Value(#com_false)
    Set_Ref Com(#employee) To(#employees.item<#index.value>)
    If_Ref Com(#employee) Is(*null)
    Set Com(#uDirty) Value(#com_true)
    Endif
     
    Endroutine
     
    Mthroutine Name(uGetNextEmployee)
    Attribute Class(#PRIM_ATTR.AX_IN_MEMBER) Dispid(8) Name('uGetNextEmployee')
    Define_Map For(*RESULT) Class(#prim_boln) Name(#uDirty)
    Define_Com Class(#prim_boln) Name(#EmployeeExists)
     
    Set Com(#udirty) Value(#com_false)
    If_Ref Com(#itremployees) Is_Not(*null)
    Invoke Method(#itrEmployees.MoveNext) Result(#employeeexists)
    If Cond('#employeeexists = #com_true')
    Set_Ref Com(#Employee) To(#itremployees.Current)
    If_Ref Com(#Employee) Is(*null)
    Set Com(#uDirty) Value(#com_true)
    Endif
    Else
    Set Com(#udirty) Value(#com_true)
    Endif
    Else
    Set Com(#udirty) Value(#com_true)
    Endif
     
    If Cond('#uDirty = #com_true')
    Set_Ref Com(#Employee) To(*null)
    Endif
     
    Endroutine
     
    Mthroutine Name(uGetAllEmployees) Help('Get all employees')
    Attribute Class(#PRIM_ATTR.AX_IN_MEMBER) Dispid(1) Name('uGetAllEmployees')
    Define_Map For(*output) Class(#prim_boln) Name(#uDirty)
     
    Invoke Method(#employees.RemoveAll)
    Select Fields(#EMPNO) From_File(PSLMST2)
    Set_Ref Com(#employee) To(*create_as #axobjecta)
    Invoke Method(#Employee.uLoadEmployee) Uempno(#empno)
    Invoke Method(#Employees.Insert) Item(#employee)
    Endselect
     
    Invoke Method(#Employees.CreateIterator) Result(#itrEmployees)
     
    If Cond('#employees.itemcount > 0')
    Set Com(#uDirty) Value(#com_false)
    Else
    Set Com(#uDirty) Value(#com_true)
    Endif
     
    Endroutine
     
    Mthroutine Name(uGetDepartEmployees) Help('Get an individual employee')
    Attribute Class(#PRIM_ATTR.AX_IN_MEMBER) Dispid(2) Name('uGetDepartEmployees')
    Define_Map For(*input) Class(#deptment) Name(#uDepartment)
    Define_Map For(*output) Class(#prim_boln) Name(#uDirty)
     
    Change Field(#DEPTMENT) To(#uDepartment)
    Invoke Method(#employees.RemoveAll)
    Select Fields(#EMPNO) From_File(PSLMST1) With_Key(#DEPTMENT)
    Set_Ref Com(#employee) To(*create_as #axobjecta)
    Invoke Method(#Employee.uLoadEmployee) Uempno(#empno)
    Invoke Method(#Employees.Insert) Item(#employee)
    Endselect
     
    Invoke Method(#Employees.CreateIterator) Result(#itrEmployees)
     
    If Cond('#employees.itemcount > 0')
    Set Com(#uDirty) Value(#com_false)
    Else
    Set Com(#uDirty) Value(#com_true)
    Endif
     
    Endroutine
    End_Com
     
    Source Code ActiveX Example 3 - Visual Basic - Object
    VERSION 5.00
    Begin VB.Form Form1
       Caption         =   "Case 3 - VB"
       ClientHeight    =   8325
       ClientLeft      =   60
       ClientTop       =   345
       ClientWidth     =   4650
       LinkTopic       =   "Form1"
       ScaleHeight     =   8325
       ScaleWidth      =   4650
       StartUpPosition =   3  'Windows Default
       Begin MSComctlLib.ListView lvwemployees
          Height          =   3015
          Left            =   360
          TabIndex        =   15
          Top             =   840
          Width           =   3975
          _ExtentX        =   7011
          _ExtentY        =   5318
          View            =   3
          LabelWrap       =   -1  'True
          HideSelection   =   -1  'True
          FullRowSelect   =   -1  'True
          _Version        =   393217
          ForeColor       =   -2147483640
          BackColor       =   -2147483643
          BorderStyle     =   1
          Appearance      =   1
          NumItems        =   0
       End
       Begin VB.ComboBox StatusMsgBox
          BackColor       =   &H80000013&
          Height          =   315
          Left            =   120
          Style           =   2  'Dropdown List
          TabIndex        =   14
          Top             =   7920
          Width           =   4455
       End
       Begin VB.CommandButton cmdback
          Caption         =   "Back"
          Enabled         =   0   'False
          Height          =   375
          Left            =   1080
          Style           =   1  'Graphical
          TabIndex        =   13
          Top             =   4080
          Width           =   1095
       End
       Begin VB.CommandButton cmdforward
          Caption         =   "Forward"
          Enabled         =   0   'False
          Height          =   375
          Left            =   2520
          Style           =   1  'Graphical
          TabIndex        =   12
          Top             =   4080
          Width           =   1095
       End
       Begin VB.Frame frmEmployeeDetails
          Caption         =   "Employee Details"
          Height          =   3015
          Left            =   360
          TabIndex        =   3
          Top             =   4680
          Width           =   3975
          Begin VB.CommandButton cmdUpdate
             Caption         =   "Update"
             Enabled         =   0   'False
             Height          =   375
             Left            =   1560
             TabIndex        =   11
             Top             =   2400
             Width           =   1095
          End
          Begin VB.TextBox uSalary
             BeginProperty DataFormat
                Type            =   1
                Format          =   "0.00"
                HaveTrueFalseNull=   0
                FirstDayOfWeek  =   0
                FirstWeekOfYear =   0
                LCID            =   3081
                SubFormatType   =   1
             EndProperty
             Height          =   350
             Left            =   1560
             MaxLength       =   11
             TabIndex        =   7
             Text            =   "Salary"
             Top             =   1800
             Width           =   1215
          End
          Begin VB.TextBox uGiveName
             Height          =   350
             Left            =   1560
             TabIndex        =   6
             Text            =   "Give Name"
             Top             =   840
             Width           =   1815
          End
          Begin VB.TextBox uSurname
             Height          =   345
             Left            =   1560
             TabIndex        =   5
             Text            =   "Surname"
             Top             =   1320
             Width           =   1815
          End
          Begin VB.TextBox uNumber
             BackColor       =   &H80000013&
             Enabled         =   0   'False
             Height          =   350
             Left            =   1560
             TabIndex        =   4
             TabStop         =   0   'False
             Top             =   360
             Width           =   1215
          End
          Begin VB.Label lblSalary
             Caption         =   "Salary:"
             Height          =   345
             Left            =   240
             TabIndex        =   10
             Top             =   1800
             Width           =   855
          End
          Begin VB.Label LblName
             Caption         =   "Name:"
             Height          =   225
             Left            =   240
             TabIndex        =   9
             Top             =   840
             Width           =   855
          End
          Begin VB.Label lblnumber
             Caption         =   "Number:"
             Height          =   375
             Left            =   240
             TabIndex        =   8
             Top             =   360
             Width           =   735
          End
       End
       Begin VB.CommandButton cmdSearch
          Caption         =   "Search"
          Default         =   -1  'True
          Height          =   375
          Left            =   2880
          TabIndex        =   2
          Top             =   240
          Width           =   1215
       End
       Begin VB.TextBox uDepartment
          Height          =   350
          Left            =   1800
          TabIndex        =   1
          Text            =   "ADM"
          Top             =   240
          Width           =   495
       End
       Begin VB.Label lblDepartment
          Caption         =   "Department:"
          Height          =   350
          Left            =   480
          TabIndex        =   0
          Top             =   240
          Width           =   1215
       End
    End
    Attribute VB_Name = "Form1"
    Attribute VB_GlobalNameSpace = False
    Attribute VB_Creatable = False
    Attribute VB_PredeclaredId = True
    Attribute VB_Exposed = False
    Source Code ActiveX Example 3 - Visual Basic - Code
    Option Explicit
    Public Session    As LANSA_ACTIVEX_LIB.Session
    Dim axobjecta As LANSA_AXOBJECTA_LIB.axobjecta
    Dim axobjectb As LANSA_AXOBJECTB_LIB.axobjectb
     
    Dim gbDirty As Boolean
    Dim gbDepartment As String * 3
    Dim lvwindex As Long
     
    Private Sub Form_Load()
       
        ' login to LANSA using default user, password and session location
        If Session Is Nothing Then
             Call ConnectToLansa("<user name>", "<password>", "<session.cfg path>")
        End If
       
        Set axobjecta = Session.CreateComponent("AXOBJECTA")
        Set axobjectb = Session.CreateComponent("AXOBJECTB")
       
        ' dynamically create columns for list view
        MakeColumns
       
        GetEmployees ("")
     
    End Sub
     
    Private Sub GetEmployees(ByVal gbDepartment)
     
        StatusMsgBox.Clear
        StatusMsgBox.AddItem ("Building Employee List")
        ' build collection of all employees for initial display
        If gbDepartment = "" Then
            ' build collection of all employees
            Call axobjectb.uGetAllEmployees(gbDirty)
        Else
            Call axobjectb.uGetDepartEmployees(gbDepartment, gbDirty)
        End If
       
            StatusMsgBox.Clear
        If UCase(gbDirty) = True Then ' if returned in error
            StatusMsgBox.AddItem ("Error when building list")
        Else:
             NewAddListItems ' add items to list
            StatusMsgBox.AddItem ("Employees selected")
            
        End If
       
    End Sub
     
    Private Sub cmdSearch_Click()
     
    cmdback.Enabled = False
    cmdforward.Enabled = False
     
        StatusMsgBox.Clear
       
        StatusMsgBox.AddItem ("Building Employees for Department")
        ' build collection of all employees for initial display
        Call axobjectb.uGetDepartEmployees(uDepartment, gbDirty)
        If gbDirty = True Then
        StatusMsgBox.AddItem ("Department not found")
        ' clear list view
            lvwemployees.ListItems.Clear
        Else:
            ' add items to list
            NewAddListItems ' add items to list
        StatusMsgBox.AddItem (Str$(axobjectb.uEmployees.ItemCount) + " Employees selected")
        End If
       
    End Sub
     
    Private Sub NewAddListItems()
    Dim employeeli As ListItem
    Dim employeesi As ListSubItem
    Dim employeeobject As LANSA_AXOBJECTA_LIB.axobjecta
     
    On Error GoTo ErrorHandler
     
    ' clear list view
        lvwemployees.ListItems.Clear
     
        gbDirty = axobjectb.uGetNextEmployee
     
    Do While gbDirty = False
        lvwindex = lvwindex + 1
        Set employeeobject = axobjectb.uCurrentEmployee
        Set employeeli = lvwemployees.ListItems.Add(, _
                                    employeeobject.uNumber)
        Call employeeli.ListSubItems.Add(, "surname", employeeobject.uSurname)
        Call employeeli.ListSubItems.Add(, "department", employeeobject.uDepartment)
        Call employeeli.ListSubItems.Add(, "givenname", employeeobject.uGiveName)
        Call employeeli.ListSubItems.Add(, "salary", employeeobject.uSalary)
        gbDirty = axobjectb.uGetNextEmployee
    Loop
     
    Exit Sub      ' Exit to avoid handler.
    ErrorHandler:   ' Error-handling routine.
        MsgBox ("Error :" + Err.Description)
    End Sub
     
    Private Sub lvwemployees_ItemClick(ByVal Item As ListItem)
    On Error GoTo ErrorHandler
    Dim employeeli As ListItem
     
        cmdback.Enabled = True
        cmdforward.Enabled = True
        cmdUpdate.Enabled = True
       
        Set employeeli = lvwemployees.SelectedItem
        lvwindex = Item.Index
        Call GetEmployee(lvwindex)
       
    Exit Sub      ' Exit to avoid handler.
    ErrorHandler:   ' Error-handling routine.
        MsgBox ("Error :" + Err.Description)
     
    End Sub
     
    Private Sub GetEmployee(lvwindex)
    Dim employeeobject As LANSA_AXOBJECTA_LIB.axobjecta
     
    On Error GoTo ErrorHandler
     
        Call axobjectb.uSetCurrentEmployee(lvwindex)
        Set employeeobject = axobjectb.uCurrentEmployee
      
        uNumber = employeeobject.uNumber
        uSurname = employeeobject.uSurname
        uGiveName = employeeobject.uGiveName
        uSalary = employeeobject.uSalary
     
    Exit Sub      ' Exit to avoid handler.
    ErrorHandler:   ' Error-handling routine.
        MsgBox ("Error :" + Err.Description)
     
    End Sub
     
    Private Sub cmdback_Click()
     
        If lvwindex > 1 Then
            lvwindex = lvwindex - 1
            GetEmployee (lvwindex)
        End If
     
    End Sub
     
    Private Sub cmdforward_Click()
     
        If lvwindex < lvwemployees.ListItems.Count Then
            lvwindex = lvwindex + 1
        End If
        GetEmployee (lvwindex)
     
    End Sub
     
    Private Sub cmdUpdate_Click()
    Dim Status As String
    Dim employeeobject As LANSA_AXOBJECTA_LIB.axobjecta
     
    On Error GoTo ErrorHandler
     
    If uSalary = "" Then uSalary = 0
        Set employeeobject = axobjectb.uCurrentEmployee
        With employeeobject
            .uGiveName = uGiveName
            .uSurname = uSurname
            .uSalary = uSalary
        End With
        Status = employeeobject.uSaveEmployee
        ' Clear the Messages from the Message Combo
        StatusMsgBox.Clear
        If (Status = "OK") Then
            MsgBox ("Successfully updated " + employeeobject.uNumber)
        Else
            Call ShowMessages(Status, employeeobject)
            MsgBox ("Error Updating " + employeeobject.uNumber + " : " + Status)
        End If
       
    Exit Sub      ' Exit to avoid handler.
    ErrorHandler:   ' Error-handling routine.
        MsgBox ("Error :" + Err.Description)
    End Sub
     
    Private Sub ShowMessages(ByRef Status As String, ByRef employeeobject As LANSA_AXOBJECTA_LIB.axobjecta)
        Dim msgField As Object
    On Error GoTo ErrorHandler
       
        For Each msgField In employeeobject.uMessages
            StatusMsgBox.AddItem (msgField.Value())
        Next
      
        ' Select the first entry in the combo box
        If (StatusMsgBox.ListCount = 0) Then
            StatusMsgBox.AddItem ("Status = '" + Status + "'")
        End If
        StatusMsgBox.ListIndex = 0
       
    Exit Sub      ' Exit to avoid handler.
    ErrorHandler:   ' Error-handling routine.
        MsgBox ("Error :" + Err.Description)
    End Sub
     
    Private Sub MakeColumns()
     
       ' Clear the ColumnHeaders collection.
       lvwemployees.ColumnHeaders.Clear
       ' Add four ColumnHeaders.
       lvwemployees.ColumnHeaders.Add , , "", 0
       lvwemployees.ColumnHeaders.Add , , "Surname", 1500
       lvwemployees.ColumnHeaders.Add , , "Department"
       lvwemployees.ColumnHeaders.Add , , "Given Name"
       lvwemployees.ColumnHeaders.Add , , "Salary"
      
       lvwemployees.View = lvwReport
           
    End Sub
     
    Private Sub ConnectToLansa(ByVal username As String, ByVal password As String, ByVal txtlocation As String)
    On Error GoTo ErrorHandler
     
        Set Session = New LANSA_ACTIVEX_LIB.Session
       
        ' Set the session configuration file
        Session.ConfigFile = txtlocation
       
        Call Session.SetConnectParam("USER", username)
        Call Session.SetConnectParam("PSPW", password)
       
        Call Session.Connect
       
    Exit Sub      ' Exit to avoid handler.
    ErrorHandler:   ' Error-handling routine.
        MsgBox ("Error :" + Err.Description)
    End Sub
     
     
     
     

  • No labels