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

📄 i-

📁 VB开发的ERP系统
💻
📖 第 1 页 / 共 4 页
字号:

Label1 = "物料分类:   " & Trim(adoTemp.Fields("invsortname") & "")
Label2 = "物料编码:   " & Trim(adoTemp.Fields("mnumber") & "")
Label3 = "物料名称:   " & Trim(adoTemp.Fields("mname") & "")
Label4 = "规格型号:   " & Trim(adoTemp.Fields("model") & "")
Label5 = "计量单位:   " & Trim(adoTemp.Fields("primaryunitname") & "")
Label6 = "批号:       " & Trim(adoTemp.Fields("batchnum") & "")

' 期初余额

 StrQC = "SELECT mnumber, SUM(startquan) AS Start_quan, SUM(receiptquan) AS In_quan, " & _
      "SUM(issuequan) As Out_quan From kf_v_ledger where " & Str_QueryCondi & " and mnumber='" & Trim(adoTemp.Fields("mnumber")) & "' and batchnum='" & Trim(adoTemp.Fields("batchnum")) & "' group by mnumber"

 Set adoStart = Cw_DataEnvi.DataConnect.Execute(StrQC)

'单据出入库

  StrBill = "select * from kf_v_inout where " & Str_QueryCondi & " and mnumber='" & Trim(adoTemp.Fields("mnumber")) & "' and billcode<>'1212' and batchnum='" & Trim(adoTemp.Fields("batchnum")) & "'  order by period,billdate"
 Set adoQuery = Cw_DataEnvi.DataConnect.Execute(StrBill)

 ' 填充网格
  CxbbGrid.Rows = CxbbGrid.FixedRows
   CxbbGrid.AddItem ""
  With adoStart
    If Not .EOF Then
        CxbbGrid.TextMatrix(CxbbGrid.FixedRows, Sydz("003", GridStr(), Szzls)) = "期初结存"
        If Val(.Fields("start_quan")) <> 0 Then
            CxbbGrid.TextMatrix(CxbbGrid.FixedRows, Sydz("007", GridStr(), Szzls)) = .Fields("start_quan")
        Else
            If adoQuery.EOF Then
                CxbbGrid.Clear 1
                Exit Sub
            End If
        End If
    Else
        CxbbGrid.TextMatrix(CxbbGrid.FixedRows, Sydz("003", GridStr(), Szzls)) = "期初结存"
        CxbbGrid.TextMatrix(CxbbGrid.FixedRows, Sydz("007", GridStr(), Szzls)) = ""
        If adoQuery.EOF Then
            CxbbGrid.Clear 1
            Exit Sub
        End If
    End If
  End With
 
 With adoQuery
    jsqte = CxbbGrid.FixedRows + 1
   Do While Not .EOF
  
     If jsqte >= CxbbGrid.Rows Then
     End If
        CxbbGrid.AddItem ""
        
      CxbbGrid.TextMatrix(jsqte, 0) = .Fields("period")                                                     '会计期间
      CxbbGrid.TextMatrix(jsqte, 1) = Val(.Fields("inoutmainid"))                                           '单据ID
      
     If IsNull(.Fields("billdate")) Then
        CxbbGrid.TextMatrix(jsqte, Sydz("001", GridStr(), Szzls)) = ""
     Else
        CxbbGrid.TextMatrix(jsqte, Sydz("001", GridStr(), Szzls)) = Format(Trim(.Fields("billdate") & ""), "yyyy-mm-dd")          '日期
     End If
     
     If IsNull(.Fields("billnum")) Then
        CxbbGrid.TextMatrix(jsqte, Sydz("002", GridStr(), Szzls)) = ""
     Else
        CxbbGrid.TextMatrix(jsqte, Sydz("002", GridStr(), Szzls)) = Trim(.Fields("billnum") & "")           '单据号
     End If
      For j = 2 To 8
           If CxbbGrid.TextMatrix(0, j) <> "" Then
               CxbbGrid.TextMatrix(jsqte, Sydz("003", GridStr(), Szzls)) = CxbbGrid.TextMatrix(jsqte, Sydz("003", GridStr(), Szzls)) & Trim(.Fields(Trim(CxbbGrid.TextMatrix(0, j)))) & ","             '摘要
           End If
      Next j
      CxbbGrid.TextMatrix(jsqte, Sydz("004", GridStr(), Szzls)) = Trim(.Fields("whname"))                   '仓库
     
     If Val(.Fields("factreceiptquan")) <> 0 Then
        CxbbGrid.TextMatrix(jsqte, Sydz("005", GridStr(), Szzls)) = .Fields("factreceiptquan")              '入库数量
     End If
     If Val(.Fields("factissuequan")) <> 0 Then
         CxbbGrid.TextMatrix(jsqte, Sydz("006", GridStr(), Szzls)) = Trim(.Fields("factissuequan"))         '出库数量
     End If
     
     CxbbGrid.TextMatrix(jsqte, Sydz("007", GridStr(), Szzls)) = Val(CxbbGrid.TextMatrix(jsqte - 1, Sydz("007", GridStr(), Szzls))) + Val(CxbbGrid.TextMatrix(jsqte, Sydz("005", GridStr(), Szzls))) - Val(CxbbGrid.TextMatrix(jsqte, Sydz("006", GridStr(), Szzls)))
     CxbbGrid.TextMatrix(jsqte, Sydz("008", GridStr(), Szzls)) = Trim(.Fields("mareaname") & "")            '货区
     
     CxbbGrid.RowHeight(jsqte) = Sjhgd
     
     jsqte = jsqte + 1
    .MoveNext
   Loop
   
  If Val(.RecordCount) > 0 Then
        CxbbGrid.SubTotal flexSTSum, 0, Sydz("005", GridStr(), Szzls), , , , , "0"                          '根据会计期间汇总
            If Val(CxbbGrid.TextMatrix(jsqte, Sydz("005", GridStr(), Szzls))) = 0 Then
                CxbbGrid.TextMatrix(jsqte, Sydz("005", GridStr(), Szzls)) = ""
            End If
    
        CxbbGrid.SubTotal flexSTSum, 0, Sydz("006", GridStr(), Szzls), , , , , "0"                          '根据会计期间汇总
            If Val(CxbbGrid.TextMatrix(jsqte, Sydz("006", GridStr(), Szzls))) = 0 Then
                CxbbGrid.TextMatrix(jsqte, Sydz("006", GridStr(), Szzls)) = ""
            End If
            
      '输出年月累计
      i = CxbbGrid.FixedRows
      InCount = 0
      OutCount = 0
      Do While i <= CxbbGrid.Rows - 1
       If Trim(CxbbGrid.TextMatrix(i, 0)) = "0" Then
    
            If Val(CxbbGrid.TextMatrix(i - 1, Sydz("007", GridStr(), Szzls))) <> 0 Then
               CxbbGrid.TextMatrix(i, Sydz("007", GridStr(), Szzls)) = CxbbGrid.TextMatrix(i - 1, Sydz("007", GridStr(), Szzls))
            End If
    
            CxbbGrid.TextMatrix(i, 1) = 0
            CxbbGrid.TextMatrix(i, Sydz("003", GridStr(), Szzls)) = "本月合计"
    
            If CxbbGrid.TextMatrix(i, Sydz("005", GridStr(), Szzls)) <> "" Then
               InCount = InCount + FormatNumber(CxbbGrid.TextMatrix(i, Sydz("005", GridStr(), Szzls)), Xtslxsws)
            End If
            If CxbbGrid.TextMatrix(i, Sydz("006", GridStr(), Szzls)) <> "" Then
               OutCount = OutCount + FormatNumber(CxbbGrid.TextMatrix(i, Sydz("006", GridStr(), Szzls)), Xtslxsws)
            End If
    
            CxbbGrid.AddItem "", i + 1
            CxbbGrid.TextMatrix(i + 1, 1) = 0
            CxbbGrid.TextMatrix(i + 1, Sydz("003", GridStr(), Szzls)) = "本年累计"
    
            If Val(CxbbGrid.TextMatrix(i, Sydz("007", GridStr(), Szzls))) <> 0 Then
                CxbbGrid.TextMatrix(i + 1, Sydz("007", GridStr(), Szzls)) = CxbbGrid.TextMatrix(i, Sydz("007", GridStr(), Szzls))
            End If
    
            If InCount <> 0 Then
                CxbbGrid.TextMatrix(i + 1, Sydz("005", GridStr(), Szzls)) = InCount
            End If
    
            If OutCount <> 0 Then
                CxbbGrid.TextMatrix(i + 1, Sydz("006", GridStr(), Szzls)) = OutCount
            End If
    
        End If
         CxbbGrid.RowHeight(i) = Sjhgd
         i = i + 1
      Loop
   End If
 End With
 ']以上为用户自定义部分
   Call SLGSH
End Sub

Private Sub CxbbGrid_DblClick()          '用户双击网格调入相应单据
    Dim RecTemp As New ADODB.Recordset
  
    '当第一次查询结果为空时,判断总记录行是否与固定行数相同,如相同则出现错误(双表头出现此情况)
    If CxbbGrid.Rows = CxbbGrid.FixedRows Then
        Exit Sub
    End If
    '非数据行退出
    If CxbbGrid.Row < CxbbGrid.FixedRows Then
       Exit Sub
    End If
  

    Sqlstr = "SELECT inoutmainid,billcode From kf_v_inout" & _
             " Where inoutmainid=" & Val(CxbbGrid.TextMatrix(CxbbGrid.Row, 1))

    Set RecTemp = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
        
    Me.MousePointer = 11

    If Val(CxbbGrid.TextMatrix(CxbbGrid.Row, 1)) = 0 Then
         Tsxx = "此项目不能显示!"
         Call Xtxxts(Tsxx, 0, 4)
         Me.MousePointer = 1
         Exit Sub
         
    Else
 
    With RecTemp

      If .EOF Then
         Tsxx = "此单据已被其它用户删除!"
         Call Xtxxts(Tsxx, 0, 4)
         Me.MousePointer = 1
         Exit Sub
      Else
       Xtcdcs = "3"
       XT_BillID = CxbbGrid.TextMatrix(CxbbGrid.Row, 1)
        Select Case Trim(.Fields("billcode"))
         Case "1201"
                    With KF_FrmStockIn
                        '填充查询单据标识
                        .Show 1
                    End With
                Case "1202"
                    With KF_FrmProductIn
                        '填充查询单据标识
                        .Show 1
                    End With
                Case "1203"
                    With KF_FrmOtherIn
                        '填充查询单据标识
                        .Show 1
                    End With
                Case "1204"
                    With KF_FrmMateOut
                        '填充查询单据标识
                        .Show 1
                    End With
                Case "1205"
                    With KF_FrmSellOut
                        '填充查询单据标识
                        .Show 1
                    End With
                Case "1206"
                    With KF_FrmOtherOut
                        '填充查询单据标识
                        .Show 1
                    End With
         End Select
       If Xtfhcs = "1" Then
             Tsxx = "单据发生变化,是否刷新单据列表?"
             Yhanswer = Xtxxts(Tsxx, 2, 2)
             If Yhanswer = 1 Then
                Call Timer1_Timer
             End If
       End If
        
     End If

    End With
    Me.MousePointer = 1
 End If


