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

📄 clslistitem.cls

📁 金算盘软件代码
💻 CLS
📖 第 1 页 / 共 2 页
字号:
                            vbExclamation + MB_TASKMODAL, "修改商品税率"
                    mfrmItem.ToolRefresh
                End If
            End If
        Case 4
            If lngID > 0 Then
                If CheckIDUsed("Position", "lngPositionID", lngID) Then
                    frmPositionCard.EditCard lngID, vbModal
                    Set frmPositionCard = Nothing
                Else
                    ShowMsg 0, "该货位不存在,不能进行修改!", _
                            vbExclamation, "修改货位"
                    mfrmItem.ToolRefresh
                End If
            End If
    End Select
    mfrmItem.MousePointer = vbDefault
    mfrmItem.Enabled = True
End Sub

Private Sub mfrmItem_oListInActive()
Dim blnYes As Boolean
Dim strCode As String
Dim lngID As Long
Dim blnRemark As Boolean

lngID = mfrmItem.ListID
If lngID = 0 Then Exit Sub
With mfrmItem.sstPages
        blnRemark = ListIsInActive(.Tab, lngID, strCode)
        If IsLevelWCode(Choose(.Tab + 1, "商品类型编码", "商品劳务编码", "商品税率编码", "商品货位编码", "商品库存编码")) And Trim(strCode) <> "" Then
            If blnRemark And IsLowerCode(.Tab, strCode) Then
                intResponse = ShowMsg(mfrmItem.hWnd, "是否取消所有下级的停用标记", vbYesNo, mfrmItem.mTitle)
                blnYes = IIf(intResponse = 6, True, False)
            End If
        End If
        If .Tab = 3 And lngID = 1 Then
                MsgBox "零税率不能停用", vbExclamation, mfrmItem.mTitle
                Exit Sub
            End If
        If UpdateIsActive(.Tab, strCode, Not blnRemark, blnYes) Then
            mfrmItem.ToolRefresh
            If .Tab = 0 Then gclsSys.SendMessage CStr(mfrmItem.hWnd), Message.msgItemType
            If .Tab = 2 Then gclsSys.SendMessage CStr(mfrmItem.hWnd), Message.msgItem
            If .Tab = 3 Then gclsSys.SendMessage CStr(mfrmItem.hWnd), Message.msgTax
            If .Tab = 4 Then gclsSys.SendMessage CStr(mfrmItem.hWnd), Message.msgPosition
        End If
    End With
End Sub


Private Sub mfrmItem_ListInActive(blnLevel As Boolean, blnSuceess As Boolean)
    Dim blnYes As Boolean
Dim strCode As String
Dim lngID As Long
Dim blnRemark As Boolean
blnLevel = False
blnSuceess = False
lngID = mfrmItem.ListID
If lngID = 0 Then Exit Sub
With mfrmItem.sstPages
        blnRemark = ListIsInActive(.Tab, lngID, strCode)
        blnLevel = IsLevelWCode(Choose(.Tab + 1, "商品类型编码", "商品劳务编码", "商品税率编码", "商品货位编码", "商品库存编码"))
        If blnLevel And Trim(strCode) <> "" Then
            If blnRemark And IsLowerCode(.Tab, strCode) Then
                intResponse = ShowMsg(mfrmItem.hWnd, "是否取消所有下级的停用标记", vbYesNo, mfrmItem.mTitle)
                blnYes = IIf(intResponse = 6, True, False)
            End If
        End If
        If .Tab = 3 And lngID = 1 Then
                MsgBox "零税率不能停用", vbExclamation, mfrmItem.mTitle
                Exit Sub
            End If
        If UpdateIsActive(.Tab, strCode, Not blnRemark, blnYes) Then
            If blnLevel Then mfrmItem.ToolRefresh
            blnSuceess = True
            If .Tab = 0 Then gclsSys.SendMessage CStr(mfrmItem.hWnd), Message.msgItemType
            If .Tab = 2 Then gclsSys.SendMessage CStr(mfrmItem.hWnd), Message.msgItem
            If .Tab = 3 Then gclsSys.SendMessage CStr(mfrmItem.hWnd), Message.msgTax
            If .Tab = 4 Then gclsSys.SendMessage CStr(mfrmItem.hWnd), Message.msgPosition
        End If
    End With
End Sub

Private Sub mfrmItem_ListNew()
    mfrmItem.MousePointer = vbHourglass
    Select Case mfrmItem.sstPages.Tab
        Case 0
             frmItemTypeCard.AddCard , vbModal
             Set frmItemTypeCard = Nothing
        Case 1
            frmItemNatureCard.AddCard , vbModal
            Set frmItemNatureCard = Nothing
        Case 2
            frmItemCard.AddCard , vbModal
            Set frmItemCard = Nothing
        Case 3
            frmItemTax.AddCard , vbModal
            Set frmItemTax = Nothing
        Case 4
            frmPositionCard.AddCard , vbModal
            Set frmPositionCard = Nothing
    End Select
    
    mfrmItem.MousePointer = vbDefault
End Sub

Private Sub mfrmItem_ListPopAfter(ByVal blnNew As Boolean, ByVal blnEdit As Boolean)
    If blnNew Then mfrmItem_ListNew
    If blnEdit Then mfrmItem_ListEdite
End Sub

Private Sub mfrmItem_ListPopBefore(blnNew As Boolean, blnEdit As Boolean)
    blnNew = False
    blnEdit = False
End Sub

Private Sub mfrmItem_ListShowAll()
    With mfrmItem
        If .chkShowall = 0 Then
            Select Case .sstPages.Tab
                Case 0
                     .ShowAll(.sstPages.Tab) = "  ItemType.blnIsInActive=0 "
                Case 2
                    .ShowAll(.sstPages.Tab) = " Item.blnIsInActive =0"
                Case 3
                    .ShowAll(.sstPages.Tab) = "Tax.blnIsInActive=0"
                Case 4
                    .ShowAll(.sstPages.Tab) = "  Position.blnIsInActive =0"
            End Select
        Else
            .ShowAll(.sstPages.Tab) = ""
'            Select Case .sstPages.Tab
'                Case 0
'                    .ShowAll(.sstPages.Tab) = ""
'                     '.SpSelect(.sstPages.Tab) = " ItemType.lngItemTypeID As id ,IIF(ItemType.blnIsInActive,'√','') As 停用 "
'                Case 2
'                    .ShowAll(.sstPages.Tab) = ""
'                Case 3
'                    .ShowAll(.sstPages.Tab) = ""
'                Case 4
'                    .ShowAll(.sstPages.Tab) = ""
'            End Select
        End If
        .ToolRefresh
    End With
End Sub

Private Sub mfrmItem_ListUsed()
    Dim lngID As Long
    
    lngID = mfrmItem.ListID
    Select Case mfrmItem.sstPages.Tab
        Case 0
            UseCode Message.msgItemType, lngID
        Case 1
            UseCode Message.msgItemNature, lngID
        Case 2
            UseCode Message.msgItem, lngID
        Case 3
            UseCode Message.msgItem, lngID
        Case 4
            UseCode Message.msgPosition, lngID
        Case 5
    End Select
    mfrmItem.ZOrder 1
End Sub

Private Sub mfrmItem_ListUserMenu(ByVal Index As Integer)
#If conVersionType <> 16 Then
    Select Case Index
        Case 7:
            frmAdaptCard.ShowCard
            Unload frmAdaptCard
            Set frmAdaptCard = Nothing
    '#If conTest = 1 Then
'        Case 8:
'            With frmItemDiscListCard
'                .Show vbModal
'            End With
'            Unload frmItemDiscListCard
'            Set frmItemDiscListCard = Nothing
    '#End If
        End Select
#Else
    If gclsBase.ControlAccount Then
        If Index = 7 Then
            frmAdaptCard.ShowCard
            Unload frmAdaptCard
            Set frmAdaptCard = Nothing
        End If
    End If
#End If
End Sub
Private Function UpdateIsActive(ByVal intTab As Integer, ByVal strCode As String, ByVal blnIsInActive As Boolean, ByVal blnYes As Boolean) As Boolean
    Dim strSql As String
    Dim strSuSql As String
    Select Case intTab
        Case 0
             If blnIsInActive Then
                    strSql = "UPDATE ItemType SET blnIsInActive = " & IIf(blnIsInActive, 1, 0) & " WHERE strItemTypeCode = '" & strCode & "' Or strItemTypeCode like '" & strCode & "-%'"
             Else
                If blnYes Then
                    strSuSql = "UPDATE ItemType SET blnIsInActive = " & IIf(blnIsInActive, 1, 0) & " WHERE strItemTypeCode='" & strCode & "' Or strItemTypeCode like '" & strCode & "-%'"
                End If
                strSql = "UPDATE ItemType SET blnIsInActive = " & IIf(blnIsInActive, 1, 0) & " WHERE strItemTypeCode  in  ('" & strCode
                Do Until CodePrefix(strCode) = ""
                    strCode = CodePrefix(strCode)
                    strSql = strSql & "','" & strCode
                Loop
                strSql = strSql & "')"
                
            End If
        Case 4
            If blnIsInActive Then
                strSql = "UPDATE Position SET blnIsInActive = " & IIf(blnIsInActive, 1, 0) & " WHERE strPositionCode = '" & strCode & "' Or strPositionCode like '" & strCode & "-%'"
            Else
                If blnYes Then
                    strSuSql = "UPDATE Position SET blnIsInActive = " & IIf(blnIsInActive, 1, 0) & " WHERE strPositionCode='" & strCode & "' Or strPositionCode like '" & strCode & "-%'"
                End If
                strSql = "UPDATE Position SET blnIsInActive = " & IIf(blnIsInActive, 1, 0) & " WHERE strPositionCode  in  ('" & strCode
                Do Until CodePrefix(strCode) = ""
                    strCode = CodePrefix(strCode)
                    strSql = strSql & "','" & strCode
                Loop
                strSql = strSql & "')"
                
            End If
                
        Case 2
            strSql = "UPDATE Item SET blnIsInActive = " & IIf(blnIsInActive, 1, 0) & " WHERE strItemCode = '" & strCode & "'"
        Case 3
            strSql = "UPDATE Tax SET blnIsInActive = " & IIf(blnIsInActive, 1, 0) & " WHERE lngTaxID = " & strCode
    End Select
    
    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 ListIsInActive(ByVal intTab As Integer, ByVal lngID As Long, strCode As String) As Boolean
    Dim recTmp As rdoResultset
    Dim strSql As String
    Select Case intTab
        Case 0
            strSql = "Select blnIsInActive,strItemTypeCode as Code from ItemType Where lngItemTypeID=" & lngID
        Case 2
            strSql = "Select blnIsInActive,strItemCode as  Code  from Item Where lngItemID=" & lngID
        Case 3
            strSql = "Select blnIsInActive,lngTaxID as Code from Tax Where lngTaxID=" & lngID
        Case 4
            strSql = "Select blnIsInActive,strPositionCode as Code from Position Where lngPositionID=" & lngID
        Case 5
            strSql = "Select blnIsInActive,strItemTypeCode as  Code  from ItemType Where lngItemTypeID=" & lngID
    End Select
    
    Set recTmp = gclsBase.BaseDB.OpenResultset(strSql, rdOpenStatic)
    If Not recTmp.EOF Then
        ListIsInActive = IIf(recTmp!blnIsInActive = 1, True, False)
        strCode = recTmp!Code
    End If
End Function
Private Function IsLowerCode(ByVal intTab As Integer, ByVal strCode As String) As Boolean
    Dim strSql As String
    Dim tmp As rdoResultset
    Select Case intTab
        Case 0
            strSql = "select blnIsInActive from ItemType where blnIsInActive=1 and strItemTypecode like '" & strCode & "-%'"
        Case 4
            strSql = "select blnIsInActive from Position where blnIsInActive=1 and strPositioncode like '" & strCode & "-%'"
    End Select
If Trim(strSql) <> "" Then
    Set tmp = gclsBase.BaseDB.OpenResultset(strSql, rdOpenStatic)
    If tmp.RowCount <> 0 Then
        IsLowerCode = True
    Else
        IsLowerCode = False
    End If
End If
End Function

Public Function ShowEachList(ByVal lngID As Long, Optional intTab As Integer = 0) As Boolean
    strWhere = Choose(intTab + 1, "ItemType.lngItemTypeID=", "ItemNature.lngItemNatureID=", "Item.lngItemID=", "Tax.lngTaxID=", "Position.lngPositionID=", "Item.lngItemID=") & lngID
    ShowEachList = mfrmItem.Showlist(lngID, intTab, strWhere)
End Function

⌨️ 快捷键说明

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