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

📄 i-

📁 VB开发的ERP系统
💻
📖 第 1 页 / 共 4 页
字号:
Private Sub Show_Tab(adoTemp As Recordset)
Dim StrQC As String
Dim adoStart As New ADODB.Recordset
Dim InCount As Double
Dim OutCount As Double
Dim StrBill As String

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"))

'期初数据

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

 Set adoStart = Cw_DataEnvi.DataConnect.Execute(StrQC)

'单据发生
  StrBill = "select * from kf_v_mateinout where " & Str_QueryCondi & " and mnumber='" & Trim(adoTemp.Fields("mnumber")) & "' and billcode not in('1201','1202','1203')  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"))
      
     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.Row < CxbbGrid.FixedRows Then
     Exit Sub
  End If
  

    Sqlstr = "SELECT inoutmainid,billcode From kf_v_mateinout" & _
             " 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 "1212"
                    With KF_FrmMateIn
                        '填充查询单据标识
                        .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(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(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 + -