服务器配置 | |
---|---|
服务器IP: | |
数据库实例: | |
数据库密码: | |
数据操作 | |
数据源: | |
目标数据: | |
年度-月份: | |
一个客户的U8软件为10.1版本,但是
在使用总账工具的时候后台账套库莫名其妙会出现重复的凭证,
重装U8软件也不行,最后觉得应该打上补丁就可以解决,由于SPS过期导致补丁打不上,最后想给他们
做个简易的总账工具加以解决,虽然当时我在后台账套库加了一个触发器解决了这个问题,但是还是将这个总账工具贴出来
这里面比用友的总账 工具多了一个“异常清理”按钮,主要是用来 消除 数据库出现重复的凭证
后台用的是python 写的
源代码打包传送门:https://github.com/WhsGhsot/U8GLTool
Server.py
#!C:\Users\Administrator\AppData\Local\Programs\Python\Python36\python.exe
import cgi
from OpeDatabase import *
from Database import *
import json
form =cgi.FieldStorage()
opeDatabase=OpeDatabase()
#接收前台传来的连接数据库信息
print('Content-type:text/html\n')
flag=form['flag'].value
if(flag=='connServer'):
serName=form['serName'].value
serPas=form['serPas'].value
if(serPas=='空'):
serPas=''
if(serName=='空'):
serName=''
status=opeDatabase.connData(server=serName,password=serPas)
if(status=='fail'):
print('fail')
else:
databases=opeDatabase.selDatabases('master','1=1')
jsonStr=json.dumps(databases)
print(jsonStr)
elif(flag=='ino_ids'):
serName=form['serName'].value
serPas=form['serPas'].value
if(serPas=='空'):
serPas=''
if(serName=='空'):
serName=''
opeDatabase.connData(server=serName,password=serPas)
sourceDatabase=form['sourceDatabase'].value
targetDatabase=form['targetDatabase'].value
iyear=form['iyear'].value
iperiod=form['iperiod'].value
condition=(' iyear=%s and iperiod=%s'%(iyear,iperiod))
data=opeDatabase.selIno_ids(sourceDatabase,condition)
#导入档案
condition=(' ccode not in (select ccode from [%s].[dbo].[gl_accvouch] where iyear=%s and iperiod=%s)'
%(targetDatabase,iyear,iperiod))
opeDatabase.InsCode(sourceDatabase,targetDatabase,condition)
condition=(' cdepcode not in (select cdept_id from [%s].[dbo].[gl_accvouch] where iyear=%s and iperiod=%s)'
%(targetDatabase,iyear,iperiod))
opeDatabase.InsDepartment(sourceDatabase,targetDatabase,condition)
condition=(' ccuscode not in (select ccus_id from [%s].[dbo].[gl_accvouch] where iyear=%s and iperiod=%s)'
%(targetDatabase,iyear,iperiod))
opeDatabase.InsCustomer(sourceDatabase,targetDatabase,condition)
opeDatabase.InsVc(sourceDatabase,targetDatabase,'1=1')
condition=(' cvencode not in (select csup_id from [%s].[dbo].[gl_accvouch] where iyear=%s and iperiod=%s)'
%(targetDatabase,iyear,iperiod))
opeDatabase.InsVendor(sourceDatabase,targetDatabase,condition)
condition=(' cpersoncode not in (select cperson_id from [%s].[dbo].[gl_accvouch] where iyear=%s and iperiod=%s)'
%(targetDatabase,iyear,iperiod))
opeDatabase.InsPerson(sourceDatabase,targetDatabase,condition)
opeDatabase.InsHip(sourceDatabase,targetDatabase,'1=1')
if(len(data)==0):
print('fail')
else:
jsonStr=json.dumps(data)
print(jsonStr)
elif(flag=='copy'):
serName=form['serName'].value
serPas=form['serPas'].value
if(serPas=='空'):
serPas=''
if(serName=='空'):
serName=''
opeDatabase.connData(server=serName,password=serPas)
sourceDatabase=form['sourceDatabase'].value
targetDatabase=form['targetDatabase'].value
iyear=form['iyear'].value
iperiod=form['iperiod'].value
ino_id=form['ino_id'].value
condition=(' iyear=%s and iperiod=%s and ino_id=%s'%(iyear,iperiod,ino_id))
status=opeDatabase.InsertGl_vch(sourceDatabase,targetDatabase,condition)
print(status)
elif(flag=='clear'):
serName=form['serName'].value
serPas=form['serPas'].value
if(serPas=='空'):
serPas=''
if(serName=='空'):
serName=''
opeDatabase.connData(server=serName,password=serPas)
targetDatabase=form['targetDatabase'].value
status=opeDatabase.DelGlVch(targetDatabase,'1=1')
print(status)
elif(flag=='codeInput'):
serName=form['serName'].value
serPas=form['serPas'].value
if(serPas=='空'):
serPas=''
if(serName=='空'):
serName=''
opeDatabase.connData(server=serName,password=serPas)
sourceDatabase=form['sourceDatabase'].value
targetDatabase=form['targetDatabase'].value
status=opeDatabase.InsCode(sourceDatabase,targetDatabase,'1=1')
print(status)
elif(flag=='customerInput'):
serName=form['serName'].value
serPas=form['serPas'].value
if(serPas=='空'):
serPas=''
if(serName=='空'):
serName=''
opeDatabase.connData(server=serName,password=serPas)
sourceDatabase=form['sourceDatabase'].value
targetDatabase=form['targetDatabase'].value
status=opeDatabase.InsCustomer(sourceDatabase,targetDatabase,'1=1')
print(status)
elif(flag=='vendorInput'):
serName=form['serName'].value
serPas=form['serPas'].value
if(serPas=='空'):
serPas=''
if(serName=='空'):
serName=''
opeDatabase.connData(server=serName,password=serPas)
sourceDatabase=form['sourceDatabase'].value
targetDatabase=form['targetDatabase'].value
status=opeDatabase.InsVc(sourceDatabase,targetDatabase,'1=1')
status=opeDatabase.InsVendor(sourceDatabase,targetDatabase,'1=1')
print(status)
elif(flag=='personInput'):
serName=form['serName'].value
serPas=form['serPas'].value
if(serPas=='空'):
serPas=''
if(serName=='空'):
serName=''
opeDatabase.connData(server=serName,password=serPas)
sourceDatabase=form['sourceDatabase'].value
targetDatabase=form['targetDatabase'].value
status=opeDatabase.InsPerson(sourceDatabase,targetDatabase,'1=1')
status=opeDatabase.InsHip(sourceDatabase,targetDatabase,'1=1')
print(status)
elif(flag=='departmentInput'):
serName=form['serName'].value
serPas=form['serPas'].value
if(serPas=='空'):
serPas=''
if(serName=='空'):
serName=''
opeDatabase.connData(server=serName,password=serPas)
sourceDatabase=form['sourceDatabase'].value
targetDatabase=form['targetDatabase'].value
status=opeDatabase.InsDepartment(sourceDatabase,targetDatabase,'1=1')
print(status)
Database.py
"""底层数据API"""
"""数据库类 封装关于数据库的各种操作方法"""
import pymssql
from Table import *
class Database:
#生成游标
def CreateCursor(self):
self.cursor=self.conn.cursor()
return self.cursor
#关闭数据库
def CloseConn(self,conn):
conn.close()
#server 数据库服务器名称
#user 用户名
#password 密码
#database 数据库名称
#connectState 连接状态 success表示成功 fail表示失败
def ConnData(self,server,password,user="sa",database="master"):
try:
#print(server,password)
self.conn=pymssql.connect(server,user,password,database)
#生成游标
self.CreateCursor()
return 'success'
except:
return 'fail'
"""数据库 insert select update delete """
#选择操作,根据传来的flag进行查询 flag='code','customer','vendorclass','vendor','person','hr_hi_person' 'sysdatabases'
#targetDatabase 目标数据库 candition 查询条件
def selTable(self,targetDatabase,condition,flag):
sqlStr=''
if(flag=='code'):
sqlStr= sqlStr=('select ccode from [%s].[dbo].[code] where %s'%(targetDatabase,condition))
elif(flag=='customer'):
sqlStr=('select ccuscode from [%s].[dbo].[customer] where %s'%(targetDatabase,condition))
elif(flag=='vendorclass'):
sqlStr=('select cvccode from [%s].[dbo].[vendorclass] where %s'%(targetDatabase,condition))
elif(flag=='vendor'):
sqlStr=('select cvencode from [%s].[dbo].[vendor] where %s'%(targetDatabase,condition))
elif(flag=='person'):
sqlStr=('select cpersoncode from [%s].[dbo].[person] where %s'%(targetDatabase,condition))
elif(flag=='hr_hi_person'):
sqlStr=('select cpsn_num from [%s].[dbo].[hr_hi_person] where %s'%(targetDatabase,condition))
elif(flag=='sysdatabases'):
sqlStr=('select name from [%s].[dbo].[sysdatabases] where %s'
%(targetDatabase,"name like 'UFDATA_%' and "+condition))
#print("查询语句:",sqlStr)
elif(flag=='maxIno_id'):
sqlStr=('select max(ino_id) from [%s].[dbo].[gl_accvouch] where %s'
%(targetDatabase,condition))
elif(flag=='ino_id'):
sqlStr=('select ino_id from [%s].[dbo].[gl_accvouch] where %s group by ino_id '
%(targetDatabase,condition))
elif(flag=='department'):
sqlStr=('select cdepcode from [%s].[dbo].[department] where %s'%(targetDatabase,condition))
self.cursor.execute(sqlStr)
values=[]
row=self.cursor.fetchone()
while row:
values.append(row[0])
row=self.cursor.fetchone()
return values
#主要是插入基础档案的
#插入操作,根据传来的flag进行查询 flag='code','customer','vendorclass','vendor','person','hr_hi_person'
#targetDatabase 目标数据库 condition 查询条件
def InsTable(self,sourceData,targetData,condition,flag):
sqlStr=''
if(flag=='code'):
sqlStr=(r'insert into [%s].[dbo].[code](%s) select %s from [%s].[dbo].[code] where %s'
r' and ccode not in (select ccode from [%s].[dbo].[code])'
%(targetData,Table.table['code'],Table.table['code'],sourceData,condition,targetData))
elif(flag=='customer'):
sqlStr=(r'insert into [%s].[dbo].[customer](%s) select %s from [%s].[dbo].[customer] where %s'
r' and ccuscode not in (select ccuscode from [%s].[dbo].[customer])'
%(targetData,Table.table['customer'],Table.table['customer'],sourceData,condition,targetData))
elif(flag=='vendorclass'):
sqlStr=(r'insert into [%s].[dbo].[vendorclass](%s) select %s from [%s].[dbo].[vendorclass] where %s'
r' and cvccode not in (select cvccode from [%s].[dbo].[vendorclass])'
%(targetData,Table.table['vendorclass'],Table.table['vendorclass'],sourceData,condition,targetData))
elif(flag=='vendor'):
sqlStr=(r'insert into [%s].[dbo].[vendor](%s) select %s from [%s].[dbo].[vendor] where %s and '
r' cvencode not in (select cvencode from [%s].[dbo].[vendor])'
%(targetData,Table.table['vendor'],Table.table['vendor'],sourceData,condition,targetData))
elif(flag=='person'):
sqlStr=(r'insert into [%s].[dbo].[person](%s) select %s from [%s].[dbo].[person] where %s and '
r' cpersoncode not in (select cpersoncode from [%s].[dbo].[person])'
%(targetData,Table.table['person'],Table.table['person'],sourceData,condition,targetData))
elif(flag=='hr_hi_person'):
sqlStr=(r'insert into [%s].[dbo].[hr_hi_person](%s) select %s from [%s].[dbo].[hr_hi_person] where %s and cpsn_num not in (select cpsn_num from [%s].[dbo].[hr_hi_person] )'
%(targetData,Table.table['hr_hi_person'],Table.table['hr_hi_person'],sourceData,condition,targetData))
elif(flag=='department'):
sqlStr=(r'insert into [%s].[dbo].[department](%s) select %s from [%s].[dbo].[department] where %s '
r' and cdepcode not in (select cdepcode from [%s].[dbo].[department])'
%(targetData,Table.table['department'],Table.table['department'],sourceData,condition, targetData))
try:
self.cursor.execute(sqlStr)
self.conn.commit()
return 'success'
except:
return 'fail'
#插入凭证专用方法
#sourceData:源数据库 targetData:目标数据库 condition:插入条件
def InsertGl_vch(self,sourceData,targetData,condition):
#得到最大Ino_id
maxIno_id=0
ino_id=self.selTable(targetData,'1=1','maxIno_id')
if(len(ino_id)>=1):
if(ino_id[0]!=None):
maxIno_id=ino_id[0]
ino_Id="'"+str(int(maxIno_id)+1)+"'"
strs=(Table.table['gl_InsVch'] %(ino_Id))
sqlStr=('insert into [%s].[dbo].[gl_accvouch](%s) select %s from [%s].[dbo].[gl_accvouch] where %s'
%(targetData,Table.table['gl_accvouch'],strs,sourceData,condition))
try:
self.cursor.execute(sqlStr)
self.conn.commit()
return 'success'
except :
return 'fail'
#删除,根据传来的flag进行查询 flag='code','customer','vendorclass','vendor','person','hr_hi_person'
#targetDatabase 目标数据库 sourceData 源数据库 condition 查询条件
def DelTable(self,targetData,condition,flag):
sqlStr=('delete from [%s].[dbo].[%s] where %s'%(targetData,flag,condition))
if(flag=='gl_accvouch'):
sqlStr=('delete from [%s].[dbo].[%s] where %s and ibook=0'%(targetData,flag,condition))
try:
self.cursor.execute(sqlStr)
self.conn.commit()
return 'success'
except:
return 'fail'
OpeDatabase.py
"""中间层 传输数据"""
"""select update insert delete """
from Database import *
class OpeDatabase:
#初始化创建数据库实例
def __init__(self):
self.conn=Database()
#连接数据库,连接成功后建立游标 server 为数据库实例 password为数据库密码
def connData(self,server,password):
status=self.conn.ConnData(server,password)
#数据库连接成功 生成游标
if(status=='success'):
self.CreateCursor()
return 'success'
#数据库连接失败 返回给用户
else:
return 'fail'
#生成游标
def CreateCursor(self):
self.cursor= self.conn.CreateCursor()
#关闭数据库
def CloseConn(self):
self.conn.CloseConn(self.conn)
#选择目的账套的会计科目的id targetDatabase为目的账套 candition为条件 --未实现
#return ccodes:[]
def selCodeId(self,targetDatabase,condition):
return self.conn.selTable(targetDatabase,condition,'code')
#选择目的账套的客户档案的id targetDatabase为目的账套 candition为条件 --未实现
#return cccodes:[]
def selCusId(self,targetDatabase,condition):
return self.conn.selTable(targetDatabase,condition,'customer')
#选择目的账套的供应商分类的id targetDatabase为目的账套 candition为条件 --未实现
#return cvccodes:[]
def selVCId(self,targetDatabase,condition):
return self.conn.selTable(targetDatabase,condition,'vendorclass')
#选择目的账套的供应商id targetDatabase为目的账套 candition为条件
def selVId(self,targetDatabase,condition):
return self.conn.selTable(targetDatabase,condition,'vendor')
#选择目的账套个人档案id targetDatabase为目的账套 candition为条件 --未实现
def selPId(self,targetDatabase,condition):
return self.conn.selTable(targetDatabase,condition,'person')
#选择目的账套部门档案id targetDatabase为目的账套 candition为条件 --未实现
def selDeId(self,targetDatabase,condition):
return self.conn.selTable(targetDatabase,condition,'department')
#选择目的账套人事档案的个人id targetDatabase为目的账套 candition为条件 --未实现
def selHiId(self,targetDatabase,condition):
return self.conn.selTable(targetDatabase,condition,'hr_hi_person')
#选择全部账套信息
def selDatabases(self,targetDatabase,condition):
return self.conn.selTable(targetDatabase,condition,'sysdatabases')
#选择目的账套最大的ino_id
def selMaxIno_id(self,targetDatabase,condition):
return self.conn.selTable(targetDatabase,condition,'maxIno_id')
#选择目标账套的ino_ids return ino_ids:[]
def selIno_ids(self,targetDatabase,condition):
return self.conn.selTable(targetDatabase,condition,'ino_id')
#插入code sourceData 为源数据库 TargetData为目的数据库 candition为条件 -未实现
def InsCode(self,sourceData,targetData,condition):
return self.conn.InsTable(sourceData,targetData,condition,'code')
#插入Customer sourceData 为源数据库 TargetData为目的数据库 candition为条件 -未实现
def InsCustomer(self,sourceData,targetData,condition):
return self.conn.InsTable(sourceData,targetData,condition,'customer')
#插入Vendorclass sourceData 为源数据库 TargetData为目的数据库 candition为条件 -未实现
def InsVc(self,sourceData,targetData,condition):
return self.conn.InsTable(sourceData,targetData,condition,'vendorclass')
#插入Vendor sourceData 为源数据库 TargetData为目的数据库 candition为条件 -未实现
def InsVendor(self,sourceData,targetData,condition):
return self.conn.InsTable(sourceData,targetData,condition,'vendor')
#插入person sourceData 为源数据库 TargetData为目的数据库 candition为条件 -未实现
def InsPerson(self,sourceData,targetData,condition):
return self.conn.InsTable(sourceData,targetData,condition,'person')
#插入hr_hi_person sourceData 为源数据库 TargetData为目的数据库 candition为条件 -未实现
def InsHip(self,sourceData,targetData,condition):
return self.conn.InsTable(sourceData,targetData,condition,'hr_hi_person')
def InsertGl_vch(self,sourceData,targetData,condition):
return self.conn.InsertGl_vch(sourceData,targetData,condition)
def InsDepartment(self,sourceData,targetData,condition):
return self.conn.InsTable(sourceData,targetData,condition,'department')
#删除code sourceData 为源数据库 TargetData为目的数据库 candition为条件 -未实现
def DelCode(self,targetData,condition):
return self.conn.DelTable(targetData,condition,'code')
#删除Customer sourceData 为源数据库 TargetData为目的数据库 candition为条件 -未实现
def DelCustomer(self,targetData,condition):
return self.conn.DelTable(targetData,condition,'customer')
#删除Vendorclass sourceData 为源数据库 TargetData为目的数据库 candition为条件 -未实现
def DelVc(self,targetData,condition):
return self.conn.DelTable(targetData,condition,'vendorclass')
#删除Vendor sourceData 为源数据库 TargetData为目的数据库 candition为条件 -未实现
def DelVendor(self,sourceData,targetData,condition):
return self.conn.DelTable(targetData,condition,'vendor')
#删除person sourceData 为源数据库 TargetData为目的数据库 candition为条件 -未实现
def DelPerson(self,targetData,condition):
return self.conn.DelTable(sourceData,targetData,condition,'person')
#删除hr_hi_person sourceData 为源数据库 TargetData为目的数据库 candition为条件 -未实现
def DelHip(self,targetData,condition):
return self.conn.DelTable(targetData,condition,'hr_hi_person')
#删除异常(未记账凭证)
def DelGlVch(self,targetData,condition):
return self.conn.DelTable(targetData,condition,'gl_accvouch')
Table.py
"""数据库表"""
class Table:
table={'gl_InsVch':r"""[iperiod],[csign],[isignseq],%s as ino_id,[inid],[dbill_date],[idoc],[cbill],[ccheck],
[cbook],[ibook],[ccashier],[iflag],[ctext1],[ctext2],[cdigest],[ccode],[cexch_name],[md],[mc],[md_f],[mc_f],
[nfrat],[nd_s],[nc_s],[csettle],[cn_id],[dt_date],[cdept_id],[cperson_id],[ccus_id],[csup_id],[citem_id]
,[citem_class],[cname],[ccode_equal],[iflagbank],[iflagPerson],[bdelete],[coutaccset],[ioutyear],
[coutsysname],[coutsysver],[doutbilldate],[ioutperiod],[coutsign],[coutno_id],[doutdate],[coutbillsign],
[coutid],[bvouchedit],[bvouchAddordele],[bvouchmoneyhold],[bvalueedit],[bcodeedit],[ccodecontrol],[bPCSedit],
[bDeptedit],[bItemedit],[bCusSupInput],[dReceive],[cWLDZFlag],[dWLDZTime],[bFlagOut],[iBG_OverFlag],
[cBG_Auditor],[dBG_AuditTime],[cBG_AuditOpinion],[bWH_BgFlag],[ssxznum],[CErrReason],[BG_AuditRemark],
[cBudgetBuffer],[iBG_ControlResult],[NCVouchID],[daudit_date],[cBankReconNo],[iyear],[iYPeriod],[wllqDate],
[wllqPeriod],[tvouchtime],[cblueoutno_id],[ccodeexch_equal],[cpzchcode]""",
'gl_accvouch':r"""[iperiod],[csign],[isignseq],ino_id,[inid],[dbill_date],[idoc],[cbill],[ccheck],
[cbook],[ibook],[ccashier],[iflag],[ctext1],[ctext2],[cdigest],[ccode],[cexch_name],[md],[mc],[md_f],[mc_f],
[nfrat],[nd_s],[nc_s],[csettle],[cn_id],[dt_date],[cdept_id],[cperson_id],[ccus_id],[csup_id],[citem_id]
,[citem_class],[cname],[ccode_equal],[iflagbank],[iflagPerson],[bdelete],[coutaccset],[ioutyear],
[coutsysname],[coutsysver],[doutbilldate],[ioutperiod],[coutsign],[coutno_id],[doutdate],[coutbillsign],
[coutid],[bvouchedit],[bvouchAddordele],[bvouchmoneyhold],[bvalueedit],[bcodeedit],[ccodecontrol],[bPCSedit],
[bDeptedit],[bItemedit],[bCusSupInput],[dReceive],[cWLDZFlag],[dWLDZTime],[bFlagOut],[iBG_OverFlag],
[cBG_Auditor],[dBG_AuditTime],[cBG_AuditOpinion],[bWH_BgFlag],[ssxznum],[CErrReason],[BG_AuditRemark],
[cBudgetBuffer],[iBG_ControlResult],[NCVouchID],[daudit_date],[cBankReconNo],[iyear],[iYPeriod],[wllqDate],
[wllqPeriod],[tvouchtime],[cblueoutno_id],[ccodeexch_equal],[cpzchcode]""",
'code':r"""[cclass],[cclass_engl],[ccode],[ccode_name],[igrade],[bproperty],[cbook_type],
[cbook_type_engl] ,[cmeasure],[bperson],[bcus],[bsup],[bdept],[bitem],[cass_item],[br],[be],
[bend],[bexchange],[bcash],[bbank],[bused],[bd_c],[dbegin],[dend],[itrans],[bclose],
[cother],[iotherused],[iViewItem],[bGCJS],[bCashItem],[bReport],[cUserDefineType],[iyear],
[dModifyDate],[bparacc]""",
'customer':r""" [cCusCode]
,[cCusName]
,[cCusAbbName]
,[cCCCode]
,[cDCCode]
,[cTrade]
,[cCusAddress]
,[cCusPostCode]
,[cCusRegCode]
,[cCusBank]
,[cCusAccount]
,[dCusDevDate]
,[cCusLPerson]
,[cCusEmail]
,[cCusPerson]
,[cCusPhone]
,[cCusFax]
,[cCusBP]
,[cCusHand]
,[cCusPPerson]
,[iCusDisRate]
,[cCusCreGrade]
,[iCusCreLine]
,[iCusCreDate]
,[cCusPayCond]
,[cCusOAddress]
,[cCusOType]
,[cCusHeadCode]
,[cCusWhCode]
,[cCusDepart]
,[iARMoney]
,[dLastDate]
,[iLastMoney]
,[dLRDate]
,[iLRMoney]
,[dEndDate]
,[iFrequency]
,[cCusDefine1]
,[cCusDefine2]
,[cCusDefine3]
,[iCostGrade]
,[cCreatePerson]
,[cModifyPerson]
,[dModifyDate]
,[cRelVendor]
,[iId]
,[cPriceGroup]
,[cOfferGrade]
,[iOfferRate]
,[cCusDefine4]
,[cCusDefine5]
,[cCusDefine6]
,[cCusDefine7]
,[cCusDefine8]
,[cCusDefine9]
,[cCusDefine10]
,[cCusDefine11]
,[cCusDefine12]
,[cCusDefine13]
,[cCusDefine14]
,[cCusDefine15]
,[cCusDefine16]
,[cInvoiceCompany]
,[bCredit]
,[bCreditDate]
,[bCreditByHead]
,[bLicenceDate]
,[dLicenceSDate]
,[dLicenceEDate]
,[iLicenceADays]
,[bBusinessDate]
,[dBusinessSDate]
,[dBusinessEDate]
,[iBusinessADays]
,[bProxy]
,[dProxySDate]
,[dProxyEDate]
,[iProxyADays]
,[cMemo]
,[bLimitSale]
,[cCusContactCode]
,[cCusCountryCode]
,[cCusEnName]
,[cCusEnAddr1]
,[cCusEnAddr2]
,[cCusEnAddr3]
,[cCusEnAddr4]
,[cCusPortCode]
,[cPrimaryVen]
,[fCommisionRate]
,[fInsueRate]
,[bHomeBranch]
,[cBranchAddr]
,[cBranchPhone]
,[cBranchPerson]
,[cCusTradeCCode]
,[CustomerKCode]
,[bCusState]
,[bShop]
,[cCusBankCode]
,[cCusExch_name]
,[iCusGSPType]
,[iCusGSPAuth]
,[cCusGSPAuthNo]
,[cCusBusinessNo]
,[cCusLicenceNo]
,[bCusDomestic]
,[bCusOverseas]
,[cCusCreditCompany]
,[cCusSAProtocol]
,[cCusExProtocol]
,[cCusOtherProtocol]
,[fCusDiscountRate]
,[cCusSSCode]
,[cCusCMProtocol]
,[dCusCreateDatetime]
,[cCusAppDocNo]
,[cCusMnemCode]
,[fAdvancePaymentRatio]
,[bServiceAttribute]
,[bRequestSign]
,[bOnGPinStore]
,[cCusMngTypeCode]
,[account_type]
,[cCusImAgentProtocol]
,[iSourceType]
,[iSourceId]
,[fExpense]
,[fApprovedExpense]
,[dTouchedTime]
,[dRecentlyInvoiceTime]
,[dRecentlyQuoteTime]
,[dRecentlyActivityTime]
,[dRecentlyChanceTime]
,[dRecentlyContractTime]
,[cLtcCustomerCode]
,[bTransFlag]
,[cLtcPerson]
,[dLtcDate]
,[cLocationSite]
,[iCusTaxRate]
,[alloct_dept_time]
,[allot_user_time]
,[recyle_dept_time]
,[recyle_pub_time]
,[cLicenceNo]
,[cLicenceRange]
,[cCusBusinessRange]
,[cCusGSPAuthRange]
,[dCusGSPEDate]
,[dCusGSPSDate]
,[iCusGSPADays]
,[bIsCusAttachFile]
,[dRecentContractDate]
,[dRecentDeliveryDate]
,[dRecentOutboundDate]
,[cProvince]
,[cCity]
,[cCounty]
,[cCusAddressGUID]
,[cAddCode]
,[cCreditAddCode]
,[cRegCash]
,[dDepBeginDate]
,[iEmployeeNum]
,[cURL]
,[PictureGUID]""",
'person':r"""[cPersonCode]
,[cPersonName]
,[cDepCode]
,[cPersonProp]
,[fCreditQuantity]
,[iCreDate]
,[cCreGrade]
,[iLowRate]
,[cOfferGrade]
,[iOfferRate]
,[cPersonEmail]
,[cPersonPhone]
,[dPValidDate]
,[dPInValidDate]""",
'hr_hi_person':r"""[cPsn_Num]
,[cPsn_Name]
,[cDept_num]
,[iRecordID]
,[rPersonType]
,[rSex]
,[dBirthDate]
,[rNativePlace]
,[rNational]
,[rhealthStatus]
,[rMarriStatus]
,[vIDNo]
,[MPicture]
,[rPerResidence]
,[vAliaName]
,[dJoinworkDate]
,[dEnterDate]
,[dRegularDate]
,[vSSNo]
,[rworkAttend]
,[vCardNo]
,[rtbmRule]
,[rCheckInFlag]
,[dLastDate]
,[vstatus1]
,[nstatus2]
,[bPsnPerson]
,[cPsnMobilePhone]
,[cPsnFPhone]
,[cPsnOPhone]
,[cPsnInPhone]
,[cPsnEmail]
,[cPsnPostAddr]
,[cPsnPostCode]
,[cPsnFAddr]
,[cPsnQQCode]
,[cPsnURL]
,[CpsnOSeat]
,[dEnterUnitDate]
,[cPsnProperty]
,[cPsnBankCode]
,[cPsnAccount]
,[pk_hr_hi_person]
,[bProbation]
,[cDutyclass]
,[bTakeTM]
,[MPictureqpb]
,[rIDType]
,[rCountry]
,[dLeaveDate]
,[rFigure]
,[rWorkStatus]
,[EmploymentForm]
,[rPersonParameters]
,[bDutyLock]
,[bpsnshop]
,[CardState]
,[FirstHTBeginDate]
,[LastHTEndDate]
,[cPsn_NameEN]
,[sysAge]
,[SysCompage]
,[SysWorkAge]
,[CRegion]
,[NatrueType]
,[cShiftType]
,[cDefaultBC]
,[dEnterDutyClassDate]
,[cRestType]
,[JobNumber]
,[PersonDepart]
,[CardEffectiveBeginTime]
,[CardEffectiveEndTime]
,[KeyPerson]
,[cLeaveReson]
,[rEmployState]
,[cDutyLocker]
,[cDutyLockerNum]
,[cJobCode]
,[cJobRankCode]
,[cJobGradeCode]
,[cPsnNowAddress]
,[cUrgentPsnName]
,[cUrgentPsnPhone]
,[bLongIDCard]
,[cLeaveType]
,[cDutyCode]
,[cFax]
,[cTitle]
,[cReportTo]
,[cStartWorkTime]
,[cEndWorkTime]
,[cLoginSubIDs]
,[cpersonbarcode]
,[bMobileCard]
,[cMobileSites]
,[vOldCard]
,[MaxLeadNum]
,[MaxPAccountNum]
,[MaxAccountNum]
,[MaxOpportunityNum]
,[LeadRcyReg]
,[PAccountRcyReg]
,[OpportunityRcyReg]
,[cESpaceUserID]
,[cWeixinid]
,[FAccountRcyReg]""",
'vendorclass':r"""[cVCCode]
,[cVCName]
,[iVCGrade]
,[bVCEnd]""",
'vendor':r"""[cVenCode]
,[cVenName]
,[cVenAbbName]
,[cVCCode]
,[cDCCode]
,[cTrade]
,[cVenAddress]
,[cVenPostCode]
,[cVenRegCode]
,[cVenBank]
,[cVenAccount]
,[dVenDevDate]
,[cVenLPerson]
,[cVenPhone]
,[cVenFax]
,[cVenEmail]
,[cVenPerson]
,[cVenBP]
,[cVenHand]
,[cVenPPerson]
,[iVenDisRate]
,[iVenCreGrade]
,[iVenCreLine]
,[iVenCreDate]
,[cVenPayCond]
,[cVenIAddress]
,[cVenIType]
,[cVenHeadCode]
,[cVenWhCode]
,[cVenDepart]
,[iAPMoney]
,[dLastDate]
,[iLastMoney]
,[dLRDate]
,[iLRMoney]
,[dEndDate]
,[iFrequency]
,[bVenTax]
,[cVenDefine1]
,[cVenDefine2]
,[cVenDefine3]
,[cCreatePerson]
,[cModifyPerson]
,[dModifyDate]
,[cRelCustomer]
,[iId]
,[cBarCode]
,[cVenDefine4]
,[cVenDefine5]
,[cVenDefine6]
,[cVenDefine7]
,[cVenDefine8]
,[cVenDefine9]
,[cVenDefine10]
,[cVenDefine11]
,[cVenDefine12]
,[cVenDefine13]
,[cVenDefine14]
,[cVenDefine15]
,[cVenDefine16]
,[fRegistFund]
,[iEmployeeNum]
,[iGradeABC]
,[cMemo]
,[bLicenceDate]
,[dLicenceSDate]
,[dLicenceEDate]
,[iLicenceADays]
,[bBusinessDate]
,[dBusinessSDate]
,[dBusinessEDate]
,[iBusinessADays]
,[bProxyDate]
,[dProxySDate]
,[dProxyEDate]
,[iProxyADays]
,[bPassGMP]
,[bVenCargo]
,[bProxyForeign]
,[bVenService]
,[cVenTradeCCode]
,[cVenBankCode]
,[cVenExch_name]
,[iVenGSPType]
,[iVenGSPAuth]
,[cVenGSPAuthNo]
,[cVenBusinessNo]
,[cVenLicenceNo]
,[bVenOverseas]
,[bVenAccPeriodMng]
,[cVenPUOMProtocol]
,[cVenOtherProtocol]
,[cVenCountryCode]
,[cVenEnName]
,[cVenEnAddr1]
,[cVenEnAddr2]
,[cVenEnAddr3]
,[cVenEnAddr4]
,[cVenPortCode]
,[cVenPrimaryVen]
,[fVenCommisionRate]
,[fVenInsueRate]
,[bVenHomeBranch]
,[cVenBranchAddr]
,[cVenBranchPhone]
,[cVenBranchPerson]
,[cVenSSCode]
,[cOMWhCode]
,[cVenCMProtocol]
,[cVenIMProtocol]
,[iVenTaxRate]
,[dVenCreateDatetime]
,[cVenMnemCode]
,[cVenContactCode]
,[cvenbankall]
,[bIsVenAttachFile]
,[cLicenceRange]
,[cBusinessRange]
,[cVenGSPRange]
,[dVenGSPEDate]
,[dVenGSPSDate]
,[iVenGSPADays]""",
'department':r"""[cDepCode]
,[bDepEnd]
,[cDepName]
,[iDepGrade]
,[cDepPerson]
,[cDepProp]
,[cDepPhone]
,[cDepAddress]
,[cDepMemo]
,[iCreLine]
,[cCreGrade]
,[iCreDate]
,[cOfferGrade]
,[iOfferRate]
,[bShop]
,[cDepGUID]
,[dDepBeginDate]
,[dDepEndDate]
,[vAuthorizeDoc]
,[vAuthorizeUnit]
,[cDepFax]
,[cDepPostCode]
,[cDepEmail]
,[cDepType]
,[bInheritDutyBasic]
,[bInheritWorkCalendar]
,[cDutyCode]
,[cRestCode]
,[bIM]
,[cDepNameEn]
,[bRetail]
,[cDepFullName]
,[iDepOrder]
,[cDepLeader]
,[dModifyDate]
,[cESpaceMembID]"""
}
index.html
自助工具
服务器配置
服务器IP:
数据库实例:
数据库密码:
数据操作
数据源:
目标数据:
年度-月份: