📄 结息日设置.frm
字号:
'--------------------------------
'时间:2001.11.12
'版权:北京用友软件股份有限公司
'设计:章景峰
'编码:章景峰
'说明:U8资金管理---结息日定义
'--------------------------------
Option Explicit
Private Const conMoveLimit = 1000
Private Const m_conBIStyle = 3
Private Const m_conChildBIStyle = 92
Private m_EO As U8FDEso.EntityObject '----当前实体对象实例
Private m_OldEO As U8FDEso.EntityObject '----在新增或编辑时备份当前实体对象,用于恢复操作
Private m_OID As New U8FDEso.OIDObject
Private m_EditStatus As Boolean
Private NodeKey As String
Private PrintTypeList As String
Private PrintSizeList As String
Private SetPrintDataStyleXML_flag As Boolean
Public Property Get EO() As U8FDEso.EntityObject
Set EO = m_EO
End Property
Public Property Set EO(NewEO As U8FDEso.EntityObject)
Set m_EO = NewEO
End Property
Public Sub AddNew()
Dim oEO As U8FDEso.EntityObject
Dim objCadBI As New U8FDBso.clsCadBI
On Error GoTo lblHandle
'1、申请权限
'初始化实体对象
Set oEO = objCadBI.Init(g_sDataSourceName, m_conBIStyle)
'----用于备份
If Not m_EO Is Nothing Then Set m_OldEO = m_EO.Clone(U8FDEso.esoStructureAndData)
Set m_EO = oEO
m_EO.State = U8FDEso.esoAddNew
'----设置界面(值和状态)
SetUI
Me.txtCode.SetFocus
Exit Sub
lblHandle:
MsgBox Err.Description, vbInformation, g_conSysName
End Sub
Public Sub Edit(Optional OID As U8FDEso.OIDObject)
Dim objCadBI As New U8FDBso.clsCadBI
Dim objLockMgr As New U8FDMgr.LockManager
On Error GoTo lblHandle
'----
If Not OID Is Nothing Then
m_EO.OID = OID
ElseIf mID(NodeKey, 2) = m_OID.id Then
m_EO.OID = mID(Me.treStyle.Nodes(NodeKey).Parent.key, 2)
End If
'----锁定实体对象
objLockMgr.LockIt g_sDataSourceName, m_EO.OID, zjLogInfo.cUserName, ComputerName
Set objLockMgr = Nothing
'----用于备份
Set m_OldEO = m_EO.Clone(U8FDEso.esoStructureAndData)
m_EO.State = U8FDEso.esoEdit
'----设置界面
SetUI
If Me.txtMonth.Enabled = True Then
Me.txtMonth.SetFocus
Else
SendKeys "{TAB}"
End If
Exit Sub
lblHandle:
MsgBox Err.Description, vbInformation, g_conSysName
End Sub
Public Sub View(Optional OID As U8FDEso.OIDObject)
Dim objCadBI As New U8FDBso.clsCadBI
On Error GoTo lblHandle
'----
If Not OID Is Nothing Then
Set m_EO = objCadBI.MoveTo(g_sDataSourceName, U8FDEso.esoCurrent, m_conBIStyle, OID)
Else
Set m_EO = objCadBI.MoveTo(g_sDataSourceName, U8FDEso.esoFirst, m_conBIStyle)
End If
'----设置界面
SetUI
Exit Sub
lblHandle:
MsgBox Err.Description, vbInformation, g_conSysName
End Sub
Private Function Save() As Boolean
Dim objCadBI As New U8FDBso.clsCadBI
Dim objLockMgr As New U8FDMgr.LockManager
Dim Child_EO As U8FDEso.EntityObject
Dim objOIDMgr As New U8FDMgr.OIDManager
Dim i As Integer
Dim close_date As Date
Dim CodeCount As Integer
On Error GoTo lblHandle
If Me.txtMonth.Text = "" Then
MsgBox "结息周期不能为空!"
Me.txtMonth.SetFocus
Exit Function
End If
If Len(Trim(txtDate.Text)) = 0 Then
MsgBox "日期不能为空!"
Me.txtDate.SetFocus
Exit Function
ElseIf Len(Trim(ForDate(txtDate.Text))) = 1 Then
Me.txtDate.SetFocus
Exit Function
Else
txtDate.Text = ForDate(txtDate.Text)
End If
If DateDiff("d", Year(ZjAccInfo.zjNdEnd) + 1 & "-1-1", Me.txtDate) >= 0 Then 'Or DateDiff("d", Year(ZjAccInfo.zjNdEnd) & "-1-1", Me.txtDate) < 0
MsgBox "日期不能大于会计年度!"
Me.txtDate.SetFocus
Exit Function
End If
'Dim BeginCad As Date
'Dim EndCad As Date
'Dim rec As UfRecordset
'
'Set rec = zjLogInfo.UfSystemDb.OpenRecordset("Select dBegin, dend from UA_Period where cAcc_ID='" & zjLogInfo.cacc_id & "' And iYear=" & zjLogInfo.cIYear & " And (iid=1 or iid=12) order by iID", dbOpenSnapshot)
'rec.MoveFirst
'BeginCad = Format(rec!dbegin, "YYYY-MM-DD")
'rec.MoveLast
'EndCad = Format(rec!dEnd, "YYYY-MM-DD")
'rec.oClose
'
'If DateDiff("d", Me.txtDate, BeginCad) > 0 Or DateDiff("d", Me.txtDate, EndCad) < 0 Then
' MsgBox "日期超出本年度财年"
' Exit Function
'End If
'----赋值
With m_EO
If m_EO.State = U8FDEso.esoAddNew Then
m_EO("cad_code") = Me.txtCode.Text
If Me.txtMonth.Text = "" Or Me.txtMonth.Text = "0" Then
m_EO("month_num") = 1
Me.txtMonth.Text = 1
Else
m_EO("month_num") = Me.txtMonth.Text
End If
m_EO("delay_num") = Me.txtDelay.Text
m_EO("digest") = Me.txtDigest.Text
close_date = Me.txtDate.Text
i = 0
Do Until Year(close_date) > Year(ZjAccInfo.zjNdEnd)
If Year(close_date) >= 1800 Then
Set Child_EO = objCadBI.Init(g_sDataSourceName, m_conChildBIStyle)
Child_EO("cad_b_id") = objOIDMgr.GetNewOID(g_sDataSourceName, m_conChildBIStyle, True)
Child_EO("cad_code") = Me.txtCode.Text
Child_EO("close_date") = close_date
m_EO.EOS.Append Child_EO, "K" & Child_EO("cad_b_id")
End If
i = i + 1
close_date = DateAdd("m", Me.txtMonth.Text * i, Me.txtDate.Text)
Set Child_EO = Nothing
Loop
Set Child_EO = Nothing
ElseIf m_EO.State = U8FDEso.esoEdit Then
m_EO("cad_code") = Me.txtCode.Text
If Me.txtMonth.Text = "" Or Me.txtMonth.Text = "0" Then
m_EO("month_num") = 1
Me.txtMonth.Text = 1
Else
m_EO("month_num") = Me.txtMonth.Text
End If
m_EO("delay_num") = Me.txtDelay.Text
m_EO("digest") = Me.txtDigest.Text
'删除所有子表数据
For i = 1 To m_EO.EOS.count
m_EO.EOS.Delete 1
Next
close_date = Me.txtDate.Text
i = 0
Do Until Year(close_date) > Year(ZjAccInfo.zjNdEnd)
If Year(close_date) >= 1800 Then
Set Child_EO = objCadBI.Init(g_sDataSourceName, m_conChildBIStyle)
Child_EO("cad_b_id") = objOIDMgr.GetNewOID(g_sDataSourceName, m_conChildBIStyle, True)
Child_EO("cad_code") = Me.txtCode.Text
Child_EO("close_date") = close_date
m_EO.EOS.Append Child_EO, "K" & Child_EO("cad_b_id")
End If
i = i + 1
close_date = DateAdd("m", Me.txtMonth.Text * i, Me.txtDate.Text)
Set Child_EO = Nothing
Loop
Set Child_EO = Nothing
End If
End With
'----实体对象验证
If Not m_EO.Validate Then
For i = 1 To m_EO.EOS.count
m_EO.EOS.Delete 1
Next
Exit Function
End If
'----调用业务对象并保存
If objCadBI.Save(g_sDataSourceName, m_EO, m_conBIStyle) Then
If m_EO.State = U8FDEso.esoAddNew Then
Me.treStyle.Nodes.Add , , "K" & m_EO("cad_id"), m_EO("cad_code")
Me.treStyle.Nodes("K" & m_EO("cad_id")).Image = 2
Me.treStyle.Nodes("K" & m_EO("cad_id")).Expanded = True
For i = 1 To m_EO.EOS.count
Me.treStyle.Nodes.Add "K" & m_EO("cad_id"), tvwChild, "K" & m_EO.EOS(i)("cad_b_id"), m_EO.EOS(i)("close_date")
Me.treStyle.Nodes("K" & m_EO.EOS(i)("cad_b_id")).Image = 3
Next
Me.treStyle.Nodes("K" & m_EO.EOS(1)("cad_b_id")).Selected = True
NodeKey = "K" & m_EO.EOS(1)("cad_b_id")
m_OID.id = m_EO.EOS(1)("cad_b_id")
ElseIf m_EO.State = U8FDEso.esoEdit Then
Me.treStyle.Nodes.Remove Me.treStyle.Nodes("K" & m_OID.id).Parent.key
Me.treStyle.Nodes.Add , , "K" & m_EO("cad_id"), m_EO("cad_code")
Me.treStyle.Nodes("K" & m_EO("cad_id")).Image = 2
Me.treStyle.Nodes("K" & m_EO("cad_id")).Expanded = True
For i = 1 To m_EO.EOS.count
Me.treStyle.Nodes.Add "K" & m_EO("cad_id"), tvwChild, "K" & m_EO.EOS(i)("cad_b_id"), m_EO.EOS(i)("close_date")
Me.treStyle.Nodes("K" & m_EO.EOS(i)("cad_b_id")).Image = 3
Next
Me.treStyle.Nodes("K" & m_EO.EOS(1)("cad_b_id")).Selected = True
NodeKey = "K" & m_EO.EOS(1)("cad_b_id")
m_OID.id = m_EO.EOS(1)("cad_b_id")
End If
Else
For i = 1 To m_EO.EOS.count
m_EO.EOS.Delete 1
Next
Exit Function
End If
'----解除锁定
If m_EO.State = U8FDEso.esoEdit Then
objLockMgr.UnlockIt g_sDataSourceName, m_EO.OID
End If
m_EO.State = U8FDEso.esoInstance
'----释放任务
'刷新参照表单数据
For i = 0 To Forms.count - 1
If Forms(i).Name = "frmRefCtl" Then
frmRefCtl.FDRefCtrl.Refresh
Exit For
End If
Next
'----设置界面
SetUI
Save = True
Exit Function
lblHandle:
MsgBox Err.Description, vbInformation, g_conSysName
Select Case Err.Source
End Select
End Function
Private Sub Delete()
If MsgBox("真的要删除当前记录吗?", vbQuestion + vbYesNo) = vbNo Then Exit Sub
Dim objCadBI As New U8FDBso.clsCadBI
On Error GoTo lblHandle
'----删除当前记录
If objCadBI.Delete(g_sDataSourceName, m_EO, m_conBIStyle) Then
Dim NodeTemp As String
NodeTemp = Me.treStyle.Nodes("K" & m_OID.id).Parent.key
Me.treStyle.Nodes.Remove Me.treStyle.Nodes("K" & m_OID.id).Parent.key
Dim objOID As New U8FDEso.OIDObject
'----移动到下一条记录
If objCadBI.RecordCount(g_sDataSourceName, EO) > 0 Then
objOID = mID(NodeTemp, 2)
Set m_EO = objCadBI.MoveTo(g_sDataSourceName, U8FDEso.esoNext, m_conBIStyle, objOID)
m_OID = m_EO.EOS(1)(EO.EOS.EOMetaData.SourceOIDField)
NodeKey = "K" & m_OID.id
Set objOID = Nothing
SetUI
Me.treStyle.Nodes("K" & m_OID).Parent.Expanded = True
Me.treStyle.Nodes("K" & m_OID).Selected = True
Else
NodeKey = ""
m_OID.id = ""
Set m_EO = objCadBI.Init(g_sDataSourceName, m_conBIStyle)
SetUI
End If
'----设置界面
'SetUI
Else
MsgBox "删除没有成功!"
End If
Set objCadBI = Nothing
Exit Sub
lblHandle:
MsgBox Err.Description, vbInformation, g_conSysName
End Sub
Private Sub CancelDo()
Dim objCadBI As New U8FDBso.clsCadBI
Dim objLockMgr As New U8FDMgr.LockManager
If Not m_EditStatus Then
If MsgBox("真的要取消当前操作吗?", vbQuestion + vbYesNo, g_conSysName) = vbNo Then Exit Sub
End If
On Error GoTo lblHandle
'----State 若为 esoEdit, 解锁
If m_EO.State = U8FDEso.esoEdit Then
objLockMgr.UnlockIt g_sDataSourceName, m_EO.OID
End If
'----恢复原实体对象
If Not m_OldEO Is Nothing Then
Set m_EO = m_OldEO.Clone(U8FDEso.esoStructureAndData)
Else
Set m_EO = objCadBI.MoveTo(g_sDataSourceName, U8FDEso.esoLast, m_conBIStyle)
End If
'----设置界面
SetUI
Exit Sub
lblHandle:
MsgBox Err.Description, vbInformation, g_conSysName
End Sub
Private Sub SetUI()
Dim objCadBI As New U8FDBso.clsCadBI
Dim objOID As New U8FDEso.OIDObject
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -