📄 z
字号:
iThisMonthBegin = iThisMonthEnd
iThisMonthEnd = item
End If
For i = iThisMonthBegin To iThisMonthEnd
iWriteCols = iWriteCols + 1
With CxbbGrid
.Cols = .Cols + 1
.FixedAlignment(.Cols - 1) = flexAlignCenterCenter
.ColAlignment(.Cols - 1) = 6
.ColWidth(.Cols - 1) = COL_WIDTH
.ColFormat(.Cols - 1) = "#,##0.00"
.TextMatrix(.FixedRows - 1, .Cols - 1) = CStr(Xtyear) & DATE_FIX & Format(i, "00") & ""
End With
Next
Case 1 '季
If iThisMonthBegin > iThisMonthEnd Then
item = iThisMonthBegin
iThisMonthBegin = iThisMonthEnd
iThisMonthEnd = item
End If
For i = iThisMonthBegin To iThisMonthEnd Step 3
iWriteCols = iWriteCols + 1
With CxbbGrid
.Cols = .Cols + 1
.FixedAlignment(.Cols - 1) = flexAlignCenterCenter
.ColAlignment(.Cols - 1) = 6
.ColWidth(.Cols - 1) = COL_WIDTH
.ColFormat(.Cols - 1) = "#,##0.00"
.TextMatrix(.FixedRows - 1, .Cols - 1) = CStr(Xtyear) & DATE_FIX & Format(CStr(i - 2), "00") & "-" & CStr(Xtyear) & DATE_FIX & Format(CStr(i), "00") & ""
End With
Next
Case 2 '年
If iThisYear > iCompYear Then
item = iThisYear
iThisYear = iCompYear
iCompYear = item
End If
For i = iCompYear To iThisYear
iWriteCols = iWriteCols + 1
With CxbbGrid
.Cols = .Cols + 1
.FixedAlignment(.Cols - 1) = flexAlignCenterCenter
.ColAlignment(.Cols - 1) = 6
.ColWidth(.Cols - 1) = COL_WIDTH
.ColFormat(.Cols - 1) = "#,##0.00"
.TextMatrix(.FixedRows - 1, .Cols - 1) = CStr(i) & "年"
End With
Next
End Select
End Sub
'=================写数据到表格===========================================
Private Sub dbFillGrid()
Dim iRow As Integer '网格列
Dim dbl_Fxq As Double '分析期数据
Dim dbl_Dbq As Double '对比期数据
Dim dbl_Cha As Double '对比期与分析期之差
Dim strItem As String
Dim clsIncClass As New clsInc
Call date_Change
clsIncClass.Init Cw_DataEnvi.DataConnect '初始化
With CxbbGrid
For iRow = .FixedRows To .Rows - 1
strItem = .TextMatrix(iRow, 0)
If intType = 1 Then '按季
dbl_Fxq = clsIncClass.GetPeriodValue(strItem, Val(Mid(strBegin, 6, 1)), Val(Right(strBegin, 1)), iThisYear)
dbl_Dbq = clsIncClass.GetPeriodValue(strItem, Val(Mid(strEnd, 6, 1)), Val(Right(strEnd, 1)), iThisYear)
ElseIf intType = 0 Then '月
dbl_Fxq = clsIncClass.GetPeriodValue(strItem, iThisMonthBegin, iThisMonthBegin, iThisYear)
dbl_Dbq = clsIncClass.GetPeriodValue(strItem, iCompMonthEnd, iCompMonthEnd, iThisYear)
ElseIf intType = 2 Then '年
dbl_Fxq = clsIncClass.GetPeriodValue(strItem, 1, 12, iThisYear)
dbl_Dbq = clsIncClass.GetPeriodValue(strItem, 1, 12, iCompYear)
End If
dbl_Cha = dbl_Fxq - dbl_Dbq
.TextMatrix(iRow, Sydz("002", GridStr(), Szzls)) = IIf(dbl_Fxq = 0, "", dbl_Fxq)
.TextMatrix(iRow, Sydz("003", GridStr(), Szzls)) = IIf(dbl_Dbq = 0, "", dbl_Dbq)
.TextMatrix(iRow, Sydz("004", GridStr(), Szzls)) = IIf(dbl_Cha = 0, "", dbl_Cha)
If dbl_Dbq <> 0 Then
.TextMatrix(iRow, Sydz("005", GridStr(), Szzls)) = (dbl_Cha / dbl_Dbq) * 100
Else
.TextMatrix(iRow, Sydz("005", GridStr(), Szzls)) = ""
End If
Next
End With
Set clsIncClass = Nothing
End Sub
Private Sub jgFillGrid()
Dim iRow As Integer '网格列
Dim dbl_Fxq As Double '分析期数据
Dim dbl_Dbq As Double '对比期数据
Dim dbl_FxqTotal As Double '分析期总额
Dim dbl_dbqTotal As Double '对比期总额
Dim dbl_LeiJiyear As Double '全年累计
Dim dbl_LeiJiyearTotal As Double '全年累计总额
Dim dbl_Char As Double '结构差额
Dim dbl_Cha As Double
Dim clsIncClass As New clsInc
Call date_Change
clsIncClass.Init Cw_DataEnvi.DataConnect '初始化
'----------算出年累计总金额、分析期总金额、对比期总金额-----------------------
If intType = 1 Then '按季
' dbl_Fxq = clsIncClass.GetPeriodValue(strItem, Mid(strBegin, 6, 2), Right(strBegin, 2), iThisYear)
' dbl_Dbq = clsIncClass.GetPeriodValue(strItem, Mid(strEnd, 6, 2), Right(strEnd, 2), iThisYear)
dbl_LeiJiyearTotal = 0 '年累计总金额
dbl_FxqTotal = clsIncClass.GetPeriodValue(strItem, Mid(strBegin, 6, 2), Right(strBegin, 2), iThisYear) '分析期总金额
dbl_dbqTotal = clsIncClass.GetPeriodValue(strItem, Mid(strEnd, 6, 2), Right(strEnd, 2), iThisYear) '对比期总金额
ElseIf intType = 0 Then '月
' dbl_Fxq = clsIncClass.GetPeriodValue(strItem, iThisMonthBegin, iThisMonthBegin, iThisYear)
' dbl_Dbq = clsIncClass.GetPeriodValue(strItem, iCompMonthEnd, iCompMonthEnd, iThisYear)
dbl_LeiJiyearTotal = clsIncClass.GetPeriodValue("产品销售收入", 1, 12, iThisYear) '年累计总金额
dbl_FxqTotal = clsIncClass.GetPeriodValue("产品销售收入", iThisMonthBegin, iThisMonthBegin, iThisYear) '分析期总金额
dbl_dbqTotal = clsIncClass.GetPeriodValue("产品销售收入", iCompMonthBegin, iCompMonthBegin, iThisYear) '对比期总金额
ElseIf intType = 2 Then '年
dbl_LeiJiyearTotal = clsIncClass.GetPeriodValue("产品销售收入", 1, 12, iThisYear) '年累计总金额
dbl_FxqTotal = clsIncClass.GetPeriodValue("产品销售收入", 1, 12, iThisYear) '分析期总金额
dbl_dbqTotal = clsIncClass.GetPeriodValue("产品销售收入", 1, 12, iCompYear) '对比期总金额
End If
'-----------------------------------------------
With CxbbGrid
For iRow = .FixedRows To .Rows - 1
strItem = .TextMatrix(iRow, 0) '取得每行项目名称
'---------------算出每行的分析期、对比期、年累计数据---------------------
If intType = 1 Then '按季
dbl_Fxq = clsIncClass.GetPeriodValue(strItem, Val(Mid(strBegin, 6, 1)), Val(Right(strBegin, 1)), iThisYear)
dbl_Dbq = clsIncClass.GetPeriodValue(strItem, Val(Mid(strEnd, 6, 1)), Val(Right(strEnd, 1)), iThisYear)
dbl_LeiJiyear = clsIncClass.GetPeriodValue(strItem, 1, 12, iThisYear)
ElseIf intType = 0 Then '月
dbl_Fxq = clsIncClass.GetPeriodValue(strItem, iThisMonthBegin, iThisMonthBegin, iThisYear)
dbl_Dbq = clsIncClass.GetPeriodValue(strItem, iCompMonthEnd, iCompMonthEnd, iThisYear)
dbl_LeiJiyear = clsIncClass.GetPeriodValue(strItem, 1, 12, iThisYear)
ElseIf intType = 2 Then '年
dbl_Fxq = clsIncClass.GetPeriodValue(strItem, 1, 12, iThisYear)
dbl_Dbq = clsIncClass.GetPeriodValue(strItem, 1, 12, iCompYear)
dbl_LeiJiyear = clsIncClass.GetPeriodValue(strItem, 1, 12, iThisYear)
End If
'-------------------------------------------------------------------------
.TextMatrix(iRow, Sydz("002", GridStr(), Szzls)) = IIf(dbl_Fxq = 0, "", dbl_Fxq) '分析期金额
.TextMatrix(iRow, Sydz("004", GridStr(), Szzls)) = IIf(dbl_Dbq = 0, "", dbl_Dbq) '比较期金额
.TextMatrix(iRow, Sydz("007", GridStr(), Szzls)) = IIf(dbl_LeiJiyear = 0, "", dbl_LeiJiyear) '全年累计金额
'------------分析期结构----------------
If dbl_FxqTotal <> 0 Then
.TextMatrix(iRow, Sydz("003", GridStr(), Szzls)) = (dbl_Fxq / dbl_FxqTotal) * 100
Else
.TextMatrix(iRow, Sydz("003", GridStr(), Szzls)) = ""
End If
'------------对比期结构-----------------
If dbl_dbqTotal <> 0 Then
.TextMatrix(iRow, Sydz("005", GridStr(), Szzls)) = (dbl_Dbq / dbl_dbqTotal) * 100
Else
.TextMatrix(iRow, Sydz("005", GridStr(), Szzls)) = ""
End If
'-------------结构增减--------------------
dbl_Cha = -Val(.TextMatrix(iRow, Sydz("005", GridStr(), Szzls))) + Val(.TextMatrix(iRow, Sydz("003", GridStr(), Szzls)))
.TextMatrix(iRow, Sydz("006", GridStr(), Szzls)) = IIf(dbl_Cha = 0, "", dbl_Cha)
'-------------全年累计结构---------------------
If dbl_LeiJiyearTotal <> 0 Then
.TextMatrix(iRow, Sydz("008", GridStr(), Szzls)) = (dbl_LeiJiyear / dbl_LeiJiyearTotal) * 100
Else
.TextMatrix(iRow, Sydz("008", GridStr(), Szzls)) = ""
End If
'-----------------------------------
Next
End With
Set clsIncClass = Nothing
End Sub
Private Sub date_Change()
lab_Fxq.Caption = "分析期:"
lab_Bjq.Caption = "比较期:"
If intType = 1 Then '按季查询
lab_fx.Caption = Space(4) & strBegin
lab_bj.Caption = Space(4) & strEnd
Else
lab_fx.Caption = Space(4) & CStr(iThisYear) & IIf(iThisMonthBegin = 0, "", DATE_FIX & CStr(iThisMonthBegin))
If bIFComp = True Then
lab_bj.Caption = Space(4) & CStr(iThisYear) & IIf(iCompMonthBegin = 0, "", DATE_FIX & CStr(iCompMonthBegin))
Else
lab_bj.Caption = ""
End If
End If
End Sub
Private Sub FillGrid()
If DEBUG_FLAG = False Then On Error Resume Next
Dim iRow As Integer
Dim iCol As Integer
Dim dbl_Return As Double
Dim dbl_BaseValue As Double '本期数据
Dim dbl_OldValue As Double '上期数据
GridStarCol = 2
For iCol = GridStarCol To GridStarCol + iWriteCols - 1
iRow = CxbbGrid.FixedRows
lab_Fxq.Caption = "从:"
lab_Bjq.Caption = "到:"
If intType = 1 Then '按季查询
' lab_fx.Caption = CStr(iThisYear) & "." & CStr(iThisMonthBegin) & "-" & CStr(iThisYear) & "." & CStr(iThisMonthEnd)
' lab_bj.Caption = CStr(iThisYear) & "." & CStr(iCompMonthBegin) & "-" & CStr(iThisYear) & "." & CStr(iCompMonthEnd)
lab_fx.Caption = strBegin
lab_bj.Caption = strEnd
Else
lab_fx.Caption = CStr(iThisYear) & IIf(iThisMonthBegin = 0, "", DATE_FIX & CStr(iThisMonthBegin))
lab_bj.Caption = CStr(iThisYear) & IIf(iThisMonthEnd = 0, "", DATE_FIX & CStr(iThisMonthEnd))
End If
With Rs
If Not (.EOF And .BOF) Then
.MoveFirst
Do Until .EOF
DoEvents
If IsNull(!comment) = False Then
If iRow > CxbbGrid.Rows Then CxbbGrid.AddItem ""
Select Case strItem
Case "cwfx_IncJds" '绝对数分析
Label_Bfb.Visible = False
dbl_Return = TimeClass(Trim(!item), iCol)
CxbbGrid.TextMatrix(iRow, iCol) = IIf(dbl_Return = 0, "", dbl_Return)
Case "cwfx_IncDj" '定基分析
Label_Bfb.Visible = True
dbl_OldValue = TimeClass(Trim(!item), iCol)
If iCol = GridStarCol Then '如果为起始列,则基数据为本期数据
dbl_BaseValue = dbl_OldValue
CxbbGrid.RowData(iRow) = dbl_OldValue '并保存基数据
Else '取保存的基数据为比较数据
dbl_BaseValue = CxbbGrid.RowData(iRow)
End If
If dbl_BaseValue <> 0 Then
dbl_Return = Format((dbl_OldValue / dbl_BaseValue * 100), "#,##0.##")
CxbbGrid.TextMatrix(iRow, iCol) = IIf(dbl_Return = 0, "", CStr(dbl_Return) & "")
Else
CxbbGrid.TextMatrix(iRow, iCol) = ""
End If
dbl_BaseValue = dbl_OldValue
Case "cwfx_IncHb" '环比分析
Label_Bfb.Visible = True
dbl_OldValue = TimeClass(Trim(!item), iCol)
If iCol = GridStarCol Then '如果为起始列,则基数据为本期数据
dbl_BaseValue = dbl_OldValue
CxbbGrid.RowData(iRow) = dbl_OldValue '并保存基数据
Else
dbl_BaseValue = CxbbGrid.RowData(iRow)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -