⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 frmlistset.frm

📁 金算盘软件代码
💻 FRM
📖 第 1 页 / 共 2 页
字号:
        Else
            If mclsListSet.FixColumns <= index Then
                lstAll.AddItem .Text
                lstAll.Text = .Text
                .RemoveItem index
            Else
                MsgBox "“" & strText & "”是固定栏目!", vbOKOnly, Me.Caption
            End If
        End If

        If .ListCount > 0 Then
            .ListIndex = IIf(index < .ListCount, index, .ListCount - 1)
        End If
    End With
    RefreshButton
    RefreshUpDown
End Sub

Private Sub cmdRightAll_Click()
    Dim i As Integer
    Dim Count As Integer

    With lstAll
        Count = .ListCount
        For i = 0 To Count - 1
            lstSelected.AddItem .list(0)
            .RemoveItem 0
        Next
        lstSelected.ListIndex = 0
    End With
    RefreshButton
    RefreshUpDown
End Sub

Private Sub cmdRightOne_Click()
    Dim index As Integer

    With lstAll
        index = .ListIndex
        lstSelected.AddItem .Text
        lstSelected.Text = .Text
        .RemoveItem index
        If .ListCount > 0 Then
            .ListIndex = IIf(index < .ListCount, index, .ListCount - 1)
        End If
    End With
    RefreshButton
    RefreshUpDown
End Sub

Private Sub cmdSerial_Click(index As Integer)
    Dim strTemp As String

    With lstSelected
        Select Case index
            Case 0
                strTemp = .list(.ListIndex)
                .list(.ListIndex) = .list(.ListIndex - 1)
                .list(.ListIndex - 1) = strTemp
                .ListIndex = .ListIndex - 1
            Case 1
                strTemp = .list(.ListIndex)
                .list(.ListIndex) = .list(.ListIndex + 1)
                .list(.ListIndex + 1) = strTemp
                .ListIndex = .ListIndex + 1
        End Select
    End With
End Sub

Private Sub Form_Load()
    frmMain.Enabled = False
    SetHelpID 10008
    txtName.Enabled = False
    RefreshButton
    Set Me.Icon = Utility.GetFormResPicture(139, vbResIcon)
End Sub

Private Sub Form_Unload(Cancel As Integer)
    frmMain.Enabled = True
    mblnNameChange = False
    mblnNotRespond = False
    mblnLoad = False
    Utility.RemoveFormResPicture 139
    Set Me.Icon = Nothing
End Sub

Private Sub lstAll_DblClick()
    cmdRightOne_Click
    RefreshButton
    RefreshUpDown
End Sub

Private Sub lstAll_GotFocus()
    RefreshButton
    RefreshUpDown
End Sub

Private Sub lstSelected_Click()
    If mblnNotRespond Then
        Exit Sub
    End If
    mblnNotRespond = True
    EditName
    If lstSelected.ListIndex = -1 Then
        Exit Sub
    End If
    cmbOrder.ListIndex = GetNoXString(GetNoXString(lstSelected.Text, 2, Space(100)), 3, "~")
    txtName = GetNoXString(lstSelected.Text, 1, Space(100))
    If Trim(txtName) <> "" And Not txtName.Enabled Then
        txtName.Enabled = True
    End If
    mblnNameChange = False
'********************************************
'ozj make it as following on 1999-12-28
    RefreshButton
'*********************************************
    RefreshUpDown
    mintLastIndex = lstSelected.ListIndex
    mblnNotRespond = False
End Sub

Private Function EditName() As Boolean
  Dim strNew As String, strErr As String, strList As String
  Dim intCount As Integer
  
   If Me.ActiveControl Is cmdCancel Or txtName.Enabled = False Or Not mblnNameChange Then
      EditName = True
      Exit Function
   End If
   EditName = False
   mblnNotRespond = True
   If Report.NameIsErr(txtName.Text, strErr) Then
       Utility.ShowMsg Me.hWnd, "栏目名称中包含非法字符“" & strErr & "”!", vbOKOnly, App.title
       txtName.SetFocus
       lstSelected.ListIndex = mintLastIndex
       Exit Function
   End If
   
   If Trim(txtName.Text) = "" Then
       ShowMsg Me.hWnd, "栏目名称不能为空!", vbOKOnly, App.title
       txtName.SetFocus
       lstSelected.ListIndex = mintLastIndex
       Exit Function
   End If
   
   For intCount = 0 To lstSelected.ListCount - 1
       If intCount <> mintLastIndex Then
            strList = GetNoXString(lstSelected.list(intCount), 1, Space(100))
            If UCase(Trim(txtName.Text)) = UCase(Trim(strList)) Then
                ShowMsg Me.hWnd, "栏目名称重复,请重新录入!", vbOKOnly, App.title
                txtName.SetFocus
                lstSelected.ListIndex = mintLastIndex
                Exit Function
            End If
       End If
   Next intCount
   
   For intCount = 0 To lstAll.ListCount - 1
        strList = GetNoXString(lstAll.list(intCount), 1, Space(100))
        If UCase(Trim(txtName.Text)) = UCase(Trim(strList)) Then
            ShowMsg Me.hWnd, "栏目名称重复,请重新录入!", vbOKOnly, App.title
            txtName.SetFocus
            lstSelected.ListIndex = mintLastIndex
            Exit Function
        End If
   Next intCount
   
   If mblnNameChange Then
      strNew = ChangeTag(lstSelected.list(mintLastIndex), txtName.Text, 1, Space(100), "~")
      lstSelected.list(mintLastIndex) = strNew
      mblnNameChange = False
   End If
   EditName = True
   mblnNotRespond = False

End Function

Private Sub lstSelected_DblClick()
    cmdLeftOne_Click
    RefreshButton
    RefreshUpDown
End Sub

Private Sub RefreshUpDown()
   With lstSelected
      If .ListIndex + 1 = mclsListSet.FixColumns Then
          If .ListIndex > 0 Then
              cmdSerial(0).Enabled = True
          Else
              cmdSerial(0).Enabled = False
          End If
          cmdSerial(1).Enabled = False
      End If
      If .ListIndex + 1 < mclsListSet.FixColumns Then
          If .ListIndex > 0 Then
              cmdSerial(0).Enabled = True
          Else
              cmdSerial(0).Enabled = False
          End If
          cmdSerial(1).Enabled = True
      End If
      If .ListIndex + 1 > mclsListSet.FixColumns Then
          If .ListIndex > mclsListSet.FixColumns Then
             cmdSerial(0).Enabled = True
          Else
             cmdSerial(0).Enabled = False
          End If
          If .ListIndex < .ListCount - 1 Then
              cmdSerial(1).Enabled = True
          Else
              cmdSerial(1).Enabled = False
          End If
      End If
      If .ListIndex = -1 Then
          cmdSerial(0).Enabled = False
          cmdSerial(1).Enabled = False
      End If
   End With
End Sub

Private Sub RefreshButton()
   If lstAll.ListCount = 0 Then
      cmdRightAll.Enabled = False
   Else
      cmdRightAll.Enabled = True
   End If
   If lstAll.ListIndex = -1 Then
      cmdRightOne.Enabled = False
   Else
      cmdRightOne.Enabled = True
   End If

   If lstSelected.ListCount = 0 Then
      cmdLeftAll.Enabled = False
   Else
      cmdLeftAll.Enabled = True
   End If
   If lstSelected.ListIndex = -1 Then
      cmdLeftOne.Enabled = False
   Else
      cmdLeftOne.Enabled = True
   End If
   On Error Resume Next
   If lstSelected.ListCount = mclsListSet.FixColumns Then
      cmdLeftOne.Enabled = False
      cmdLeftAll.Enabled = False
   End If
'**************************************
'ozj make it as following on  1999-12-28
    If lstSelected.ListIndex + 1 <= mclsListSet.FixColumns Then
      cmdLeftOne.Enabled = False
   End If
End Sub

'初始化列表设置
Public Function SetList(clsListSet As ListSet, Optional ChangeName As Boolean = True) As Boolean
 Dim intCount As Integer
   If mblnLoad Then
      Exit Function
   End If
   mblnLoad = True
   lstAll.Clear
   lstSelected.Clear
   Set mclsListSet = clsListSet
   
   ReGetChoosed
   GetMayChoose
   mblnNameChange = False
   RefreshButton
   RefreshUpDown
   txtName.Visible = ChangeName
   LblName.Visible = ChangeName
   Me.Show vbModal
   If mblnOk Then
       SetList = True
   End If
End Function

'通过类的属性取已选栏目
Private Sub ReGetChoosed()
  Dim intCount As Integer
  Dim strAdd As String
   With mclsListSet
      For intCount = 1 To .Columns
                strAdd = .ColumnDesc(intCount) & Space(100) & .ColumnFieldName(intCount) & "~" & .ColumnWidth(intCount) & _
                         "~" & .ColumnOrderType(intCount) & "~" & .ColumnIsFix(intCount) & "~" & .ColumnIsFind(intCount) & _
                         "~" & .ColumnFieldID(intCount) & "~" & .ColumnFieldType(intCount) & "~" & .ColumnFieldSize(intCount) & "~" & .ColumnIsMust(intCount) & "~" & .ColumnFormat(intCount) & "~" & .ColumnNotZero(intCount) & "~" & .ColumnGroup(intCount)
                lstSelected.AddItem strAdd
      Next intCount
   End With
End Sub

'取可选栏目
Private Sub GetMayChoose()
   Dim rstMayChoose As rdoResultset
   Dim strSql As String, strOrder As String, strCondVersion As String
   Dim strCond As String
   Dim rstTemp As rdoResultset
   Dim strNotIn As String
   
   strCondVersion = " And (Mod (ViewField.bytVersion, " & gVersionType * 2 & ")>=" & gVersionType & ")"
   If gclsBase.AccountSys = "3" Or gclsBase.AccountSys = "4" Then
      strCondVersion = strCondVersion & " And blnNotHospital=False"
   End If
   
   If mclsListSet.FirstUse Then
      strSql = "Select * from View1,ViewField Where View1.lngViewID=" & mclsListSet.ViewId & _
               " And View1.lngViewId=ViewField.lngViewId And ViewField.blnIsChoose=1 And Not (ViewField.blnIsFixed=1 Or Viewfield.blnIsMust=1" & _
               " Or ViewField.blnIsPrep=1)" & strCondVersion
      strOrder = " Order By lngViewFieldNO"
      Set rstMayChoose = gclsBase.BaseDB.OpenResultset(strSql & strOrder, rdOpenStatic)
   Else
        strSql = "Select * from ViewField,ListField Where ListField.lngListID=" & mclsListSet.ListID & _
                 " And ViewField.lngViewFieldID=ListField.lngViewFieldID And ListField.blnIsChoosed=0" & strCondVersion
   End If
   
   Set rstMayChoose = gclsBase.BaseDB.OpenResultset(strSql)

   With rstMayChoose
       Do While Not .EOF
            If mclsListSet.FirstUse Then
                lstAll.AddItem !strViewFieldDesc & Space(100) & !strFieldName & "~" & _
                                Utility.GetDisplayWidth(!strViewFieldDesc, !bytFieldSize) & "~" & 0 & "~" & !blnIsFixed & "~" & _
                                !blnIsFind & "~" & !lngViewFieldID & "~" & !strFieldType & "~" & !bytFieldSize & "~" & !blnIsMust & "~" & !bytFormat & "~" & !blnNotZero & "~" & !strGroup
            Else
                lstAll.AddItem !strViewFieldDesc & Space(100) & !strFieldName & "~" & _
                                Utility.GetDisplayWidth(!strViewFieldDesc, !bytFieldSize) & "~" & 0 & "~" & !blnIsFixed & "~" & _
                                !blnIsFind & "~" & .rdoColumns("lngviewFieldId") & "~" & !strFieldType & "~" & !bytFieldSize & "~" & !blnIsMust & "~" & !bytFormat & "~" & !blnNotZero & "~" & !strGroup
            End If
            .MoveNext
       Loop
   End With
   Set rstMayChoose = Nothing
End Sub

Private Sub lstSelected_GotFocus()
   RefreshButton
   RefreshUpDown
End Sub

Private Sub txtName_Change()
   mblnNameChange = True
   If LenB(StrConv(txtName.Text, vbFromUnicode)) > 30 Then BKKEY txtName.hWnd
End Sub

Private Sub txtName_LostFocus()
   EditName
End Sub

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -