"开户行全称","币种","摘要","备注","对方户名","对方账号","汇入金额","汇出金额"这些列都是从银行下载的EXCEL表中导入的,
记账归类的值,是根据上面8列值的不同情况,进行归类整理取得。
先列举不同的银行,再根据币种分为人民币和非人民币,然后根据是汇入金额,汇出金额区分,再根据摘要,备注的不同,有时候还要加入户名的情况进行归类,
如果修改以下可以让代码的效率更高?
Dim gsmc,fddbr,lba,zha,zhb,dfzh,dfhm,bzz As String
Select e.DataCol.Name
Case "开户行全称","币种","摘要","备注","对方户名","对方账号","汇入金额","汇出金额"
'''''//////////////////////////银行1开始//////////////////////////////////////////////////////////////// //////////////////////////// /////////////////////////////////////////////
If e.DataRow.IsNull("记账归类") = True Then '如果记账归类是空
If dr("开户行全称").Contains("联合银行") Then
If dr("币种").Contains("RMB") OrElse dr("币种").Contains("rmb") OrElse dr("币种").Contains("人民币") Then '人民币
If dr("汇出金额") <> 0 Then
If dr("摘要").Contains("手续费") OrElse dr("对方户名").Contains("修改托收委托书") Then
dr("记账归类") = "付手续费"
ElseIf dr("摘要").Contains("利息") Then
dr("记账归类") = "付利息"
ElseIf dr("摘要").Contains("结汇") Then
dr("记账归类") = "结汇"
ElseIf dr("摘要").Contains("税费社保") OrElse dr("摘要").Contains("国库税收") OrElse dr("摘要").Contains("公积金") OrElse dr("对方户名").Contains("待报解预算收入") OrElse dr("对方户名").Contains("国家金库") OrElse dr("对方户名").Contains("税款") Then
dr("记账归类") = "付税费社保"
ElseIf dr("摘要").Contains("货款") OrElse dr("摘要").Contains("材料款") Then
dr("记账归类") = "付货款"
ElseIf dr("摘要").Contains("往来款") Then
dr("记账归类") = "付往来款"
ElseIf dr("摘要").Contains("运费") Then
dr("记账归类") = "付运费"
ElseIf dr("摘要").Contains("工资") Then
dr("记账归类") = "付工资"
ElseIf dr("对方户名").Contains("保证金") Then
dr("记账归类") = "付保证金"
ElseIf dr("对方户名").Contains("货运") OrElse dr("对方户名").Contains("快件") Then
dr("记账归类") = "付运费"
ElseIf dr("对方户名").Contains("银行") Then
dr("记账归类") = "付银行"
ElseIf dr("对方户名").Contains("检测") Then
dr("记账归类") = "付检测"
ElseIf dr("对方户名").Contains("保险") Then
dr("记账归类") = "付保险"
ElseIf e.DataRow("备注").Contains("投资款") OrElse e.DataRow("摘要").Contains("投资款") Then
e.DataRow("记账归类") = "付投资款"
ElseIf e.DataRow("备注").Contains("物业") OrElse e.DataRow("摘要").Contains("物业") Then
e.DataRow("记账归类") = "付物业"
ElseIf e.DataRow("备注").Contains("办公") OrElse e.DataRow("摘要").Contains("办公") Then
e.DataRow("记账归类") = "付办公"
ElseIf e.DataRow("备注").Contains("空调") OrElse e.DataRow("摘要").Contains("空调") Then
e.DataRow("记账归类") = "付空调"
ElseIf e.DataRow("备注").Contains("停车") OrElse e.DataRow("摘要").Contains("停车") Then
e.DataRow("记账归类") = "付停车"
ElseIf e.DataRow("备注").Contains("车位") OrElse e.DataRow("摘要").Contains("车位") Then
e.DataRow("记账归类") = "付停车"
ElseIf dr("对方户名").Contains(gsmc) AndAlso dr("摘要").Contains("汇出") Then
dr("记账归类") = "跨行转出"
ElseIf dr("对方户名").Contains(gsmc) AndAlso dr("摘要").Contains("转入") Then
dr("记账归类") = "结汇"
ElseIf dr("摘要").Contains("往来款") Then
dr("记账归类") = "付往来款"
ElseIf dr("摘要").Contains("贷款") Then
dr("记账归类") = "还贷款"
ElseIf dr("对方户名").Contains("待结算财政款项") AndAlso dr("摘要").Contains("汇入") Then
dr("记账归类") = "付退税款"
ElseIf dr("摘要").Contains("电子退库") Then
dr("记账归类") = "付退税款"
ElseIf dr("对方户名").Contains("有限公司") OrElse dr("对方户名").EndsWith("厂") OrElse dr("对方户名").EndsWith("商行") OrElse dr("对方户名").EndsWith("经营部") Then
dfhm = e.DataRow("对方户名").Replace(" ","")
dfhm = dfhm.replace("%", "[%]")
dfhm = dfhm.replace("*", "[*]")
' MessageBox.Show(dfhm)
Dim drw As DataRow = DataTables("往来单位").SQLFind("[单位名称] = '" & dfhm & "'") '对方户名
If drw IsNot Nothing Then '如果找到的话
If drw("类别").Contains("工厂") Then
dr("记账归类") = "付货款"
End If
End If
ElseIf dr("对方户名").Contains(fddbr) Then
dr("记账归类") = "付往来款"
ElseIf dr.Isnull("对方户名") = False AndAlso dr("对方户名").length < 4 Then '
dr("记账归类") = "付往来款"
Else
dr("记账归类") = ""
End If
Else If dr("汇入金额") <> 0 Then
''''''''''''
If dr("摘要").Contains("手续费") OrElse dr("对方户名").Contains("修改托收委托书") Then
dr("记账归类") = "收手续费"
ElseIf dr("摘要").Contains("利息") Then
dr("记账归类") = "收利息"
ElseIf dr("摘要").Contains("结汇") Then
dr("记账归类") = "结汇"
ElseIf dr("摘要").Contains("税费社保") OrElse dr("对方户名").Contains("税款") Then
dr("记账归类") = "收税费社保"
ElseIf dr("摘要").Contains("货款") OrElse dr("摘要").Contains("材料款") Then
dr("记账归类") = "收货款"
ElseIf dr("摘要").Contains("往来款") Then
dr("记账归类") = "收往来款"
ElseIf dr("摘要").Contains("运费") Then
dr("记账归类") = "收运费"
ElseIf dr("摘要").Contains("工资") Then
dr("记账归类") = "收工资"
ElseIf dr("对方户名").Contains("保证金") Then
dr("记账归类") = "收保证金"
ElseIf dr("对方户名").Contains("货运") OrElse dr("对方户名").Contains("快件") Then
dr("记账归类") = "收运费"
ElseIf dr("对方户名").Contains("银行") Then
dr("记账归类") = "收银行"
ElseIf dr("对方户名").Contains("检测") Then
dr("记账归类") = "收检测"
ElseIf dr("对方户名").Contains("保险") Then
dr("记账归类") = "收保险"
ElseIf e.DataRow("备注").Contains("投资款") OrElse e.DataRow("摘要").Contains("投资款") Then
e.DataRow("记账归类") = "收投资款"
ElseIf e.DataRow("备注").Contains("物业") OrElse e.DataRow("摘要").Contains("物业") Then
e.DataRow("记账归类") = "收物业"
ElseIf e.DataRow("备注").Contains("办公") OrElse e.DataRow("摘要").Contains("办公") Then
e.DataRow("记账归类") = "收办公"
ElseIf e.DataRow("备注").Contains("空调") OrElse e.DataRow("摘要").Contains("空调") Then
e.DataRow("记账归类") = "收空调"
ElseIf e.DataRow("备注").Contains("停车") OrElse e.DataRow("摘要").Contains("停车") Then
e.DataRow("记账归类") = "收停车"
ElseIf e.DataRow("备注").Contains("车位") OrElse e.DataRow("摘要").Contains("车位") Then
e.DataRow("记账归类") = "收停车"
ElseIf dr("对方户名").Contains(gsmc) AndAlso dr("摘要").Contains("汇入") Then
dr("记账归类") = "跨行转入"
ElseIf dr("对方户名").Contains(gsmc) AndAlso dr("摘要").Contains("转入") Then
dr("记账归类") = "结汇"
ElseIf dr("摘要").Contains("往来款") Then
dr("记账归类") = "收往来款"
ElseIf dr("摘要").Contains("贷款") Then
dr("记账归类") = "收贷款"
ElseIf dr("对方户名").Contains("待结算财政款项") AndAlso dr("摘要").Contains("汇入") Then
dr("记账归类") = "收退税款"
ElseIf dr("摘要").Contains("电子退库") Then
dr("记账归类") = "收退税款"
ElseIf dr("对方户名").Contains("有限公司") OrElse dr("对方户名").EndsWith("厂") OrElse dr("对方户名").EndsWith("商行") OrElse dr("对方户名").EndsWith("经营部") Then
dfhm = e.DataRow("对方户名").Replace(" ","")
dfhm = dfhm.replace("%", "[%]")
dfhm = dfhm.replace("*", "[*]")
' MessageBox.Show(dfhm)
Dim drw As DataRow = DataTables("往来单位").SQLFind("[单位名称] = '" & dfhm & "'") '对方户名
If drw IsNot Nothing Then '如果找到的话
If drw("类别").Contains("工厂") Then
dr("记账归类") = "收货款"
End If
End If
ElseIf dr("对方户名").Contains(fddbr) Then
dr("记账归类") = "收往来款"
ElseIf dr.Isnull("对方户名") = False AndAlso dr("对方户名").length < 4 Then '
dr("记账归类") = "收往来款"
Else
dr("记账归类") = ""
End If
End If
Else '不是人民币
dfzh = e.DataRow("对方账号").Replace(" ","")
dfzh = dfzh.replace("%", "[%]")
dfzh = dfzh.replace("*", "[*]")
Dim drh As DataRow = DataTables("银行信息").SQLFind("[账号] Like " & "'%" & dfzh & "%'")
If drh IsNot Nothing Then '如果找到的话
' MessageBox.Show("[账号] Like " & "'%" & dfzh & "%'")
bzz =drh("币种")
End If
If dr("汇出金额") <> 0 Then
If dr("摘要").Contains("转出") AndAlso dr("对方户名").Contains(gsmc) AndAlso bzz.Contains("RMB") Then
dr("记账归类") = "结汇"
ElseIf dr("摘要").Contains("手续费") Then
dr("记账归类") = "付手续费"
ElseIf dr("摘要").Contains("利息") Then
dr("记账归类") = "付利息"
ElseIf dr("摘要").Contains("汇率") Then
dr("记账归类") = "结汇"
ElseIf dr("摘要").Contains("运费") Then
dr("记账归类") = "付运费"
ElseIf dr("对方户名").Contains("货运") OrElse dr("对方户名").Contains("物流") OrElse dr("对方户名").Contains("运输") OrElse dr("对方户名").Contains("船务") OrElse dr("对方户名").Contains("航运") OrElse dr("对方户名").Contains("联运") OrElse dr("对方户名").Contains("快件") Then
dr("记账归类") = "付运费"
Else
dr("记账归类") = ""
End If
ElseIf dr("汇入金额") <> 0 Then
If dr("摘要").Contains("汇款") AndAlso dr("对方户名").Contains("国际结算") Then
dr("记账归类") = "收汇"
ElseIf dr("摘要").Contains("手续费") Then
dr("记账归类") = "收手续费"
ElseIf dr("摘要").Contains("利息") Then
dr("记账归类") = "收利息"
ElseIf dr("摘要").Contains("申报单") Then
dr("记账归类") = "收汇"
ElseIf dr("摘要").Contains("运费") Then
dr("记账归类") = "收运费"
ElseIf dr("对方户名").Contains("货运") OrElse dr("对方户名").Contains("物流") OrElse dr("对方户名").Contains("运输") OrElse dr("对方户名").Contains("船务") OrElse dr("对方户名").Contains("航运") OrElse dr("对方户名").Contains("联运") OrElse dr("对方户名").Contains("快件") Then
dr("记账归类") = "收运费"
Else
dr("记账归类") = ""
End If
End If
End If
'''''//////////////////////////银行1结束//////////////////////////////////////////////////////////////// //////////////////////////// /////////////////////////////////////////////
'''''//////////////////////////银行2开始//////////////////////////////////////////////////////////////// //////////////////////////// /////////////////////////////////////////////
ElseIf dr("开户行全称").Contains("宁波银行") Then
'''''//////////////////////////银行2结束//////////////////////////////////////////////////////////////// //////////////////////////// /////////////////////////////////////////////
ElseIf dr("开户行全称").Contains("工商银行") Then
ElseIf dr("开户行全称").Contains("**银行") Then
'''''//////////////////////////银行1结束//////////////////////////////////////////////////////////////// //////////////////////////// /////////////////////////////////////////////
else
'''''//////////////////////////银行6结束//////////////////////////////////////////////////////////////// //////////////////////////// /////////////////////////////////////////////
'/////////////////
End If
End Select