📄
字号:
Select Case Button.Key
Case "bcgs" '保存表格格式
Call Bcwggs(CxbbGrid, GridCode)
Case "hfmrgs" '恢复默认格式
Call Hfmrgs(CxbbGrid, GridCode)
Case "szxsxm" '设置显示项目
Call Szxsxm(CxbbGrid, GridCode)
End Select
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 "cx" '查 询
YX_FrmAccountStruC.Show 1
Case "bz" '帮 助
Call F1bz
Case "fh" '退 出
Unload Me
End Select
End Sub
Private Sub Timer1_Timer() '在窗体激活后调入查询程序
Timer1.Enabled = False
Xt_Wait.Show
Xt_Wait.Refresh
'加快显示速度
CxbbGrid.Redraw = False
'生成查询结果
Call Sub_Query
CxbbGrid.Redraw = True
Xt_Wait.Hide
End Sub
Private Sub Sub_Query() '生成查询结果
Dim Rec_Query As New ADODB.Recordset '查询结果动态集
Dim Rec_SumQuery As New ADODB.Recordset '查询汇总结果动态集
Dim SqlStr As String '查询动态连接字符串
Dim i As Integer '为0清空循环变量
Dim Str_Ccode As String '分析结构科目
Dim Str_AccountType As String '分析结构科目方向
Dim Int_Curr_year As Integer '分析期年
Dim Int_Curr_month1 As Integer '分析期开始月
Dim Int_Curr_month2 As Integer '分析期结束月
Dim Int_Comp_year As Integer '比较期年
Dim Int_Comp_month1 As Integer '比较期开始月
Dim Int_Comp_month2 As Integer '比较期结束月
'以下为用户自定义部分[
With YX_FrmAccountStruC
'显示查询会计期间
Lab_TitleText(0).Caption = .Lbl_Comment.Caption
Str_Ccode = Trim(.LrText(0).Tag)
Str_AccountType = Trim(.Cbo_AccountType.Text)
Select Case Len(.Combo_BaseDate.Text) ' 判断 Number 的值。
Case 4 '选择全年
Int_Curr_year = Val(Mid(.Combo_BaseDate.Text, 1, 4))
Int_Curr_month1 = 1
Int_Curr_month2 = 12
If Len(.Combo_SelYear.Text) <> 0 Then
Int_Comp_year = Val(.Combo_SelYear.Text)
Int_Comp_month1 = 1
Int_Comp_month2 = 12
End If
Case 7 '选择了月份
Int_Curr_year = Val(Mid(.Combo_BaseDate.Text, 1, 4))
Int_Curr_month1 = Val(Mid(.Combo_BaseDate.Text, 6, 2))
Int_Curr_month2 = Val(Mid(.Combo_BaseDate.Text, 6, 2))
If Len(.Combo_CompDate.Text) <> 0 Then
Int_Comp_year = Val(Mid(.Combo_CompDate.Text, 1, 4))
Int_Comp_month1 = Val(Mid(.Combo_CompDate.Text, 6, 2))
Int_Comp_month2 = Val(Mid(.Combo_CompDate.Text, 6, 2))
End If
Case 15 '选择了季度
Int_Curr_year = Val(Mid(.Combo_BaseDate.Text, 1, 4))
Int_Curr_month1 = Val(Mid(.Combo_BaseDate.Text, 6, 2))
Int_Curr_month2 = Val(Mid(.Combo_BaseDate.Text, 14, 2))
If Len(.Combo_CompDate.Text) <> 0 Then
Int_Comp_year = Val(Mid(.Combo_CompDate.Text, 1, 4))
Int_Comp_month1 = Val(Mid(.Combo_CompDate.Text, 6, 2))
Int_Comp_month2 = Val(Mid(.Combo_CompDate.Text, 14, 2))
End If
End Select
If Str_AccountType = "余额" Then
Int_Curr_month1 = Int_Curr_month2
Int_Comp_month1 = Int_Comp_month2
End If
End With
SqlStr = "exec cwfx_AccountStruA " & "'" & Str_Ccode & "','" & Str_AccountType & "'," & _
Int_Curr_year & "," & Int_Curr_month1 & "," & Int_Curr_month2 _
& "," & Int_Comp_year & "," & Int_Comp_month1 & "," & Int_Comp_month2
Set Rec_Query = Cw_DataEnvi.DataConnect.Execute(SqlStr)
SqlStr = "select sum(Curr_V) as Sum_CurrV,sum(Comp_V) as Sum_CompV from tempdb.dbo.##temp"
Set Rec_SumQuery = Cw_DataEnvi.DataConnect.Execute(SqlStr)
SqlStr = "select * from tempdb.dbo.##temp"
Set Rec_Query = Cw_DataEnvi.DataConnect.Execute(SqlStr)
With Rec_Query
CxbbGrid.Rows = CxbbGrid.FixedRows
CxbbGrid.Rows = CxbbGrid.FixedRows + .RecordCount
Jsqte = CxbbGrid.FixedRows
Do While Not .EOF
If Jsqte >= CxbbGrid.Rows Then
CxbbGrid.AddItem ""
End If
CxbbGrid.TextMatrix(Jsqte, Sydz("001", GridStr(), Szzls)) = Space(2) & .Fields("Cname") '科目名称
CxbbGrid.TextMatrix(Jsqte, Sydz("002", GridStr(), Szzls)) = 0
CxbbGrid.TextMatrix(Jsqte, Sydz("003", GridStr(), Szzls)) = 0
CxbbGrid.TextMatrix(Jsqte, Sydz("004", GridStr(), Szzls)) = 0
CxbbGrid.TextMatrix(Jsqte, Sydz("005", GridStr(), Szzls)) = 0
CxbbGrid.TextMatrix(Jsqte, Sydz("006", GridStr(), Szzls)) = 0
If IsNull(.Fields("Curr_V")) Then
CxbbGrid.TextMatrix(Jsqte, Sydz("002", GridStr(), Szzls)) = 0
Else
CxbbGrid.TextMatrix(Jsqte, Sydz("002", GridStr(), Szzls)) = .Fields("Curr_V")
End If
If IsNull(.Fields("Comp_V")) Then
CxbbGrid.TextMatrix(Jsqte, Sydz("004", GridStr(), Szzls)) = 0
Else
CxbbGrid.TextMatrix(Jsqte, Sydz("004", GridStr(), Szzls)) = .Fields("Comp_V")
End If
If Not (Rec_SumQuery.Fields("Sum_CurrV") = 0 Or IsNull(Rec_SumQuery.Fields("Sum_CurrV")) Or IsNull(.Fields("Curr_V"))) Then
CxbbGrid.TextMatrix(Jsqte, Sydz("003", GridStr(), Szzls)) = .Fields("Curr_V") / Rec_SumQuery.Fields("Sum_CurrV") * 100
End If
If Not (Rec_SumQuery.Fields("Sum_CompV") = 0 Or IsNull(Rec_SumQuery.Fields("Sum_CompV")) Or IsNull(.Fields("Comp_V"))) Then
CxbbGrid.TextMatrix(Jsqte, Sydz("005", GridStr(), Szzls)) = .Fields("Comp_V") / Rec_SumQuery.Fields("Sum_CompV") * 100
End If
CxbbGrid.TextMatrix(Jsqte, Sydz("006", GridStr(), Szzls)) = _
Val(CxbbGrid.TextMatrix(Jsqte, Sydz("003", GridStr(), Szzls))) - _
Val(CxbbGrid.TextMatrix(Jsqte, Sydz("005", GridStr(), Szzls)))
For i = 2 To 6 '从第002---005列为统计数值数据,为0清空
If CxbbGrid.TextMatrix(Jsqte, Sydz(IIf(i > 9, "0", "00") + Trim(Str(i)), GridStr(), Szzls)) = 0 Then
CxbbGrid.TextMatrix(Jsqte, Sydz(IIf(i > 9, "0", "00") + Trim(Str(i)), GridStr(), Szzls)) = ""
End If
Next i
Jsqte = Jsqte + 1
'移动到下一条记录
.MoveNext
Loop
End With
If Jsqte >= CxbbGrid.Rows Then
CxbbGrid.AddItem "" '此行为合计行
End If
CxbbGrid.Cell(flexcpBackColor, Jsqte, Qslz, Jsqte, Qslz + 6 - 1) = QBColor(11)
CxbbGrid.TextMatrix(Jsqte, Sydz("001", GridStr(), Szzls)) = "合计"
CxbbGrid.TextMatrix(Jsqte, Sydz("002", GridStr(), Szzls)) = 0
CxbbGrid.TextMatrix(Jsqte, Sydz("003", GridStr(), Szzls)) = 0
CxbbGrid.TextMatrix(Jsqte, Sydz("004", GridStr(), Szzls)) = 0
CxbbGrid.TextMatrix(Jsqte, Sydz("005", GridStr(), Szzls)) = 0
CxbbGrid.TextMatrix(Jsqte, Sydz("006", GridStr(), Szzls)) = 0
With Rec_SumQuery
If IsNull(.Fields("Sum_CurrV")) Then
CxbbGrid.TextMatrix(Jsqte, Sydz("002", GridStr(), Szzls)) = 0
Else
CxbbGrid.TextMatrix(Jsqte, Sydz("002", GridStr(), Szzls)) = .Fields("Sum_CurrV")
End If
If IsNull(.Fields("Sum_CompV")) Then
CxbbGrid.TextMatrix(Jsqte, Sydz("004", GridStr(), Szzls)) = 0
Else
CxbbGrid.TextMatrix(Jsqte, Sydz("004", GridStr(), Szzls)) = .Fields("Sum_CompV")
End If
If Rec_SumQuery.Fields("Sum_CurrV") <> 0 Then
CxbbGrid.TextMatrix(Jsqte, Sydz("003", GridStr(), Szzls)) = 100
End If
If Rec_SumQuery.Fields("Sum_CompV") <> 0 Then
CxbbGrid.TextMatrix(Jsqte, Sydz("005", GridStr(), Szzls)) = 100
End If
End With
For i = 2 To 6 '从第2列开始到5列为统计数值数据,为0清空
If CxbbGrid.TextMatrix(Jsqte, Sydz(IIf(i > 9, "0", "00") + Trim(Str(i)), GridStr(), Szzls)) = 0 Then
CxbbGrid.TextMatrix(Jsqte, Sydz(IIf(i > 9, "0", "00") + Trim(Str(i)), GridStr(), Szzls)) = ""
End If
Next
SqlStr = "drop table tempdb.dbo.##temp"
Cw_DataEnvi.DataConnect.Execute (SqlStr)
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 = 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(2) & Lab_TitleText(0).Caption
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 + -