📄 clssettlepricebi.cls
字号:
VERSION 1.0 CLASS
BEGIN
MultiUse = -1 'True
Persistable = 0 'NotPersistable
DataBindingBehavior = 0 'vbNone
DataSourceBehavior = 0 'vbNone
MTSTransactionMode = 0 'NotAnMTSObject
END
Attribute VB_Name = "clsSettlePriceBI"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = True
'--------------------------------
'时间:2001.11.12
'版权:北京用友软件股份有限公司
'设计:章景峰
'编码:章景峰
'说明:U8资金管理---业务对象
'--------------------------------
Option Explicit
Private Const m_conBIStyle As Long = 90
Public Function MoveTo(DataSourceName As String, MoveMode As MoveModeEnum, Optional ByVal BIStyle As Long = m_conBIStyle, Optional OID As U8FDEso.OIDObject) As U8FDEso.EntityObject
Dim objEO As U8FDEso.EntityObject
Dim objDataMgr As New U8FDmgr.DataManager
'----装载此业务对象的元数据(EntityObject)
Set objEO = objDataMgr.LoadEOMetaData(DataSourceName, BIStyle)
'----赋oid值
If Not OID Is Nothing Then Set objEO.OID = OID
If con.State = adStateClosed Then con.Open DataSourceName
objDataMgr.MoveTo con, objEO, MoveMode, False
Set MoveTo = objEO
Set objDataMgr = Nothing
Set objEO = Nothing
End Function
Public Function Init(DataSourceName As String, Optional ByVal BIStyle As Long = m_conBIStyle) As U8FDEso.EntityObject
Dim objEO As U8FDEso.EntityObject
Dim objDataMgr As New U8FDmgr.DataManager
Dim objOIDMgr As New U8FDmgr.OIDManager
'----装载此业务对象的元数据(EntityObject)
Set objEO = objDataMgr.LoadEOMetaData(DataSourceName, BIStyle)
'----申请OID
Set objEO.OID = objOIDMgr.GetNewOID(DataSourceName, BIStyle, True)
Set Init = objEO
Set objOIDMgr = Nothing
Set objDataMgr = Nothing
Set objEO = Nothing
End Function
Public Function Save(DataSourceName As String, EO As U8FDEso.EntityObject, Optional ByVal BIStyle As Long = m_conBIStyle) As Boolean
Dim objDataMgr As New U8FDmgr.DataManager
Dim objOIDMgr As New U8FDmgr.OIDManager
'----验证
If Not Validate(DataSourceName, EO) Then Exit Function
If EO.State = esoAddNew Then
Set EO.OID = objOIDMgr.GetNewOID(DataSourceName, BIStyle)
End If
'----存盘
If con.State = adStateClosed Then con.Open DataSourceName
con.BeginTrans
If Not objDataMgr.Save(con, EO) Then Exit Function
con.CommitTrans
Save = True
Set objOIDMgr = Nothing
Set objDataMgr = Nothing
End Function
Private Function Validate(DataSourceName As String, EO As U8FDEso.EntityObject) As Boolean
Select Case EO.State
Case esoDelete '----删除前验证
Case esoAddNew, esoEdit '----保存前验证
End Select
Dim oFO As FieldObject
Dim i As Integer
If EO.EOS.Count > 0 Then
With EO.EOS(EO.EOS.Count)
For i = 1 To .Fields.Count
Set oFO = .Fields.Item(i)
If Not oFO.Name = EO.EOS.EOMetaData.ParentField And Not oFO.Name = EO.EOS.EOMetaData.SourceOIDField Then
'----已使用并可持久化
If oFO.IsUsed And oFO.Persistent Then
'----设置值为默认值
If IsEmpty(oFO.Value) Or IsNull(oFO.Value) Then
oFO.Value = oFO.DefaultValue
End If
'----检查不允许为空的域对象是否为空
If Not oFO.AllowNull Then
If IsNull(oFO.Value) Then
Err.Raise vbObjectError + 3000, oFO.Name, oFO.Caption & "不能为空!"
End If
End If
End If
End If
Next
End With
End If
Validate = True
End Function
Public Function Delete(DataSourceName As String, EO As U8FDEso.EntityObject, Optional ByVal BIStyle As Long = m_conBIStyle) As Boolean
Dim objDataMgr As New U8FDmgr.DataManager
Dim sql As String
'----验证
If Not Validate(DataSourceName, EO) Then
End If
'----加锁
If con.State = adStateClosed Then con.Open DataSourceName
sql = "Delete from FD_AccGrpLnk where sAccGroupOID='" & EO("sOID") & "'"
con.Execute sql
'----删除
objDataMgr.Delete con, EO
'----解锁
Delete = True
Set objDataMgr = Nothing
End Function
Public Function FindByCode(DataSourceName As String, Code As String, Optional ByVal BIStyle As Long = m_conBIStyle) As U8FDEso.EntityObject
Dim objEO As U8FDEso.EntityObject
Dim objDataMgr As New U8FDmgr.DataManager
Dim objOID As New U8FDEso.OIDObject
Dim rec As New ADODB.Recordset
'----装载此业务对象的元数据(EntityObject)
Set objEO = objDataMgr.LoadEOMetaData(DataSourceName, BIStyle)
If con.State = adStateClosed Then con.Open DataSourceName
'----Get Oid from ID
rec.Open "Select " & objEO.SourceOIDField & " From " & objEO.SourceTable & " Where " & objEO("settle_code").SourceField & " = '" & Code & "'", con
If Not rec.EOF Then
objOID = rec.Fields(objEO.SourceOIDField)
Set objEO.OID = objOID
Else
Set FindByCode = objDataMgr.LoadEOMetaData(DataSourceName, BIStyle)
Exit Function
End If
rec.Close
Set rec = Nothing
'----
objDataMgr.MoveTo con, objEO, esoCurrent
Set FindByCode = objEO
Set objOID = Nothing
Set objDataMgr = Nothing
Set objEO = Nothing
End Function
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -