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

📄 frmlistjobitem.frm

📁 金算盘软件代码
💻 FRM
📖 第 1 页 / 共 3 页
字号:
        mclsMainControl_EditEdit
     ElseIf lngX = 0 Then
'        If .CellFormula(0, lngY) <> cboFindKind.Text Then '双击排序
'            cboFindKind.Text = .CellFormula(0, lngY)
'        End If
        If lngY < 2 Then Exit Sub
        If .CellFormula(0, lngY) <> "" Then
                mclsList.SaveListSet
                If lngY > cboFindKind.ListCount + 1 Then Exit Sub
                If lngY - 1 <> mclsList.SortCol Then
                    .CellFormula(0, mclsList.SortCol + 1) = Left(.CellFormula(0, mclsList.SortCol + 1), Len(.CellFormula(0, mclsList.SortCol + 1)) - 1)
                    On Error Resume Next
                    cboFindKind.Text = .CellFormula(0, lngY)
                    On Error GoTo 0
                Else
                    On Error Resume Next
                    cboFindKind.Text = Left(.CellFormula(0, mclsList.SortCol + 1), Len(.CellFormula(0, mclsList.SortCol + 1)) - 1)
                    On Error GoTo 0
                End If
        End If
    End If
    End With
End Sub

Private Sub pctDataGrid_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
    If Button = vbRightButton Then
        Form_MouseDown Button, Shift, x, y
    End If
End Sub

Private Sub pctDataGrid_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
    Dim lngX As Long
    Dim lngY As Integer
    
    With mclsList.DbTabCtrl
        .MouseCell lngX, lngY
    If lngY = 1 Then
           pctDataGrid.MousePointer = vbCustom
    Else
         pctDataGrid.MousePointer = vbDefault
    End If
    End With
End Sub

Private Sub pctDataGrid_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)
    Dim lngX As Long
    Dim lngY As Integer
    With mclsList.DbTabCtrl
        If Button = vbLeftButton Then
            If chkShowall.Value = 1 And .Row < .Rows And .Row > 0 Then
                .MouseCell lngX, lngY
                If lngX <> 0 And lngY = 1 Then
                    pctDataGrid.MousePointer = flexHourglass
                    mclsMainControl_EditInActive
                    pctDataGrid.MousePointer = flexDefault
                End If
            End If
            UpdateEditMenuStatus
        ElseIf Button = vbRightButton Then
            Form_MouseDown Button, Shift, x, y
        End If
  End With
End Sub


'根新编辑菜单
Private Sub UpdateEditMenuStatus()
    Dim i As Integer
    Dim lngVoucherID As Long
    Dim blnIsnotEmpty As Boolean
    Dim blnFindNoChange As Boolean
    Dim blnHaveRows As Boolean
    Dim blnHaveInActive As Boolean
On Error Resume Next
    If mclsList.DbTabCtrl.Rows = 1 Then
        blnHaveRows = False
    Else
        blnHaveRows = True
    End If
    If mclsList.DbTabCtrl.Row > 0 And mclsList.DbTabCtrl.Row <= mclsList.TotalRow(mclsList.intTab) Then
        blnIsnotEmpty = True
        mclsList.Resultset(mclsList.intTab).AbsolutePosition = mclsList.DbTabCtrl.Row
        If Trim(mclsList.Resultset(mclsList.intTab).rdoColumns("在建工程编码").Value) <> "" Then
            blnHaveInActive = True
        Else
            blnHaveInActive = False
        End If
    Else
        blnIsnotEmpty = False
    End If
    
    
    
        
    With frmMain
                        
        '注意:《修改》《删除》《作废》永远可见
        
        .mnuEditEdit.Enabled = blnIsnotEmpty And blnEdit
        .mnuEditNew.Enabled = blnEdit And False
        .mnuEditDel.Enabled = blnIsnotEmpty And blnEdit ' And blnEdit
        
        .mnuEditInActive.Checked = False
        .mnuEditInActive.Enabled = blnIsnotEmpty And blnEdit And blnHaveInActive  'And Trim(grdList.TextMatrix(grdList.Row, 1)) = ""
        If chkShowall.Value = 1 Then
            .mnuEditShowAll.Checked = True
        Else
            .mnuEditShowAll.Checked = False
        End If
        If chkShowall.Enabled = True Then
            .mnuEditShowAll.Enabled = True
        Else
            .mnuEditShowAll.Enabled = False
        End If
        .mnuEditColumn.Enabled = True
        .mnuEditFilter.Enabled = True
        .mnuFilePrint.Enabled = True
        .mnuToolRefresh.Enabled = True
        
        .mnuEditEdit.Caption = "修改(&E)"
        .mnuEditNew.Caption = "新增(&N)"
        .mnuEditDel.Caption = "删除(&D)"
        
        .mnuEditInActive.Caption = "作废(&H)"
        .mnuEditShowAll.Caption = "全部显示(&W)"
        .mnuEditInActive.Visible = False
        .mnuFilePrintSetup.Enabled = True
    End With
    cmdEAR(1).Enabled = blnIsnotEmpty And blnIsDetailPro
    cmdEAR(3).Enabled = blnIsnotEmpty And blnIsDetailPro
    mblnIsFindTextChange = False
    With mclsList
    If mclsList.DbTabCtrl.Row = 0 Then  '无当前选定行
        txtFind.Text = ""
        cmdAgain.Enabled = False
    Else
        If .DbTabCtrl.Row < .TotalRow(.intTab) + 1 Then
            '.Resultset(.intTab).Move .DbTabCtrl.Row - 1, 1
            On Error Resume Next
            .Resultset(.intTab).AbsolutePosition = .DbTabCtrl.Row
            txtFind.Text = .Resultset(.intTab).rdoColumns(.SortCol + 1)
        End If
    End If
    End With
    mblnIsFindTextChange = True
    frmMain.SetToolBar
End Sub

Private Sub mclsMainControl_ListEditMenu(ByVal intIndex As Integer)
    If mclsList.ListSet.ListID < 1 Then
       mclsList.ListSet.SaveList
       DefaultCurrentDate mclsList.ListSet.ListID, 9975
    End If
    Select Case intIndex
    Case 0: '修改
        'mclsMainControl_EditEdit
        mblnEdit = True
    Case 1: '新增工程
        'mclsMainControl_EditNew
        mblnNewProject = True
'        frmProjectCard.AddCard
'        Set frmProjectCard = Nothing
        
    Case 2 '新增合同
        mblnNewProjectOrder = True
'        frmProjOrderCard.AddCard
'        Set frmProjOrderCard = Nothing
    Case 3: '删除
        mclsMainControl_EditDel
    Case 5 '停用
        mclsMainControl_EditInActive
    Case 6: '全部显示
        mclsMainControl_EditShowAll
    Case 8: '引用
    
    Case 9: '筛选
        mclsMainControl_EditFilter
    Case 10: '栏目设置
         mclsMainControl_EditColumn
    Case 12: '刷新
        mclsMainControl_ToolRefresh
    Case 13: '打印
        mclsMainControl_FilePrint
    End Select
    mclsList.Resultset(mclsList.intTab).Requery
    'Me.Refresh
    mclsList.DbTabCtrl.Refresh
End Sub
Private Sub MakeListEditMenu()
    Dim intCnt As Integer
    With frmMain
        For intCnt = .mnuListEditMenu.Count - 1 To 1 Step -1
            Unload .mnuListEditMenu(intCnt)
        Next
        
        Utility.CloneMenu .mnuEditEdit, .mnuListEditMenu(0)
        
        Load .mnuListEditMenu(1)
        .mnuListEditMenu(1).Caption = "新增工程(&J)"
        .mnuListEditMenu(1).Enabled = blnEdit
        
        Load .mnuListEditMenu(2)
        .mnuListEditMenu(2).Caption = "新增合同(&K)"
        .mnuListEditMenu(2).Enabled = blnEdit
        
        Load .mnuListEditMenu(3)
        Utility.CloneMenu .mnuEditDel, .mnuListEditMenu(3)
        .mnuListEditMenu(3).Caption = "删除(&D)"
        
        Load .mnuListEditMenu(4)
        Utility.CloneMenu .mnuEditBar2, .mnuListEditMenu(4)
        
        Load .mnuListEditMenu(5)
        Utility.CloneMenu .mnuEditInActive, .mnuListEditMenu(5)
        .mnuListEditMenu(5).Caption = "停用(&H)"
        .mnuListEditMenu(5).Visible = True
        
        Load .mnuListEditMenu(6)
        Utility.CloneMenu .mnuEditShowAll, .mnuListEditMenu(6)
        .mnuListEditMenu(6).Caption = "全部显示(&W)"
        .mnuListEditMenu(6).Visible = True
        
        Load .mnuListEditMenu(7)
        Utility.CloneMenu .mnuEditBar2, .mnuListEditMenu(7)
        .mnuListEditMenu(7).Visible = True
        
        Load .mnuListEditMenu(8)
        Utility.CloneMenu .mnuEditUse, .mnuListEditMenu(8)
        
        Load .mnuListEditMenu(9)
        Utility.CloneMenu .mnuEditFilter, .mnuListEditMenu(9)
        Load .mnuListEditMenu(10)
        Utility.CloneMenu .mnuEditColumn, .mnuListEditMenu(10)
        
        Load .mnuListEditMenu(11)
        Utility.CloneMenu .mnuEditBar2, .mnuListEditMenu(11)
        
        Load .mnuListEditMenu(12)
        Utility.CloneMenu .mnuToolRefresh, .mnuListEditMenu(12)
        Load .mnuListEditMenu(13)
        Utility.CloneMenu .mnuFilePrint, .mnuListEditMenu(13)
    End With
End Sub

Private Sub txtFind_Change()
    cmdAgain.Enabled = True
    If mblnIsFindTextChange Then mclsList.FindText txtFind.Text
End Sub
Private Sub txtFind_KeyDown(KeyCode As Integer, Shift As Integer)
    Dim intSelLen As Integer
    If KeyCode = 8 Then
        intSelLen = txtFind.SelLength
        If txtFind.SelStart > 0 Then txtFind.SelStart = txtFind.SelStart - 1
        txtFind.SelLength = intSelLen + 1
    End If
End Sub

Private Sub cMsgBox(strMsg As String, Optional strTitle As String)
    If Trim(strTitle) = "" Then
        strTitle = "提示信息"
    End If

    ShowMsg Me.hWnd, strMsg, MB_OK + MB_ICONEXCLAMATION + MB_SYSTEMMODAL, strTitle
End Sub

Private Function GetlngProjectOrderID()
    Dim strSql As String
    Dim strCode As String
    Dim recTmp As rdoResultset
    Dim lngOrderID As Long
    With mclsList
        If .DbTabCtrl.Row > .TotalRow(.intTab) Then .DbTabCtrl.Row = .TotalRow(.intTab)
        .Resultset(.intTab).AbsolutePosition = .DbTabCtrl.Row
        strCode = .Resultset(.intTab).rdoColumns("合同号").Value
        If .DbTabCtrl.Row > 0 Then
            lngOrderID = CLng(.DbTabCtrl.CellValue(.DbTabCtrl.Row, 0))
        Else
            lngOrderID = -1
            Exit Function
        End If
    End With
    strSql = "Select lngOrderID as ID from ProjectOrder where ProjectOrder.lngProjectID=" & lngOrderID & " and ProjectOrder.strOrderCode='" & strCode & "'"
    Set recTmp = gclsBase.BaseDB.OpenResultset(strSql, rdOpenStatic)
    If Not recTmp.EOF Then
    GetlngProjectOrderID = recTmp!ID
    Else
        GetlngProjectOrderID = 0
    End If
    recTmp.Close
    Set recTmp = Nothing
End Function
Private Function GetProjectName() As String
    Dim strSql As String
    Dim recTmp As rdoResultset
    Dim lngProjectID As Long
    With mclsList.DbTabCtrl
        If .Row > 0 Then
            lngProjectID = CLng(.CellValue(.Row, 0))
        Else
            lngProjectID = -1
            Exit Function
        End If
    End With
    strSql = "Select strProjectCode as strcode ,strProjectName as strName from Project where lngProjectID=" & lngProjectID
    Set recTmp = gclsBase.BaseDB.OpenResultset(strSql, rdOpenStatic)
    If Not recTmp.EOF Then
        GetProjectName = recTmp!strCode & " " & recTmp!strName
    Else
        GetProjectName = ""
    End If
    recTmp.Close
    Set recTmp = Nothing
End Function
Private Function IsLowerCode(ByVal strCode As String) As Boolean
    Dim strSql As String
    Dim tmp As rdoResultset
    strSql = "select blnIsInActive from Project where blnIsInActive=1 and strProjectCode like '" & strCode & "-%'"
    Set tmp = gclsBase.BaseDB.OpenResultset(strSql, rdOpenStatic)
    If tmp.RowCount <> 0 Then
        IsLowerCode = True
    Else
        IsLowerCode = False
    End If
End Function
Private Function UpdateIsActive(ByVal strCode As String, ByVal blnIsInActive As Boolean, ByVal blnYes As Boolean) As Boolean
    Dim strSql As String
    Dim strSuSql As String
   
     If blnIsInActive Then
            strSql = "UPDATE Project SET blnIsInActive = " & IIf(blnIsInActive, 1, 0) & " WHERE strProjectCode = '" & strCode & "' Or strProjectCode like '" & strCode & "-%'"
     Else
        If blnYes Then
            strSuSql = "UPDATE Project SET blnIsInActive = " & IIf(blnIsInActive, 1, 0) & " WHERE strProjectCode='" & strCode & "' Or strProjectCode like '" & strCode & "-%'"
        End If
        strSql = "UPDATE Project SET blnIsInActive = " & IIf(blnIsInActive, 1, 0) & " WHERE strProjectCode  in  ('" & strCode
        Do Until CodePrefix(strCode) = ""
            strCode = CodePrefix(strCode)
            strSql = strSql & "','" & strCode
        Loop
        strSql = strSql & "')"
        
    End If
      
    If blnYes Then
        If Not gclsBase.ExecSQL(strSuSql) Then
            UpdateIsActive = False
            Exit Function
        End If
    End If
    UpdateIsActive = gclsBase.ExecSQL(strSql)
End Function
Private Function RefreshRecList()
     Dim strSql As String
    Debug.Print "Re1: "; Timer
    mclsList.DbTabCtrl.Clear
    mclsList.Resultset(0).Requery
    mclsList.RefreshCurrTab 0
    mclsList.SetGridFormate
    Debug.Print "Re2: "; Timer
    mclsList.DbTabCtrl.Refresh
    UpdateEditMenuStatus
End Function

Private Function blnIsDetailPro() As Boolean
    Dim strSql As String
    Dim recTmp As rdoResultset
    strSql = " Select blnIsDetail  From Project where blnIsDetail=1 and lngProjectID=" & ListID
    Set recTmp = gclsBase.BaseDB.OpenResultset(strSql, rdOpenStatic)
    If recTmp.RowCount > 0 Then
        blnIsDetailPro = True
    Else
        blnIsDetailPro = False
    End If
    recTmp.Close
    Set recTmp = Nothing
End Function

⌨️ 快捷键说明

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