点击“部门费用拆分表”
执行后台代码块:
先定义变量icbc_deptfy,在类模块clsVoucher_CO (clsVoucher_co.cls)中
Enum VoucherTypeSA
icbc_deptfy ' ================jiang==============
End Enum
定义变量部门预算,在类模块clsVoucherLoad_BO(clsVoucherLoad_BO.cls)中
Public Enum enuSAVType
部门费用拆分表 = "100016" '================jiang==============
End Enum
调用clsproductfacade模块中下面的callFunction方法
Public Function CallFunction(ByVal cMenuId As String, ByVal cMenuName As String, ByVal cAuthId As String, ByVal cCmdLine As String) As Object
Select Case cMenuId
Case "MT0101", "MT0102", "MT0103", "MT0201", "MT0202"
gd_frmMain.m_oMenu_OnCommand cMenuId, cMenuName, cAuthId, cCmdLine
End Select
调用frmMain(主窗体.frm)中下面的m_oMenu_OnCommand方法
Public Sub m_oMenu_OnCommand(ByVal cMenuId As String, ByVal cMenuName As String, ByVal cAuthId As String, ByVal cCmdLine As String)
添加代码:
Select Case cMenuId
Case "MT0201" '部门费用拆分表
miBJD_Click icbc_deptfy, cAuthId, , strVouchID
调用方法miBJD_Click
Public Sub miBJD_Click(strVouType As VoucherTypeSA, strTaskId As String, Optional iMode As Integer, Optional SBVID As String, Optional cSBVCode As String, Optional mDom As DOMDocument)
添加代码:
Select Case strVouType
Case icbc_deptfy '================jiang==============
strFrmCaption = MLRsSvr.GetString("U8.ICBC.Mt.0299") '"部门费用拆分表"
tmpTaskID = "MT020101" '权限ID
sType = "100016" '模板编号
调用frmVouchNew(单据模板.frm)中ShowVoucher方法
Public Function ShowVoucher(VoucherType As VoucherTypeSA, Optional vVoucherId As Variant, Optional iMode As Integer)
添加代码:
Select Case VoucherType
Case icbc_deptfy '部门费用拆分表
strVouchType = "100016"
strCardNum = "KM01"
Me.caption = MLRsSvr.GetString("U8.ICBC.Mt.0299") '"部门费用拆分表"
调用clsVoucher_CO (clsVoucher_CO.cls)中的GetVouchInf方法
Public Function GetVouchInf(m_enmVoucherType As VoucherTypeSA, _
Select Case m_enmVoucherType
Case icbc_deptfy '部门费用拆分表
sVouchType = "100016"
sCardNum = "KM01"
bVouchFirst = False
strTable = "icbc_acv"
调用frmVouchNew(单据模板.frm)中SetButtonStatus方法
Private Sub SetButtonStatus(ButtonKey As String)
Select Case LCase(ButtonKey)
Case "modify"
Select Case LCase(strVouchType)
Case "100016"
tbrvoucher.buttons("Modify").Enabled = False
tbrvoucher.buttons("Save").Enabled = True
tbrvoucher.buttons("Cancel").Enabled = True
tbrvoucher.buttons("AddRow").Enabled = True
tbrvoucher.buttons("DelRow").Enabled = True
tbrvoucher.buttons("Erase").Enabled = False
tbrvoucher.buttons("Add").Enabled = False
tbrvoucher.buttons("UnSure").Enabled = False
tbrvoucher.buttons("Sure").Enabled = False
tbrvoucher.buttons("ToFirst").Enabled = False
tbrvoucher.buttons("ToPrevious").Enabled = False
tbrvoucher.buttons("ToNext").Enabled = False
tbrvoucher.buttons("ToLast").Enabled = False
End Select
Case "add"
Select Case LCase(strVouchType)
Case "100016"
tbrvoucher.buttons("Add").Enabled = False
tbrvoucher.buttons("Save").Enabled = True
tbrvoucher.buttons("Cancel").Enabled = True
tbrvoucher.buttons("AddRow").Enabled = True
tbrvoucher.buttons("DelRow").Enabled = True
tbrvoucher.buttons("Modify").Enabled = False
tbrvoucher.buttons("Erase").Enabled = False
tbrvoucher.buttons("UnSure").Enabled = False
tbrvoucher.buttons("Sure").Enabled = False
tbrvoucher.buttons("ToFirst").Enabled = False
tbrvoucher.buttons("ToPrevious").Enabled = False
tbrvoucher.buttons("ToNext").Enabled = False
tbrvoucher.buttons("ToLast").Enabled = False
End Select
Case "cancel", "save"
Select Case LCase(strVouchType)
Case "100016"
ComboVTID.Visible = True
ComboDJMB.Visible = True
Labeldjmb.caption = MLRsSvr.GetString("U8.ICBC.Mt.0302") '"打印模版:"
tbrvoucher.buttons("ToFirst").Visible = True
tbrvoucher.buttons("ToPrevious").Visible = True
tbrvoucher.buttons("ToNext").Visible = True
tbrvoucher.buttons("ToLast").Visible = True
tbrvoucher.buttons("Save").Visible = True
tbrvoucher.buttons("Cancel").Visible = True
tbrvoucher.buttons("DelRow").Visible = True
tbrvoucher.buttons("AddRow").Visible = True
tbrvoucher.buttons("Output").Visible = True '输出
tbrvoucher.buttons("Modify").Visible = True '修改
tbrvoucher.buttons("Save").Enabled = False
tbrvoucher.buttons("Cancel").Enabled = False
tbrvoucher.buttons("AddRow").Enabled = False
tbrvoucher.buttons("DelRow").Enabled = False
tbrvoucher.buttons("Modify").Enabled = True
tbrvoucher.buttons("Erase").Enabled = True
tbrvoucher.buttons("Add").Enabled = True
tbrvoucher.buttons("Ordercode").Visible = False
tbrvoucher.buttons("ImportPur").Visible = False
tbrvoucher.buttons("ImportExcel").Visible = False
tbrvoucher.buttons("MakeFACardNumber").Visible = False
tbrvoucher.buttons("MakeFACard").Visible = False
tbrvoucher.buttons("UnSure").Enabled = True
tbrvoucher.buttons("Sure").Enabled = True
tbrvoucher.buttons("ToFirst").Enabled = True
tbrvoucher.buttons("ToPrevious").Enabled = True
tbrvoucher.buttons("ToNext").Enabled = True
tbrvoucher.buttons("ToLast").Enabled = True
End Select
调用ClsVoucher_CO (clsVoucher_ CO.cls)中的 GetVoucherData方法
Public Function GetVoucherData(DomHead As DOMDocument, DomBody As DOMDocument, Optional VouchID As Variant) As String
添加代码:
Select Case m_enmVoucherType
Case icbc_deptfy '部门费用拆分表
clsVouchDMO.GetVoucherDataWEB domhead, dombody, m_Conn, 部门费用拆分表, False, strErrMsg, VouchID
调用clsVouchDMO(clsVouchDMO.cls)中的 getkey方法
Private Function getkey(ByVal uvdVouchType As enuSAVType, ByVal bReturn As Boolean, CN As ADODB.Connection) As Boolean
添加代码:
Select Case uvdVouchType
'================jiang==============
Case 部门费用拆分表
strVouchType = "100016"
sKeyHead = "id"
sKeyBody = "id"
sMViewHead = "icbc_acv"
sMViewBody = "icbc_acvs"
sViewHead = "v_icbc_acv"
sViewBody = "v_icbc_acvs"
sBodyID = "autoid"
调用ModVoucher(ModVoucher.bas)中的GetVouchInfo方法
Public Function GetVouchInfo(strVouchType As String, strMainIDName As String, _
strSubIDName As String, Optional errMsg As String, Optional cMainTable As String, _
Optional cSubTable As String) As Boolean
添加代码:
Select Case strVouchType
'================jiang==============
Case "100016" '部门费用拆分表
strMainIDName = "id"
strSubIDName = "id"
cMainTable = "icbc_acv"
cSubTable = "icbc_acvs"
调用frmVouchNew(单据模板.frm)中ChangeButtonsState方法
注:根据单据的要求,设置工具栏按钮的初始化时的状态
''改变button的状态
Private Sub ChangeButtonsState()
添加代码:
Select Case strVouchType
'================jiang==============
Case "100016", "300016", "100018"
'已审核
If .headerText("auditinguser") <> "" Then
Me.tbrvoucher.buttons("UnSure").Visible = True
Me.tbrvoucher.buttons("Sure").Visible = False
Me.tbrvoucher.buttons("Modify").Enabled = False
Me.tbrvoucher.buttons("Erase").Enabled = False
'未审核
Else
Me.tbrvoucher.buttons("Sure").Visible = True
Me.tbrvoucher.buttons("UnSure").Visible = False
Me.tbrvoucher.buttons("Modify").Enabled = True
Me.tbrvoucher.buttons("Erase").Enabled = True
End If
Select Case strVouchType
Case "100016", "300016"
If voucher.headerText("archiveno") = "" Then
Me.tbrvoucher.buttons("Modify").Enabled = False
Me.tbrvoucher.buttons("Erase").Enabled = False
Me.tbrvoucher.buttons("MakeFACard").Enabled = False
End If
End Select
调用ModVoucher(ModVoucher.bas)中的GetstrCardNum方法
Public Function GetstrCardNum(strVouchType As String, Optional bRed As Boolean = False, Optional bGetTrue As Boolean = False) As String
添加代码:
Select Case strVouchType
'================jiang==============
Case "100016" '部门费用拆分表
GetstrCardNum = "KM01"
End Select
2、点击“新增”按钮
调用frmVouchNew(单据模板.frm)中的VoucherTask方法
Private Function VoucherTask(sKey As String) As Boolean
Select Case strVouchType
'部门费用拆分表
Case "100016"
Select Case sKey
Case MLRsSvr.GetString("U8.ICBC.Mt.0013")
strID = "MT020102"
Case MLRsSvr.GetString("U8.ICBC.Mt.0014")
strID = "MT020103"
Case MLRsSvr.GetString("U8.ICBC.Mt.0018")
strID = "MT020104"
Case MLRsSvr.GetString("U8.ICBC.Mt.0026"), MLRsSvr.GetString("U8.ICBC.Mt.0027")
strID = "MT020105"
End Select
End Select
调用clsSystem(clsSystem.cls)中的GetVoucherTaskID方法
Public Function GetVoucherTaskID(sKey As String, sVouchType As String, Optional bRed As Boolean) As String
添加代码:
Select Case sVouchType
'================jiang==============start'20061230
'部门费用拆分表
Case "100016"
Select Case sKey
Case GetResString("U8.ICBC.Mt.0013")
strID = "MT020102"
Case GetResString("U8.ICBC.Mt.0014")
strID = "MT020103"
Case GetResString("U8.ICBC.Mt.0018")
strID = "MT020104"
Case GetResString("U8.ICBC.Mt.0026"),GetResString("U8.ICBC.Mt.0027")
strID = "MT020105"
End Select
调用frmVouchNew(单据模板.frm)中getVoucherCodeName方法
Private Function getVoucherCodeName() As String
添加代码:
Select Case strVouchType
Case "100016", "300016"
KeyCode = "archiveno"
3、录入数据,点击“保存”按钮,保存单据
调用ClsVoucher_CO (clsVoucher_CO.cls)中的 Save方法
Public Function Save(ByVal DomHead As DOMDocument, ByVal DomBody As DOMDocument, ByVal VoucherState As Integer, Optional vNewID As Variant, Optional DomConfig As DOMDocument) As String
添加代码:
‘================jiang==============验证单据表体记录是否为0
Select Case m_enmVoucherType
Case icbc_deptfy
clsVouchLoad.VouchSave m_Conn, 部门费用拆分表, domhead, dombody, VoucherState, strError, vNewID, DomConfig
End Select
调用ClsVouchLoad_BO(clsVouchLoad_BO.cls)中VouchSave的方法
Public Function VouchSave(m_Conn As Connection, ByVal uvdVouchType As enuSAVType, _ByVal DomHead As DOMDocument, ByVal domBody As DOMDocument, _
ByVal VoucherState As Integer, sErrMsg As String, Optional vNewID As Variant, Optional DomConfig As DOMDocument) As Boolean
添加代码:
Select Case uvdVouchType
'================jiang==============
Case "100016"
bSuccess = True
strMTblName = "icbc_acv"
strSTblName = "icbc_acvs"
4、单据的删除功能
点击“删除”按钮
调用clsVouchload_bo(clsVouchload_bo.cls)中的VouchDelete方法
Public Function VouchDelete(strVouchType As String, ByVal DBConn As ADODB.Connection, sTableName As String, DomHead As DOMDocument) As String
添加代码:
Select Case strVouchType
'================jiang==============
Case "100016" '部门费用拆分表
sTableName = "icbc_acvs"
VouchDelete = clsCommSave.DeleteVoucher(strVouchType, DBConn, sTableName, DomHead)
5、单据的修改功能
点击“修该”按钮,录入数据,点击“保存”按钮,保存单据
调用frmVouchNew(单据模板.frm)中ButtonClick方法
Case "save" '保存
Screen.MousePointer = vbHourglass
voucher.ProtectUnload2
bClickCancel = False
bClickSave = True
'删除空白行
Select Case strVouchType
Case "100016"
'部门和所占比例为空
For i = voucher.BodyRows To 1 Step -1
If (voucher.bodyText(i, "cdepcode") = "" And voucher.bodyText(i, "rate") = "") Or _
voucher.bodyText(i, "rate") = 0 Then
Me.voucher.DelLine i
End If
Next
End Select
6单据的审核功能
调用clsVouchload_bo(clsVouchload_bo.cls)中的VouchVerify方法
Public Function VouchVerify(CN As ADODB.Connection, sflag As Boolean, sType As String, DomHead As DOMDocument, TotalMsg As String) As Boolean
Select Case strVouchType
Case "100016"
sqltemp = "select isnull(auditinguser,'') as auditinguser from icbc_acv where id = " & tmpId
二、单据列表总结
打开“单据列表工具”
填写sheet:Rpt_GlbDEF_BASE,AA_ColumnDic_BASE,aa_busobject 对应单据列表的内容,具体字段意思可以参考数据字典。
把数据导入,生成单据列表模板。
例如点击:“批量生成待摊费用凭证”
调用clsproductfacade模块中下面的callFunction方法
Public Function CallFunction(ByVal cMenuId As String, ByVal cMenuName As String, ByVal cAuthId As String, ByVal cCmdLine As String) As Object
Case "MT0205"
gd_frmMain.m_oMenu_OnCommand cMenuId, cMenuName, "MT020501", cCmdLine
程序执行到工程ICBCMainView 的窗体 frmMain 窗体的方法 m_oMenu_OnCommand方法,在方法中添加代码块:
Case "MT0205" '批量生成待摊费用凭证
OpenVouch1ist cAuthId, "MT", "pzsc01", icbc_pzsc
在窗体 frmMain添加方法:OpenVouch1ist
Private Sub OpenVouch1ist(strAuthId As String, sysID As String, Vouchlist_Key As String, ByVal VoucherTypes As String)
Select Case VoucherTypes
Case icbc_pzsc
.VouchType = "300016"
.caption = MLRsSvr.GetString("U8.ICBC.Mt.0308") '"批量生成待摊费用凭证"
End Select
在窗体 clsvouchlist添加方法: GetFrom
代码块:
Private Function GetFrom(ByVal sKey As String, ByVal Conn As ADODB.Connection, ByRef sTableKey As String, ByVal VouchType As String) As String
Case "pzsc01" '批量生成待摊费用凭证
GetFrom = "v_plscpz"
sTableKey = "id"
End Select
在窗体 clsvouchlist添加方法:GetVchListData
代码块:
Public Function GetVchListData(ByVal sysID As String, ByVal cKey As String, login As Object, _
ByVal bListAll As Boolean, ByVal nPageSize As Long, ByVal nCurrentPage As Long, ByRef nPageCount As Long, _
ByRef rs As ADODB.Recordset, Optional ByRef rsSum As Variant, Optional ByRef ocolSet As Object, _
Optional ByVal sWhere As String = "", Optional ByRef sErrRet As String, Optional sTableName As String, _
Optional ByVal bRenew As Boolean = False, Optional nRecordCount As Long, Optional strVouchType As String) As Boolean
Select Case cKey
Case "pzsc01" '批量生成待摊费用凭证
strSql = "select id from icbc_arice_bak where iperiod =" & Format(login.CurDate, "mm")
oRs.Open strSql, m_conn, adOpenForwardOnly, adLockReadOnly
If oRs.EOF Then
sWhere = sWhere & " and begindate <= '" & Format(login.CurDate, "yyyy-mm-dd") & "' and enddate >= '" & Format(login.CurDate, "yyyy-mm-dd") & "'"
Else
sWhere = sWhere & " and id not in (select id from icbc_arice_bak where iperiod =" & Format(login.CurDate, "mm") & ")" _
& " and begindate <= '" & Format(login.CurDate, "yyyy-mm-dd") & "' and enddate >= '" & Format(login.CurDate, "yyyy-mm-dd") & "'"
End If
Case Else
End Select
End Select
frmVoucherList 的方法 GetFrom中添加代码块:
Private Function GetFrom(ByVal sKey As String, ByVal Conn As ADODB.Connection, ByRef sTableKey As String, ByVal VouchType As String) As String
Select Case sKey
Case "pzsc01" '批量生成待摊费用凭证
GetFrom = "v_plscpz"
sTableKey = "id"
End Select
在窗体frmVoucherList 的方法 initToolBar 中添加代码块:
If cKey = "17" And m_bPushMo Then
Me.Toolbar.buttons("pushmo").Visible = True
Me.Toolbar.buttons(strKSelectAll).Visible = True
Me.Toolbar.buttons(strKUnSelectAll).Visible = True
LabMoCode.Visible = False
txtMoCode.Visible = False
ElseIf strVouchType = "300016" Or strVouchType = "300018" Then '批量生成待摊费用凭证
Me.Toolbar.buttons("make_sure").Visible = False
End If
Me.Toolbar.buttons("SelectAll").Visible = True
Me.Toolbar.buttons("UnSelectAll").Visible = True
Me.Toolbar.buttons("selected_mode").Visible = True
' Me.Toolbar.buttons("make_sure").Visible = True
执行结束就可以调出单据列表