📄 ʰ
字号:
'==============用于标识TAB控件的两个标签(bsj)===========
Const STAB_BANK = 0 '银行对账单
Const STAB_COM = 1 '单位日记账
'=======================================================
Dim ReportTitle As String '报表主标题
'以下为固定使用变量(网格)
Dim Dyymctbl As New DY_Dyymsz '打印页面窗体变量
Dim GridCode As String '显示网格网格代码
Dim GridInf() As Variant '整个网格设置信息
Dim Qslz As Long '网格隐藏(非操作显示)列数
Dim Sjhgd As Double '网格数据行高度
Dim GridBoolean() As Boolean '网格列信息(布尔型)
Dim GridStr() As String '网格列信息(字符型)
Dim GridInt() As Integer '网格列信息(整型)
Dim Szzls As Integer '数组总列数(网格列数-1)
'窗体装入
Sub Form_Load()
'隐藏选择对话框
YH_FrmXzkm.Hide
'调入打印页面设置窗体
Label1.Caption = YH_FrmXzkm.Combo1.Text
XtReportCode = "Cwzz_yhgdqk"
Load Dyymctbl
ReportTitle = "银行对帐单"
'调入网格
GridCode = "Cwzz_yhcxgd"
Call BzWgcsh(CxbbGrid, GridCode, GridInf(), GridBoolean(), GridInt(), GridStr())
Lab_TitleText(0) = Mid(Trim(Str(10000 + Xtyear)), 2, 4) + "." + Mid(Trim(Str(100 + Xtmm)), 2, 2)
Qslz = GridInf(1)
Sjhgd = GridInf(2)
Sfxshjwg = GridInf(7)
Szzls = CxbbGrid.Cols - 1
'调入网格
GridCode = "Cwzz_yhcxgd1"
Call BzWgcsh(vsFlexGrid1, GridCode, GridInf(), GridBoolean(), GridInt(), GridStr())
Qslz = GridInf(1)
Sjhgd = GridInf(2)
Sfxshjwg = GridInf(7)
Szzls = CxbbGrid.Cols - 1
Call Sub_ShowBill
'调整标题位置
SetTitlePos tsLabel(4)
End Sub
Private Sub Form_Resize()
On Error Resume Next
With SSTab1
.Width = Me.Width - 100
.Height = Me.Height - .Top - 400
End With
With vsFlexGrid1
.Width = Me.Width - 160
.Height = Me.Height - SSTab1.Top - .Top - 400
End With
With Pic_Title
.Width = Me.Width - 160
End With
With CxbbGrid
.Width = Me.Width - 160
.Height = Me.Height - SSTab1.Top - .Top - 400
End With
With Pic_Title
.Width = Me.Width - 160
End With
GsToolbar.Left = Me.Width - GsToolbar.Width - 140
End Sub
'窗体卸载
Private Sub Form_Unload(Cancel As Integer)
'卸载打印页面设置窗体
Unload Dyymctbl
Glo_Variable.Unload_TF = True
Unload YH_FrmXzkm
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 = 1
'报表表尾行数
Bbbwhgs = 1
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
'报表行组织形式(0-居左 1-居中 2-居右)
Bbxbt(1) = Space(0) + Fun_FormatOutPut("会计期间:" + Trim(Lab_TitleText(0)), 19)
Bbxbt(1) = Bbxbt(1) + Fun_FormatOutPut("科目编码:" + Trim(Label1), 26)
'报表小标题组织形式
'报表行组织形式(0-居左 1-居中 2-居右)
bbxbtzzxs(1) = 0
Bbbwhzzxs(1) = 1
'============选择打印银行对账单或单位日记账(bsj 6月4日修改部分)=================
'修改原因:进入“预览”窗口,点击“返回”2次才能完全退出
'修改后: 根据STAB控件的标签不同分别预览
Select Case SSTab1.Tab
Case STAB_BANK '预览银行对账单
ReportTitle = "银行对帐单"
'报表主标题
Bbzbt = ReportTitle
Bbxbt(1) = Space(0) + Fun_FormatOutPut("会计期间:" + Trim(Lab_TitleText(0)), 19)
Bbxbt(1) = Bbxbt(1) + Fun_FormatOutPut("科目编码:" + Trim(Label1), 26)
Call Scyxsjb(CxbbGrid) '生成报表数据
Call Scdybb(Dyymctbl, Bbzbt, Bbxbt(), bbxbtzzxs(), Bbxbtgs, Bbbwh(), Bbbwhzzxs(), Bbbwhgs, bbylte)
If Not bbylte Then
Unload DY_Tybbyldy
End If
Case STAB_COM '预览单位日记账
ReportTitle = "单位日记帐"
'报表主标题
Bbzbt = ReportTitle
Bbxbt(1) = Space(0) + Fun_FormatOutPut("会计期间:" + Trim(Lab_TitleText(0)), 26)
Bbxbt(1) = Bbxbt(1) + Fun_FormatOutPut("科目编码:" + Trim(Label1), 26)
Call Scyxsjb(vsFlexGrid1) '生成报表数据
Call Scdybb(Dyymctbl, Bbzbt, Bbxbt(), bbxbtzzxs(), Bbxbtgs, Bbbwh(), Bbbwhzzxs(), Bbbwhgs, bbylte)
If Not bbylte Then
Unload DY_Tybbyldy
End If
End Select
End Sub
Private Sub GsToolbar_ButtonClick(ByVal Button As MSComctlLib.Button)
Select Case SSTab1.Tab
Case STAB_BANK '预览银行对账单
Select Case Button.Key
Case "bcgs" '保存表格格式
Call Bcwggs(CxbbGrid, GridCode, GridStr())
Case "hfmrgs" '恢复默认格式
Call Hfmrgs(CxbbGrid, GridCode, GridStr())
Case "szxsxm" '设置显示项目
Call Szxsxm(CxbbGrid, GridCode)
End Select
Case STAB_COM '预览单位日记账
Select Case Button.Key
Case "bcgs" '保存表格格式
Call Bcwggs(vsFlexGrid1, GridCode, GridStr())
Case "hfmrgs" '恢复默认格式
Call Hfmrgs(vsFlexGrid1, GridCode, GridStr())
Case "szxsxm" '设置显示项目
Call Szxsxm(vsFlexGrid1, GridCode)
End Select
End Select
End Sub
Private Sub SSTab1_Click(PreviousTab As Integer)
If SSTab1.Tab = 0 Then
'调入网格
GridCode = "Cwzz_yhcxgd"
Call BzWgcsh(CxbbGrid, GridCode, GridInf(), GridBoolean(), GridInt(), GridStr())
Qslz = GridInf(1)
Sjhgd = GridInf(2)
Sfxshjwg = GridInf(7)
Szzls = CxbbGrid.Cols - 1
End If
If SSTab1.Tab = 1 Then
'调入网格
GridCode = "Cwzz_yhcxgd1"
Call BzWgcsh(vsFlexGrid1, GridCode, GridInf(), GridBoolean(), GridInt(), GridStr())
Qslz = GridInf(1)
Sjhgd = GridInf(2)
Sfxshjwg = GridInf(7)
Szzls = CxbbGrid.Cols - 1
End If
Call Sub_ShowBill
End Sub
Private Sub SzToolbar_ButtonClick(ByVal Button As MSComctlLib.Button)
Select Case Button.Key
Case "ymsz" '页面设置
Dyymctbl.Show 1
Case "yl" '预览
Call bbyl(True)
Case "dy" '打印
Call bbyl(False)
Case "fh" '退出
Unload Me
Case "sel"
Glo_Variable.Unload_TF = False
YH_FrmXzkm.HelpContextID = "0115006"
YH_FrmXzkm.Show 1
Case "bz"
Call F1bz
End Select
End Sub
'显示网格数据
Private Sub Sub_ShowBill()
Dim RecTemp As New ADODB.Recordset
Dim Recfind As New ADODB.Recordset
Dim Jsqte As Integer
'银对帐单数据
With CxbbGrid
SQL_Str = "select * from cwzz_bankbill where (rectype=1 or rectype=2) and bdelete=0 and ccode='" & Val(Label1.Caption) & "'"
Set RecTemp = Cw_DataEnvi.DataConnect.Execute(SQL_Str)
Jsqte = 1
Do While Not RecTemp.EOF()
If Jsqte >= .Rows Then
.AddItem ""
End If
'[>>显示单据分录
.TextMatrix(Jsqte, 0) = "*" '行标识
.TextMatrix(Jsqte, 1) = Trim(RecTemp.Fields("BankBillID"))
.TextMatrix(Jsqte, Sydz("001", GridStr(), Szzls)) = Format(RecTemp.Fields("billDATe"), "yyyy-mm-dd") '结算方式编码
If Recfind.State = 1 Then Recfind.Close
SQL_Str = "select * from Gy_settlement where sscode='" & RecTemp.Fields!sscode & "'"
Set Recfind = Cw_DataEnvi.DataConnect.Execute(SQL_Str)
If Recfind.EOF = False Then
.TextMatrix(Jsqte, Sydz("002", GridStr(), Szzls)) = Trim(Recfind.Fields("ssname") & "") '结算方式名称
End If
.TextMatrix(Jsqte, Sydz("003", GridStr(), Szzls)) = Trim(RecTemp.Fields("BillNo") & "") '票号
If RecTemp.Fields("jfje") <> 0 And IsNull(RecTemp.Fields("jfje")) = False Then
.TextMatrix(Jsqte, Sydz("004", GridStr(), Szzls)) = Format(RecTemp.Fields("Jfje"), "#,###.00") '借方金额
End If
If RecTemp.Fields("dfje") <> 0 And IsNull(RecTemp.Fields("dfje")) = False Then
.TextMatrix(Jsqte, Sydz("005", GridStr(), Szzls)) = Format(RecTemp.Fields("Dfje"), "#,###.00") '贷方金额
End If
'<<]
.RowHeight(Jsqte) = Sjhgd
If RecTemp.Fields("bcheckflag") = True Then '填充网格颜色\标志
.Cell(flexcpBackColor, Jsqte, Sydz("001", GridStr(), Szzls), Jsqte, Sydz("006", GridStr(), Szzls)) = Label3(0).BackColor
.TextMatrix(Jsqte, Sydz("006", GridStr(), Szzls)) = "○"
End If
If RecTemp.Fields("handworkflag") = True Then
.Cell(flexcpBackColor, Jsqte, Sydz("001", GridStr(), Szzls), Jsqte, Sydz("006", GridStr(), Szzls)) = Label3(0).BackColor
.TextMatrix(Jsqte, Sydz("006", GridStr(), Szzls)) = "√"
End If
Jsqte = Jsqte + 1
RecTemp.MoveNext
Loop
End With
'日记帐期初数据
With vsFlexGrid1
Sqlstr = "select dDATe,sscode,vouchclasscode,vouchno,BillNo,Jfje,Dfje,digest,billdate,bcheckflag, " _
& "handworkflag from cwzz_rjznotcheck where (rectype=1 ) and bdelete=0 " _
& "and ccode='" & Val(Label1.Caption) & "' UNION select dDATe,sscode,vouchclasscode, " _
& "vouchno,BillNo,Jfje,Dfje,digest,billdate,bcheckflag,handworkflag " _
& "from Cwzz_V_AccVouch where ccode='" & Val(Label1.Caption) & "' and bdelete=0"
Set RecTemp = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
Jsqte = 1
Do While Not RecTemp.EOF()
If Jsqte >= .Rows Then
.AddItem ""
End If
'[>>显示单据分录
'凭证日期
.TextMatrix(Jsqte, 0) = Format(RecTemp.Fields("dDATe"), "yyyy-mm-dd")
'结算方式编码
SQL_Str = "select * from Gy_settlement where sscode='" & RecTemp.Fields!sscode & "'"
Set Recfind = Cw_DataEnvi.DataConnect.Execute(SQL_Str)
If Recfind.EOF = False Then
.TextMatrix(Jsqte, 2) = Trim(Recfind.Fields("ssname") & "") '结算方式名称
End If
'凭证号
.TextMatrix(Jsqte, 7) = Trim(RecTemp.Fields("vouchclasscode")) + "-" + Trim(RecTemp.Fields("vouchno"))
'票号
.TextMatrix(Jsqte, 3) = Trim(RecTemp.Fields("BillNo") & "")
'借方金额
If Val(RecTemp.Fields("Jfje")) <> 0 Then
.TextMatrix(Jsqte, 4) = Trim(Str(RecTemp.Fields("Jfje")))
End If
'贷方金额
If Val(RecTemp.Fields("Dfje")) <> 0 Then
.TextMatrix(Jsqte, 5) = Trim(Str(RecTemp.Fields("Dfje")))
End If
'摘要
If IsNull(RecTemp.Fields("digest")) = False Then
.TextMatrix(Jsqte, 8) = Trim(RecTemp.Fields("digest") & "")
Else
.TextMatrix(Jsqte, 8) = ""
End If
'票据日期
.TextMatrix(Jsqte, 1) = Format(RecTemp.Fields("billdate"), "yyyy-mm-dd") '计量单位
'<<]
.RowHeight(Jsqte) = Sjhgd
If RecTemp.Fields("bcheckflag") = True Then '填充网格颜色\对帐标志
.Cell(flexcpBackColor, Jsqte, 0, Jsqte, .Cols - 1) = Label3(0).BackColor
.TextMatrix(Jsqte, 6) = "○"
End If
If RecTemp.Fields("handworkflag") = True Then
.Cell(flexcpBackColor, Jsqte, 0, Jsqte, .Cols - 1) = Label3(0).BackColor
.TextMatrix(Jsqte, 6) = "√"
End If
Jsqte = Jsqte + 1
RecTemp.MoveNext
Loop
End With
'对网格进行合计
CxbbGrid.SubtotalPosition = flexSTBelow
CxbbGrid.Subtotal flexSTSum, -1, Sydz("004", GridStr(), Szzls), "#,###.00", , , , "合计"
CxbbGrid.Subtotal flexSTSum, -1, Sydz("005", GridStr(), Szzls), "#,###.00", , , , "合计"
vsFlexGrid1.SubtotalPosition = flexSTBelow
vsFlexGrid1.Subtotal flexSTSum, -1, 4, "#,###.00", , , , "合计"
vsFlexGrid1.Subtotal flexSTSum, -1, 5, "#,###.00", , , , "合计"
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -