📄 z
字号:
Case "dy" '打 印
Call bbyl(False)
Case "cx" '查 询
Call BalFx2(strItem)
If Me.bSeach = True Then
If DEBUG_FLAG = False Then Xt_Wait.Show
Call FormInit
Me.bSeach = False
If DEBUG_FLAG = False Then Xt_Wait.Hide
End If
Case "bz" '帮 助
Call F1bz
Case "fh" '退 出
Unload Me
Case "xx"
pub_SelDate2.Show vbModal
End Select
End Sub
Private Sub bbyl(bbylte As Boolean) '报表打印预览
If DEBUG_FLAG = False Then On Error Resume Next
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_Fxq.Caption & lab_fx.Caption & Space(20) & lab_Bjq.Caption & lab_bj.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
Private Sub GetBalZiChan()
If DEBUG_FLAG = False Then On Error Resume Next
'填充资产类项目
Dim iRow As Integer
Set Rs = Cw_DataEnvi.DataConnect.Execute("select * from cwfx_BalanceInitial")
iWriteRows = Rs.RecordCount - 1 '循环写入行数
With CxbbGrid
iRow = .FixedRows
If Me.strItem = "cwfx_BalJg" Then
dbl_ZiChan = TimeClass2("资产合计", "001") '本期资产合计
If iCompYear <> 0 Then
dbl_ZiChanComp = TimeClass2("资产合计", "003") '比较期资产合计
End If
dbl_FuZhai = TimeClass2("负债和所有者权益合计", "001") '本期负债合计
If iCompYear <> 0 Then
dbl_FuZhaiComp = TimeClass2("负债和所有者权益合计", "003") '比较期负债合计
End If
End If
Do Until Rs.EOF
.AddItem ""
.TextMatrix(iRow, 0) = RTrim(Rs!leftorright)
.TextMatrix(iRow, Sydz("001", GridStr(), Szzls)) = RTrim(Rs!comment)
If IsNull(Rs!Account) = False Then Call FillGrid(Trim(Rs!item), iRow)
.RowHeight(iRow) = Sjhgd
Rs.MoveNext
iRow = iRow + 1
Loop
End With
End Sub
Private Sub AddGridCol()
If DEBUG_FLAG = False Then On Error Resume Next
Dim item As Integer
Dim i As Integer
iWriteCols = 0 '循环写入写数置0
itype = Me.intType
Select Case itype
Case 0 '月
If iBeginMonth > iEndMonth Then
item = iBeginMonth
iBeginMonth = iEndMonth
iEndMonth = item
End If
For i = iBeginMonth To iEndMonth
iWriteCols = iWriteCols + 1
With CxbbGrid
.Cols = .Cols + 1
.FixedAlignment(.Cols - 1) = flexAlignCenterCenter
.CellAlignment = flexAlignRightCenter
.TextMatrix(.FixedRows - 1, .Cols - 1) = CStr(Xtyear) & DATE_FIX & Format(i, "00") & ""
End With
Next
Case 1 '季
If iBeginMonth > iEndMonth Then
item = iBeginMonth
iBeginMonth = iEndMonth
iEndMonth = item
End If
For i = iBeginMonth To iEndMonth Step 3
iWriteCols = iWriteCols + 1
With CxbbGrid
.Cols = .Cols + 1
.FixedAlignment(.Cols - 1) = flexAlignCenterCenter
.CellAlignment = flexAlignRightCenter
.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 iYear > iExYear Then
item = iYear
iYear = iExYear
iExYear = item
End If
For i = iExYear To iYear
iWriteCols = iWriteCols + 1
With CxbbGrid
.Cols = .Cols + 1
.FixedAlignment(.Cols - 1) = flexAlignCenterCenter
.CellAlignment = flexAlignRightCenter
.TextMatrix(.FixedRows - 1, .Cols - 1) = CStr(i) & "年"
End With
Next
End Select
End Sub
'=================写数据到表格===========================================
Private Sub FillGrid(ByVal strItem As String, ByVal iRow As Integer)
If DEBUG_FLAG = False Then On Error Resume Next
Dim dbl_Fx As Double '分析期数据
Dim dbl_Bj As Double '比较期数据
Dim dbl_Cha As Double '差
Dim dbl_Bi As Double '比值
Dim dbl_fxBi As Double '比值
Dim dbl_dbBi As Double '比值
Select Case Me.strItem
Case "cwfx_BalDb"
dbl_Fx = TimeClass(strItem, "002")
dbl_Bj = TimeClass(strItem, "003")
dbl_Cha = dbl_Fx - dbl_Bj
If dbl_Bj <> 0 Then
dbl_Bi = dbl_Cha / dbl_Bj
End If
With CxbbGrid
CxbbGrid.TextMatrix(iRow, Sydz("002", GridStr(), Szzls)) = IIf(dbl_Fx = 0, "", dbl_Fx)
CxbbGrid.TextMatrix(iRow, Sydz("003", GridStr(), Szzls)) = IIf(dbl_Bj = 0, "", dbl_Bj)
CxbbGrid.TextMatrix(iRow, Sydz("004", GridStr(), Szzls)) = IIf(dbl_Cha = 0, "", dbl_Cha)
CxbbGrid.TextMatrix(iRow, Sydz("005", GridStr(), Szzls)) = IIf(dbl_Bi = 0, "", CStr(dbl_Bi) * 100)
End With
Case "cwfx_BalJg"
dbl_Fx = TimeClass2(strItem, "002")
dbl_Bj = TimeClass2(strItem, "004")
If CBool(CxbbGrid.TextMatrix(iRow, 0)) = True Then
'资产类
If dbl_ZiChan <> 0 Then
dbl_fxBi = dbl_Fx / dbl_ZiChan '分析期结构
Else
dbl_fxBi = 0
End If
If dbl_ZiChanComp <> 0 Then
dbl_dbBi = dbl_Bj / dbl_ZiChanComp '比较期结构
Else
dbl_dbBi = 0
End If
Else
'负债类
If dbl_FuZhai <> 0 Then
dbl_fxBi = dbl_Fx / dbl_FuZhai '分析期结构
Else
dbl_fxBi = 0
End If
If dbl_FuZhaiComp <> 0 Then
dbl_dbBi = dbl_Bj / dbl_FuZhaiComp '比较期结构
Else
dbl_dbBi = 0
End If
End If
With CxbbGrid
CxbbGrid.TextMatrix(iRow, Sydz("002", GridStr(), Szzls)) = IIf(dbl_Fx = 0, "", dbl_Fx)
CxbbGrid.TextMatrix(iRow, Sydz("003", GridStr(), Szzls)) = IIf(dbl_fxBi = 0, "", CStr(dbl_fxBi) * 100)
CxbbGrid.TextMatrix(iRow, Sydz("004", GridStr(), Szzls)) = IIf(dbl_Bj = 0, "", dbl_Bj)
CxbbGrid.TextMatrix(iRow, Sydz("005", GridStr(), Szzls)) = IIf(dbl_dbBi = 0, "", CStr(dbl_dbBi) * 100)
CxbbGrid.TextMatrix(iRow, Sydz("006", GridStr(), Szzls)) = IIf((dbl_fxBi - dbl_dbBi) = 0, "", CStr(dbl_fxBi - dbl_dbBi) * 100)
End With
End Select
End Sub
Private Function TimeClass(ByVal ItemClass As String, ByVal cCol As String) As Double
If DEBUG_FLAG = False Then On Error Resume Next
Dim iTemMonthBegin As Integer
Dim iTemMonthEnd As Integer
Dim iTemYear As Integer
itype = Me.intType
Select Case itype
Case 0 '月
If cCol = "002" Then '分析期
iTemYear = iThisYear
iTemMonthBegin = iThisMonthBegin
iTemMonthEnd = iThisMonthEnd
ElseIf cCol = "003" Then '比较期
iTemYear = iCompYear
iTemMonthBegin = iCompMonthBegin
iTemMonthEnd = iCompMonthEnd
End If
TimeClass = myclsBal.GetPeriodValue(ItemClass, iTemMonthEnd, iTemYear)
Case 1 '季
If cCol = "002" Then '分析期
iTemYear = iThisYear
iTemMonthBegin = iThisMonthBegin
iTemMonthEnd = iThisMonthEnd
ElseIf cCol = "003" Then '比较期
iTemYear = iCompYear
iTemMonthBegin = iCompMonthBegin
iTemMonthEnd = iCompMonthEnd
End If
TimeClass = myclsBal.GetPeriodValue(ItemClass, iTemMonthEnd, iTemYear)
Case 2 '年
If cCol = "002" Then '分析期
iTemYear = iThisYear
ElseIf cCol = "003" Then '比较期
iTemYear = iCompYear
End If
TimeClass = myclsBal.GetPeriodValue(ItemClass, 12, iTemYear)
End Select
End Function
Private Function TimeClass2(ByVal ItemClass As String, ByVal cCol As String) As Double
If DEBUG_FLAG = False Then On Error Resume Next
Dim iTemMonthBegin As Integer
Dim iTemMonthEnd As Integer
Dim iTemYear As Integer
itype = Me.intType
Select Case itype
Case 0 '月
If cCol = "001" Or cCol = "002" Then '分析期
iTemYear = iThisYear
iTemMonthBegin = iThisMonthBegin
iTemMonthEnd = iThisMonthEnd
ElseIf cCol = "003" Or cCol = "004" Then '比较期
iTemYear = iCompYear
iTemMonthBegin = iCompMonthBegin
iTemMonthEnd = iCompMonthEnd
End If
TimeClass2 = myclsBal.GetPeriodValue(ItemClass, iTemMonthEnd, iTemYear)
Case 1 '季
If cCol = "001" Or cCol = "002" Then '分析期
iTemYear = iThisYear
iTemMonthBegin = iThisMonthBegin
iTemMonthEnd = iThisMonthEnd
ElseIf cCol = "003" Or cCol = "004" Then '比较期
iTemYear = iCompYear
iTemMonthBegin = iCompMonthBegin
iTemMonthEnd = iCompMonthEnd
End If
TimeClass2 = myclsBal.GetPeriodValue(ItemClass, iTemMonthEnd, iTemYear)
Case 2 '年
If cCol = "001" Or cCol = "002" Then '分析期
iTemYear = iThisYear
ElseIf cCol = "003" Or cCol = "004" Then '比较期
iTemYear = iCompYear
End If
TimeClass2 = myclsBal.GetPeriodValue(ItemClass, 12, iTemYear)
End Select
End Function
'========================================================================
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -