📄
字号:
Private Sub GsToolbar_ButtonClick(ByVal Button As MSComctlLib.Button) '网格格式调整
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_FrmAccountDeptC.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_FrmAccountDeptC
'显示查询会计期间
Lab_TitleText(0).Caption = .Lbl_Comment.Caption
Str_Ccode = Trim(.LrText(0).Tag)
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
End With
SqlStr = "exec cwfx_AccountDeptA " & "'" & Str_Ccode & "'," & _
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("Deptname") '科目名称
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 + -