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

📄 -

📁 VB开发的ERP系统
💻
📖 第 1 页 / 共 3 页
字号:
                If Trim(.LrText(1).Text) <> "" Then
                    Str_Wl = Str_Wl & " and invsortcode LIKE '" & Trim(.LrText(1).Tag) & "%'"
                    Sqlstr = Sqlstr & " and invsortcode LIKE '" & Trim(.LrText(1).Tag) & "%'"
                    Str_Sort = " and invsortcode LIKE '" & Trim(.LrText(1).Tag) & "%'"
                Else
                    Str_Sort = ""
                End If
                
              Case 4   '材料
                If Trim(.LrText(2).Text) <> "" Then
                  Str_Mate = " and mnumber='" & Trim(.LrText(2).Text) & "'"
                  Sqlstr = Sqlstr & " and mnumber='" & Trim(.LrText(2).Text) & "'"
                  Str_Wl = Str_Wl & " and mnumber='" & Trim(.LrText(2).Text) & "'"
                Else
                  Str_Mate = ""
                End If
                
             Case 5   '批次
                If Trim(.LrText(3).Text) <> "" Then
                  Str_Batch = " and   batchnum='" & Trim(.LrText(3).Text) & "'"
                  Sqlstr = Sqlstr & "  and batchnum='" & Trim(.LrText(3).Text) & "'"
                  Str_Wl = Str_Wl & "  and batchnum='" & Trim(.LrText(3).Text) & "'"
                Else
                  Str_Batch = ""
                End If
            End Select
        Next jsqte
    End With
 
    Dim Str_Query As String
    Label1 = "日期范围:   " & Trim(KF_FrmMateBatchQuery.Combo_Kjqj1.Text) & "----" & Trim(KF_FrmMateBatchQuery.Combo_Kjqj2.Text)
    Str_Wl = Sqlstr + Str_Wl + " order by mnumber"
    Set Rec_Mate = Cw_DataEnvi.DataConnect.Execute(Str_Wl)
    
    CxbbGrid.Rows = CxbbGrid.FixedRows
    jsqte = CxbbGrid.FixedRows
    Dim D_QC, D_In, D_Out, D_End As Double
    D_QC = 0
    D_In = 0
    D_Out = 0
    D_End = 0
    Dim temp_batch As String
    Dim S_QC, S_In, S_Out, S_End As Single
    Dim judge_flag As Boolean
    S_QC = 0
    S_In = 0
    S_Out = 0
    S_End = 0
    Do While Not Rec_Mate.EOF
        judge_flag = True
        temp_batch = Rec_Mate.Fields("mnumber")
        Str_Query = ""
        Str_Query = Str_QueryCondi & Str_WH & Str_Sort & Str_Mate & " and batchnum='" & Trim(Rec_Mate.Fields("batchnum")) & "' and WhCode='" & Trim(Rec_Mate.Fields("WhCode")) & "' and mnumber='" & Trim(Rec_Mate.Fields("mnumber")) & "'  GROUP BY mnumber, WhCode, batchnum"
        Set Rec_Query = Cw_DataEnvi.DataConnect.Execute(Str_Query)
  
        Dim str_query1 As String
        str_query1 = "select  SUM(startquan) AS Qc, mnumber, batchnum, WhCode From kf_V_ledger where  1=1" & Str_WH & Str_Sort & Str_Mate & " and  mnumber='" & Trim(Rec_Mate.Fields("mnumber")) & "' and period =" & Val(Mid(Trim(KF_FrmMateBatchQuery.Combo_Kjqj1.Text), 6)) & " and batchnum<>'' GROUP BY mnumber, batchnum, WhCode"
        If Rec_Query.EOF Then
            Dim rec_start As New ADODB.Recordset
            Set rec_start = Cw_DataEnvi.DataConnect.Execute(str_query1)
            With rec_start
                If rec_start.EOF Then
                    judge_flag = False
                Else
                    Do While Not .EOF
                        CxbbGrid.AddItem ""
                        CxbbGrid.TextMatrix(jsqte, Sydz("001", GridStr(), Szzls)) = Trim(.Fields("batchnum"))                   '批号
                        CxbbGrid.TextMatrix(jsqte, Sydz("005", GridStr(), Szzls)) = Trim(.Fields("mnumber"))                    '物料编码
                        
                        Set Rec_WH = Cw_DataEnvi.DataConnect.Execute("SELECT whname from gy_warehouse where WhCode='" & Trim(.Fields("WhCode")) & "'")
                        CxbbGrid.TextMatrix(jsqte, Sydz("006", GridStr(), Szzls)) = Trim(Rec_WH.Fields("whname"))               '仓库
                        
                        Set Rec_Unit = Cw_DataEnvi.DataConnect.Execute("select mname,model ,PrimaryUnitName from gy_material where mnumber='" & Trim(.Fields("mnumber")) & "'")
                        CxbbGrid.TextMatrix(jsqte, Sydz("002", GridStr(), Szzls)) = Trim(Rec_Unit.Fields("mname"))              '物料名称
                        CxbbGrid.TextMatrix(jsqte, Sydz("003", GridStr(), Szzls)) = Trim(Rec_Unit.Fields("model"))
                        CxbbGrid.TextMatrix(jsqte, Sydz("004", GridStr(), Szzls)) = Trim(Rec_Unit.Fields("PrimaryUnitName"))    '计量单位
                        Set Rec_QC = Cw_DataEnvi.DataConnect.Execute("SELECT SUM(startquan) AS Qc, mnumber, batchnum, WhCode From kf_V_ledger where mnumber='" & Trim(.Fields("mnumber")) & "' and batchnum='" & Trim(.Fields("batchnum")) & "' and WhCode='" & Trim(.Fields("WhCode")) & "'and kjyear=" & Xtyear & " and period =" & Val(Mid(Trim(KF_FrmMateBatchQuery.Combo_Kjqj1.Text), 6)) & " GROUP BY mnumber, batchnum, WhCode")
                        If Not Rec_QC.EOF Then
                            If Val(Rec_QC.Fields("qc")) Then
                                CxbbGrid.TextMatrix(jsqte, Sydz("007", GridStr(), Szzls)) = Val(Rec_QC.Fields("qc"))            '期初数量
                            Else
                                CxbbGrid.TextMatrix(jsqte, Sydz("007", GridStr(), Szzls)) = ""
                            End If
                        Else
                            CxbbGrid.TextMatrix(jsqte, Sydz("007", GridStr(), Szzls)) = ""
                        End If
                        S_QC = S_QC + Val(CxbbGrid.TextMatrix(jsqte, Sydz("007", GridStr(), Szzls)))
                        
                        If Val(Val(CxbbGrid.TextMatrix(jsqte, Sydz("007", GridStr(), Szzls))) + Val(CxbbGrid.TextMatrix(jsqte, Sydz("008", GridStr(), Szzls))) - Val(CxbbGrid.TextMatrix(jsqte, Sydz("009", GridStr(), Szzls)))) Then
                            CxbbGrid.TextMatrix(jsqte, Sydz("010", GridStr(), Szzls)) = Val(CxbbGrid.TextMatrix(jsqte, Sydz("007", GridStr(), Szzls))) + Val(CxbbGrid.TextMatrix(jsqte, Sydz("008", GridStr(), Szzls))) - Val(CxbbGrid.TextMatrix(jsqte, Sydz("009", GridStr(), Szzls)))
                        Else
                            CxbbGrid.TextMatrix(jsqte, Sydz("010", GridStr(), Szzls)) = ""
                        End If
                        
                        S_End = S_End + Val(CxbbGrid.TextMatrix(jsqte, Sydz("010", GridStr(), Szzls)))
                        CxbbGrid.RowHeight(jsqte) = Sjhgd
                        jsqte = jsqte + 1
                        .MoveNext
                    Loop
                End If
            End With
        Else

            With Rec_Query
                Do While Not .EOF
                    CxbbGrid.AddItem ""
                    CxbbGrid.TextMatrix(jsqte, Sydz("005", GridStr(), Szzls)) = Trim(.Fields("batchnum"))       '批号
                    CxbbGrid.TextMatrix(jsqte, Sydz("001", GridStr(), Szzls)) = Trim(.Fields("mnumber"))        '物料编码
                    
                    Set Rec_WH = Cw_DataEnvi.DataConnect.Execute("SELECT whname from gy_warehouse where WhCode='" & Trim(.Fields("WhCode")) & "'")
                    CxbbGrid.TextMatrix(jsqte, Sydz("006", GridStr(), Szzls)) = Trim(Rec_WH.Fields("whname"))   '仓库
                    If Val(.Fields("expr1")) <> 0 Then
                        CxbbGrid.TextMatrix(jsqte, Sydz("008", GridStr(), Szzls)) = Val(.Fields("expr1"))
                    End If
                    S_In = S_In + Val(.Fields("expr1"))
                    If Val(.Fields("expr2")) <> 0 Then
                        CxbbGrid.TextMatrix(jsqte, Sydz("009", GridStr(), Szzls)) = Val(.Fields("expr2"))
                    End If
                    S_Out = S_Out + Val(.Fields("expr2"))
                    
                    Set Rec_Unit = Cw_DataEnvi.DataConnect.Execute("select mname,model ,PrimaryUnitName from gy_material where mnumber='" & Trim(.Fields("mnumber")) & "'")
                    CxbbGrid.TextMatrix(jsqte, Sydz("002", GridStr(), Szzls)) = Trim(Rec_Unit.Fields("mname"))  '物料编码
                    CxbbGrid.TextMatrix(jsqte, Sydz("003", GridStr(), Szzls)) = Trim(Rec_Unit.Fields("model"))  '规格型号
                    CxbbGrid.TextMatrix(jsqte, Sydz("004", GridStr(), Szzls)) = Trim(Rec_Unit.Fields("PrimaryUnitName"))    '计量单位
                    Set Rec_QC = Cw_DataEnvi.DataConnect.Execute("SELECT SUM(startquan) AS Qc, mnumber, batchnum, WhCode From kf_V_ledger where mnumber='" & Trim(.Fields("mnumber")) & "' and batchnum='" & Trim(.Fields("batchnum")) & "' and WhCode='" & Trim(.Fields("WhCode")) & "'and kjyear=" & Xtyear & " and period =" & Val(Mid(Trim(KF_FrmMateBatchQuery.Combo_Kjqj1.Text), 6)) & " GROUP BY mnumber, batchnum, WhCode")
                    If Not Rec_QC.EOF Then
                        If Val(Rec_QC.Fields("qc")) Then
                            CxbbGrid.TextMatrix(jsqte, Sydz("007", GridStr(), Szzls)) = Val(Rec_QC.Fields("qc"))    '期初数量
                        Else
                            CxbbGrid.TextMatrix(jsqte, Sydz("007", GridStr(), Szzls)) = ""
                        End If
                    Else
                        CxbbGrid.TextMatrix(jsqte, Sydz("007", GridStr(), Szzls)) = ""
                    End If
                    S_QC = S_QC + Val(CxbbGrid.TextMatrix(jsqte, Sydz("007", GridStr(), Szzls)))
                    
                    If Val(Val(CxbbGrid.TextMatrix(jsqte, Sydz("007", GridStr(), Szzls))) + Val(CxbbGrid.TextMatrix(jsqte, Sydz("008", GridStr(), Szzls))) - Val(CxbbGrid.TextMatrix(jsqte, Sydz("009", GridStr(), Szzls)))) Then
                        CxbbGrid.TextMatrix(jsqte, Sydz("010", GridStr(), Szzls)) = Val(CxbbGrid.TextMatrix(jsqte, Sydz("007", GridStr(), Szzls))) + Val(CxbbGrid.TextMatrix(jsqte, Sydz("008", GridStr(), Szzls))) - Val(CxbbGrid.TextMatrix(jsqte, Sydz("009", GridStr(), Szzls)))
                    Else
                        CxbbGrid.TextMatrix(jsqte, Sydz("010", GridStr(), Szzls)) = ""
                    End If
                    
                    S_End = S_End + Val(CxbbGrid.TextMatrix(jsqte, Sydz("010", GridStr(), Szzls)))
                    CxbbGrid.RowHeight(jsqte) = Sjhgd
                    jsqte = jsqte + 1
                    .MoveNext
                Loop
            End With
        End If
        Rec_Mate.MoveNext
        
        If Rec_Mate.EOF Then
            If judge_flag Then
                CxbbGrid.AddItem ""
                CxbbGrid.TextMatrix(jsqte, Sydz("001", GridStr(), Szzls)) = "小计"
                If S_QC <> 0 Then
                    CxbbGrid.TextMatrix(jsqte, Sydz("007", GridStr(), Szzls)) = S_QC
                End If
                If S_In <> 0 Then
                    CxbbGrid.TextMatrix(jsqte, Sydz("008", GridStr(), Szzls)) = S_In
                End If
                If S_Out <> 0 Then
                    CxbbGrid.TextMatrix(jsqte, Sydz("009", GridStr(), Szzls)) = S_Out
                End If
                If S_End <> 0 Then
                    CxbbGrid.TextMatrix(jsqte, Sydz("010", GridStr(), Szzls)) = S_End
                End If
                D_In = D_In + S_In
                D_Out = D_Out + S_Out
                D_QC = D_QC + S_QC
                D_End = D_End + S_End
                CxbbGrid.RowHeight(jsqte) = Sjhgd
                jsqte = jsqte + 1
            End If
        ElseIf temp_batch <> Rec_Mate.Fields("mnumber") Then
            If judge_flag Then
                CxbbGrid.AddItem ""
                CxbbGrid.TextMatrix(jsqte, Sydz("001", GridStr(), Szzls)) = "小计"
                If S_QC <> 0 Then
                    CxbbGrid.TextMatrix(jsqte, Sydz("007", GridStr(), Szzls)) = S_QC
                End If
                If S_In <> 0 Then
                    CxbbGrid.TextMatrix(jsqte, Sydz("008", GridStr(), Szzls)) = S_In
                End If
                If S_Out <> 0 Then
                    CxbbGrid.TextMatrix(jsqte, Sydz("009", GridStr(), Szzls)) = S_Out
                End If
                If S_End <> 0 Then
                    CxbbGrid.TextMatrix(jsqte, Sydz("010", GridStr(), Szzls)) = S_End
                End If
                D_In = D_In + S_In
                D_Out = D_Out + S_Out
                D_QC = D_QC + S_QC
                D_End = D_End + S_End
                S_QC = 0
                S_In = 0
                S_Out = 0
                S_End = 0

                CxbbGrid.RowHeight(jsqte) = Sjhgd
                jsqte = jsqte + 1
            End If
        End If
    Loop
    CxbbGrid.MergeCells = flexMergeFree
    For jsq = Qslz To CxbbGrid.Cols - 1
        CxbbGrid.MergeCol(jsq) = False
    Next jsq
    CxbbGrid.MergeCol(Sydz("001", GridStr(), Szzls)) = True
    CxbbGrid.AddItem ""
    CxbbGrid.TextMatrix(jsqte, Qslz) = "合计"
    If D_QC <> 0 Then
        CxbbGrid.TextMatrix(jsqte, Sydz("007", GridStr(), Szzls)) = D_QC
    End If
    If D_In <> 0 Then
        CxbbGrid.TextMatrix(jsqte, Sydz("008", GridStr(), Szzls)) = D_In
    End If
    If D_Out <> 0 Then
        CxbbGrid.TextMatrix(jsqte, Sydz("009", GridStr(), Szzls)) = D_Out
    End If
    If D_End <> 0 Then
        CxbbGrid.TextMatrix(jsqte, Sydz("010", GridStr(), Szzls)) = D_End
    End If
    CxbbGrid.RowHeight(CxbbGrid.Rows - 1) = Sjhgd
 ']以上为用户自定义部分
   
