📄 i-
字号:
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 + -