End Sub

Private Sub SLGSH()         '数据格式化
 With CxbbGrid
   For hjsq = .FixedRows To .Rows - 1
    For ljsq = Qslz + 5 To .Cols - 1
     .TextMatrix(hjsq, ljsq) = Format(Trim(.TextMatrix(hjsq, ljsq)), "#,##0." + String(Xtslxsws, "0"))
     If Val(.TextMatrix(hjsq, ljsq)) = 0 Then
      .TextMatrix(hjsq, ljsq) = ""
     End If
    Next ljsq
   Next hjsq
 End With
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(1) = Space(5) + Fun_FormatOutPut(Trim(Label1), 30)
    Bbxbt(1) = Bbxbt(1) + Fun_FormatOutPut(Trim(Label2), 30)
    Bbxbt(1) = Bbxbt(1) + Fun_FormatOutPut(Trim(Label6), 30)
    Bbxbt(2) = Space(5) + Fun_FormatOutPut(Trim(Label3), 30)
    Bbxbt(2) = Bbxbt(2) + Fun_FormatOutPut(Trim(Label4), 30)
    Bbxbt(2) = Bbxbt(2) + Fun_FormatOutPut(Trim(Label5), 30)
    
    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

Private Sub Sub_Lxdy()                                 '帐页连续打印(帐页每批尽量少选)
    Dim Bbzbt$, Bbxbt() As String, bbxbtzzxs() As Integer, Bbxbtgs As Integer
    Dim Bbbwh() As String, Bbbwhzzxs() As Integer, Bbbwhgs As Integer
    Dim jsqte As Integer
    Dim YAnswer As Integer
    
    '[[
    If adoMate.State = 0 Then Exit Sub
    ']]
    '用户确认是否开始连续打印帐页
    Tsxx = "请确认是否开始连续打印帐页?"
    YAnswer = Xtxxts(Tsxx, 2, 2)
    If YAnswer <> 1 Then
        Exit Sub
    End If
    
    '初始化连续打印状态
    Cmd_CancelPrint.Visible = True
    Cmd_CancelPrint.SetFocus
    Cmd_CancelPrint.Refresh
    Bln_CancelPrint = False
    Bln_Printing = True
    
    '循环输出打印作业
    If adoMate.RecordCount > 0 Then
        adoMate.MoveFirst
        For jsqte = 1 To adoMate.RecordCount
            Call Show_Tab(adoMate)
            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(1) = Space(5) + Fun_FormatOutPut(Trim(Label1), 30)
            Bbxbt(1) = Bbxbt(1) + Fun_FormatOutPut(Trim(Label2), 30)
            Bbxbt(1) = Bbxbt(1) + Fun_FormatOutPut(Trim(Label6), 30)
            Bbxbt(2) = Space(5) + Fun_FormatOutPut(Trim(Label3), 30)
            Bbxbt(2) = Bbxbt(2) + Fun_FormatOutPut(Trim(Label4), 30)
            Bbxbt(2) = Bbxbt(2) + Fun_FormatOutPut(Trim(Label5), 30)
            bbxbtzzxs(1) = 1                                     '报表行组织形式(0-居左 1-居中 2-居右)
            Call Scyxsjb(CxbbGrid)                               '生成报表数据
            Call Scdybb(Dyymctbl, Bbzbt, Bbxbt(), bbxbtzzxs(), Bbxbtgs, Bbbwh(), Bbbwhzzxs(), Bbbwhgs, False, True)
            Unload DY_Tybbyldy
            DoEvents
            If Bln_CancelPrint Then
                Bln_Printing = False
                Exit Sub
            End If
            adoMate.MoveNext
        Next jsqte
        Bln_Printing = False
        Cmd_CancelPrint.Visible = False
    End If
End Sub

Private Sub Cmd_CancelPrint_Click()                    '取消帐页连续打印
    Bln_CancelPrint = True
    Cmd_CancelPrint.Visible = False
End Sub


⌨️ 快捷键说明

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