End Sub

Private Sub CxbbGrid_BeforeMoveColumn(ByVal Col As Long, Position As Long)
    '如果结束列小于用户定义网格开始列,则结束列=用户定义网格开始列
    '因为开始列以前的列都是隐藏列,由于要把当前开始移动列移动到隐藏列上
    '所以控件自动把隐藏列变为显示列,这样在刷新数据时,会把隐藏列上的数据
    '显示出来,并且,由于开始列以前的隐藏列在XT_Grid中,不对应逻辑值,所以在保存
    '网格格式时会出错
    If Col > Position Then
      If Position < GridInf(1) Then Position = GridInf(1)
    Else
      If Col < GridInf(1) Then Col = GridInf(1)
    End If
    Call FnBln_RefreshArray(Col, Position, GridStr(), GridInf())
End Sub
Private Sub bbyl(bbylte As Boolean)                    '报表打印预览
    Dim Bbzbt$, Bbxbt() As String, bbxbtzzxs() As Integer, Bbxbtgs As Integer
    Dim Bbbwh() As String, Bbbwhzzxs() As Integer, Bbbwhgs As Integer
    Bbxbtgs = 2                                          '报 表 小 标 题 行 数
    Bbbwhgs = 0                                          '报 表 表 尾 行 数
    ReDim Bbxbt(1 To Bbxbtgs)
    ReDim bbxbtzzxs(1 To Bbxbtgs)
    If Bbbwhgs <> 0 Then
       ReDim Bbbwh(1 To Bbbwhgs)
       ReDim Bbbwhzzxs(1 To Bbbwhgs)
    End If
    Bbzbt = ReportTitle
    
    Bbxbt(2) = Space(5) + Fun_FormatOutPut(Trim(Label1), 30)
    
    Bbxbt(1) = " "
    bbxbtzzxs(1) = 0                                     '报表行组织形式(0-居左 1-居中 2-居右)
    Call Scyxsjb(CxbbGrid)                               '生成报表数据
    Call Scdybb(Dyymctbl, Bbzbt, Bbxbt(), bbxbtzzxs(), Bbxbtgs, Bbbwh(), Bbbwhzzxs(), Bbbwhgs, bbylte)
    If Not bbylte Then
       Unload DY_Tybbyldy
    End If
End Sub

⌨️ 快捷键说明

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