📄
字号:
'加快显示速度
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 SqlStr As String '查询动态连接字符串
Dim I As Integer '为0清空循环变量
Dim Dtm_CurrBegin As Date '分析期间查询开始日期
Dim Dtm_CurrEnd As Date '分析期间查询结束日期
Dim Dtm_CompBegin As Date '对比期间查询开始日期
Dim Dtm_CompEnd As Date '对比期间查询结束日期
Dim Curr_V As Currency
Dim Comp_V As Currency
Dim Sum_CurrV As Currency
Dim Sum_CompV As Currency
'以下为用户自定义部分[
With XJ_FrmCashChangeC
'显示查询会计期间
Dtm_CurrBegin = .lrText(0).Text
Dtm_CurrEnd = .lrText(1).Text
Dtm_CompBegin = .lrText(2).Text
Dtm_CompEnd = .lrText(3).Text
Lab_TitleText(0).Caption = "分析期间:" & .lrText(0).Text & "--" & .lrText(1).Text & _
" 对比期间:" & .lrText(2).Text & "--" & .lrText(3).Text
End With
SqlStr = "exec Cwfx_Sp_CashCompare '" & Dtm_CurrBegin & "','" & Dtm_CurrEnd & "','" & Dtm_CompBegin & "','" & Dtm_CompEnd & "'"
Set Rec_Query = Cw_DataEnvi.DataConnect.Execute(SqlStr)
'以下为现金流入项目
With Rec_Query
CxbbGrid.Rows = CxbbGrid.FixedRows
CxbbGrid.Rows = CxbbGrid.FixedRows + .RecordCount
Jsqte = CxbbGrid.FixedRows
If Jsqte >= CxbbGrid.Rows Then
CxbbGrid.AddItem ""
End If
CxbbGrid.TextMatrix(Jsqte, Sydz("001", GridStr(), Szzls)) = "现金流入科目"
Jsqte = Jsqte + 1
Sum_CurrV = 0
Sum_CompV = 0
'填写现金流入具体项目
.Filter = "direction = 0"
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
Curr_V = IIf(IsNull(.Fields("Curr_V")), 0, .Fields("Curr_V"))
Comp_V = IIf(IsNull(.Fields("Comp_V")), 0, .Fields("Comp_V"))
CxbbGrid.TextMatrix(Jsqte, Sydz("002", GridStr(), Szzls)) = Curr_V
CxbbGrid.TextMatrix(Jsqte, Sydz("003", GridStr(), Szzls)) = Comp_V
CxbbGrid.TextMatrix(Jsqte, Sydz("004", GridStr(), Szzls)) = _
Val(CxbbGrid.TextMatrix(Jsqte, Sydz("002", GridStr(), Szzls))) - _
Val(CxbbGrid.TextMatrix(Jsqte, Sydz("003", GridStr(), Szzls)))
If Comp_V <> 0 Then
CxbbGrid.TextMatrix(Jsqte, Sydz("005", GridStr(), Szzls)) = (Curr_V - Comp_V) / Comp_V * 100
End If
For I = 2 To 5 '从第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
Sum_CurrV = Sum_CurrV + Curr_V
Sum_CompV = Sum_CompV + Comp_V
'移动到下一条记录
.MoveNext
Loop
End With
If Jsqte >= CxbbGrid.Rows Then
CxbbGrid.AddItem "" '此行为现金流入合计行
End If
CxbbGrid.Cell(flexcpBackColor, Jsqte, 2, Jsqte, 6) = 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("002", GridStr(), Szzls)) = Sum_CurrV
CxbbGrid.TextMatrix(Jsqte, Sydz("003", GridStr(), Szzls)) = Sum_CompV
CxbbGrid.TextMatrix(Jsqte, Sydz("004", GridStr(), Szzls)) = _
Val(CxbbGrid.TextMatrix(Jsqte, Sydz("002", GridStr(), Szzls))) - _
Val(CxbbGrid.TextMatrix(Jsqte, Sydz("003", GridStr(), Szzls)))
If Sum_CompV <> 0 Then
CxbbGrid.TextMatrix(Jsqte, Sydz("005", GridStr(), Szzls)) = (Sum_CurrV - Sum_CompV) / Sum_CompV * 100
End If
For I = 2 To 5 '从第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
If Rec_Query.RecordCount <> 0 Then Rec_Query.MoveFirst
'以下为现金流出项目
Jsqte = Jsqte + 1
With Rec_Query
If Jsqte >= CxbbGrid.Rows Then
CxbbGrid.AddItem ""
End If
CxbbGrid.TextMatrix(Jsqte, Sydz("001", GridStr(), Szzls)) = "现金流出科目"
Jsqte = Jsqte + 1
Sum_CurrV = 0
Sum_CompV = 0
'填写现金流出具体项目
.Filter = "direction = 1"
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
Curr_V = IIf(IsNull(.Fields("Curr_V")), 0, .Fields("Curr_V"))
Comp_V = IIf(IsNull(.Fields("Comp_V")), 0, .Fields("Comp_V"))
CxbbGrid.TextMatrix(Jsqte, Sydz("002", GridStr(), Szzls)) = Curr_V
CxbbGrid.TextMatrix(Jsqte, Sydz("003", GridStr(), Szzls)) = Comp_V
CxbbGrid.TextMatrix(Jsqte, Sydz("004", GridStr(), Szzls)) = _
Val(CxbbGrid.TextMatrix(Jsqte, Sydz("002", GridStr(), Szzls))) - _
Val(CxbbGrid.TextMatrix(Jsqte, Sydz("003", GridStr(), Szzls)))
If Comp_V <> 0 Then
CxbbGrid.TextMatrix(Jsqte, Sydz("005", GridStr(), Szzls)) = (Curr_V - Comp_V) / Comp_V * 100
End If
For I = 2 To 5 '从第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
Sum_CurrV = Sum_CurrV + Curr_V
Sum_CompV = Sum_CompV + Comp_V
'移动到下一条记录
.MoveNext
Loop
End With
If Jsqte >= CxbbGrid.Rows Then
CxbbGrid.AddItem ""
End If
CxbbGrid.Cell(flexcpBackColor, Jsqte, Qslz, Jsqte, Qslz + 5 - 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("002", GridStr(), Szzls)) = Sum_CurrV
CxbbGrid.TextMatrix(Jsqte, Sydz("003", GridStr(), Szzls)) = Sum_CompV
CxbbGrid.TextMatrix(Jsqte, Sydz("004", GridStr(), Szzls)) = _
Val(CxbbGrid.TextMatrix(Jsqte, Sydz("002", GridStr(), Szzls))) - _
Val(CxbbGrid.TextMatrix(Jsqte, Sydz("003", GridStr(), Szzls)))
If Sum_CompV <> 0 Then
CxbbGrid.TextMatrix(Jsqte, Sydz("005", GridStr(), Szzls)) = (Sum_CurrV - Sum_CompV) / Sum_CompV * 100
End If
For I = 2 To 5 '从第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
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 + -