版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
U8二次开发参考手册
文档控制
修改记录
日期作者版本修改参考号
2007-11-30王冬冬、徐燕VI.0
200742-11王冬冬VI.1
2009-0840王冬冬VI.2
审阅人
姓名职位审阅签字
李勋华
存档
拷贝号地点备注
目录
1弓I言3
1.1阅读对象3
1.2U8二次开发概述3
1.3U8使用以及二次开发现存问题3
1.3.1U8使用问题3
1.3.2二次开发现存问题3
1.4编写目的4
2控件使用4
2.1开发环境4
2.2单据控件4
2.2.1如何使单据自定义项根据用户的需求弹出参照4
2.2.2库存单据USER-PCO控件的使用14
2.2.3单据标准(排序、合并、批改等功能)20
2.2.4单据参照的调用24
2.2.5单据打印标准化31
2.3单据列表控件32
2.3.1单据列表输出功能32
2.3.2单据列表的分页功能32
2.3.3单据列表的定位功能(列表数据定位)37
1引言
1.1阅读对象
本文档针对参与用友U8-ERP870及以上版本平台产品插件二次开发的技术
人员,读者必须具备一定的软件开发基础,并对U870及以上版本插件开发技术
有一定的了解。
1.2U8二次开发概述
目前,各个行业之间,如服装、化工、食品、机械等各个行业之间,差异越
来越大,行业的细分化越来越大,各个行业都存在其比较特殊的行业特性,ERP
产品为了把开发的数量减少到最低,缩短实施周期,减少项目投入,减少实施的
成本,ERP产品必须走行业化道路才行。因此对于标准产品用友ERP-U8,要适
应行业的发展也必须走行业化的道路。
1.3U8使用以及二次开发现存问题
1.3.1U8使用问题
不具备行业化特性,针对具体的行业,尤其是服装、化工、
食品等个性化鲜明的行业,U8产品可以解决企业信息化的大部
分需求,但要体现各行业需求尚存在很大的不足,需要大量二次
开发才可满足,这点使ERP-U8很难做到普及。
1.3.2二次开发现存问题
二次开发人员在参与U8的二次开发时主要存在以下问题:
1.技术多样:就目前我了解的,U8的二次开发采用了多种工具,多种开种
语言,例如VB、Dephil
2.集成性差,没有U8原有的产品不能很好的集成,主要体现在与标准产品
的界面风格,基本功能不一致
3.获得帮助少,二次开发人员在进行U8的二次开发时,往往需要自己研究
U8标准产品的用法,遇到一些问题也无法得到及时的解答,只能在摸索
中前进,这样导致开发的效率时常比较低下
4.对于U8标准控件的使用不全面,相对局限性,二次开发人员在使用U8
标准控件时,通常是只知道其一,不知道其二,许多标准控件中的功能
没能及时应用上,这与U8标准控件没有形成一个全面的帮助有关。
L4编写目的
本手册主要是描述我在进行U8二次开发的过程中一些经验与体会,包括对U8标准控
件的使用以及一些问题的排错,在后续的开发中会逐渐完善该文档。
2控件使用
2.1开发环境
开发详述:
开发工具:VB+SQLSERVER2000
操作系统:windows2000;windowsxppro;windows2003(建议使用windows2003)
U8版本:U870+SP1
2.2单据控件
2.2.1如何使单据自定义项根据用户的需求弹出参照
用户在使用U8的过程中可能需要根据自己业务需求启用U8的单据的自定义
项为自己的单据添加一些业务参照,这就需要开发人员在开发过程中注意把调用
系统自定义项的代码添加进去。
2.2.1.1组件引用
部件引用:
注意:单据控件有两种,一种是U860中使用的,它们名字的区别是870的是
UAPVoucherControl85,而860的是VoucherControl85,两个控件切忌一起引入,不然会有冲
突,程序无法识别。
DLL引用:
图示中红色标注的是较为重要的一些DLL。
2.2.1.2参考代码段:
要使新做的单据支持单据的自定义项需要在代码中添加以下代码:
第一步「基础档案、单据参照统一过程
PublicSubBaseBi11Ref(moRefAsObject,visAsclsItemState,sRetAsVariant)
DimRstAsADODB.Recordset
DimstrGridAsString,_
strFldAsString,_
strChnAsString,_
strWidAsString,_
strTabAsString
Ifvis.nDataSource=1Then,参照基础档案
(sDalaRule=department,cdepcode)
IfmoRef.EnumRefInit(g_oLogin,enuTreeViewAndGrid,False,
Left$(vis.sDataRule,InStr(l,vis.sDataRule,-1))二FalseThenExitSub
strFld=Mid(vis.sDataRule,InStr(l,vis.sDataRule,+1)
Elselfvis.nDataSource=2Then,参照单据档案
(sDataRule=17,csocode)17为cardnumber
strTab=GetBillRefString(Left$(vis.sDataRule,InStr(l,vis.sDataRule,'V*)-1),
strGrid,strChn,strWid,False)
IfstrTab二""ThenExitSub
返回值列没有显示,则补充。
IfInStr(l,LCase(strGrid),LCase(Mid(vis.sDataRule,InStr(1,vis.sDataRule,+
1)))<=0Then
strGrid=strGrid&"J&Mid(vis.sDataRule,InStr(l,vis.sDataRule,n,u)+1)
strChn=strChn&",隐臧列"
strWid=strWid&",On
EndIf
strGrid=strGrid&"from"&strTab
IfmoRef.StrRefInit_SetColWidth(g_oLogin,False,strGrid,strChn,strWid)=
FalseThenExitSub
strFld=Mid(vis.sDataRule,InStr(l,vis.sDataRule,H,u)+1)
EndIf
'统一赋值
moRef.Show:SetRst=moRef.recmx
IfRstIsNothingThenExitSub
sRet=Rst(strFld)
EndSub
第二步:以下代码是上述代码中GetBillRefString函数:
,获取单据参照参数GetBillRefString
PublicFunctionGetBillRefString(ByValstrCardNumAsString,_
strSelFldLstAsString,_
strChnFldLstAsString,_
strColWidLstAsString,_
ByVaibOnlyTabAsBoolean)AsString
DimstrSqlAsString
DimstrTabAsString
DimRstAsADODB.Recordset
GetBillRefString二””
strSql="selectBTTblNamefromvoucherswherecardnumbei-*"&strCardNum&",u
SetRst=gConn.Execute(strSql)
IfRst.EOFOrRst.BOFThenExitFunction
strTab=Rst(O)
IfbOnlyTabThen
GetBillRefString=strTab
ExitFunction
EndIf
strSelFldLst="Select”
strSql="selectfieldname,(casewhencardformula1二"then(casewhencardfbiTnula2=H
thencarditemnameelsecardformula2end)elsecardformula1end)aschnnamefromvoucheritems
wherecardnum-*'&strCardNum&andcardsection='T'andShowit=landTableName=,n&
strTab&
SetRst=gConn.Execute(strSql)
IfRst.EOFOrRst.BOFThenExitFunction
DoWhileNotRst.EOF
strSelHdLst=strSelFldLst&RstJFieldName&”J
strChnFldLst=strChnFldLst&Trim(Rst!chnname)&
strColWidLst=strColWidLst&”1500,“
Rst.MoveNext
Loop
strSelFldLst=Left(strSelFldLst,Len(strSelFldLst)-1)
strChnFldLst=Left(strChnFIdLst,Len(strChnFldLst)-1)
strColWidLst=Left(strColWidLst,Len(strColWidLst)-1)
GetB川RefString=strTab
EndFunction
第三步:当添加一个单据的参照之后,要添加基础档案的检测:
'基础档案、单据检查统一过程
PublicFunctionBaseBillChk(visAsclsItemState,RetValueAsVariant,bChangedAs
UAPVoucherControl85.CheckRet)AsBoolean
DimstrSqlAsString,_
strTabAsString
DimRstAsADODB.Recordset
BaseBillChk=False
IfTrim(RetValue)"Then
RetValue=Trim(RetValue)
bChanged=success
BaseBillChk=True
ExitFunction
EndIf
Ifvis.nDataSource=1Then,参照基础档案
(sDataRule=department,cdepcode)
strSql=nselect1from"&Left$(vis.sDataRule,InStr(l,vis.sDataRule,n,M)-1)&**
where"&Mid(vis.sDataRule,InStr(l,vis.sDataRule,n,n)+1)&n=",&RetValue&
SetRst=gConn.Execute(strSql)
IfRst.EOFOrRst.BOFThen
MsgBox”输入的档案项不存在!”,vblnformation
bChanged=Cancel
ExitFunction
EndIf
Elselfvis.nDataSource=2Then,参照单据档案
(sDataRule=17,csocode)17为cardnumber
strTab=GetBillRefString(Left$(vis.sDataRule,InStr(1,vis.sDataRule,n,H)
,,n,True)
IfstrTab=Then
MsgBox”单据不存在「,vblnformation
bChanged=Cancel
ExitFunction
EndIf
strSql="select1from"&strTab&"where"&Mid(vis.sDataRule,InStr(l,
vis.sDataRule,n,n)+1)&"='H&RetValue&"'n
SetRst=gConn.Execute(strSql)
IfRst.EOFOrRst.BOFThen
MsgBox”输入的单据项不存在!'vblnformation
bChanged=Cancel
ExitFunction
EndIf
EndIf
BaseBillChk=True
EndFunction
第四步:在单据的参照事件内添加以下代码(判断是何种类型)红字部分:
‘自定义参照
,bill单据对象
,r0表示表头参照,非0表示表体参照的当前行号。
'vis表头或表体项目信息对象
,sRet参照返回值
PublicSubBus_BrowUser(Bi11AsObject,ByVairAsLong,visAsclsItemState,sRetAsVariant)
DimRstAsADODB.Recordset
DimstrGridAsString
DimstrFldAsString
DimRsAsADODB.Recordset
DimsqlAsString
OnErrorGoToerrHandle
Ifr=0Then'表头参照
Ifvis.nDataSource=0Then'业务需要的参照
,这里面添加业务需要的用户自己编写的参照代码
Else
BaseBillRefreRef,vis,sRet原统预设的参照(单据表头自定义项)
EndIf
Else
Ifvis.nDataSource=0Then,判断vis的值判断是何种业务的参照
’这里面添加业务需要的用户自己编写的参照代码
Else
BaseBillRefreRef,vis,sRet源统预设的参照
EndIf
EndIf
ExitSub
enHandle:
MsgBoxErr.Description
EndSub
第五步:添加数据检测,把相关代码加入单据的检测事件中(红色部分):
有效性检查
,bill单据对象
,RetValue当前值
^Changed检查结果取消或重试或成功
T0表示表头检查,非0表示表体检查的当前行号。
,vis表头或表体项目信息对象
PublicSubBus_CellCheck(BillAsObject,RetValueAsVariant,bChangedAsLong,ByVairAs
Long,visAsclsItemState)
DimRstAsADODB.Recordset
DimstrSqlAsString
DimsqlAsString
DimRsAsADODB.Recordset
OnErrorGoToerrHandle
Ifr=0Then俵头
Ifvis.nDataSource=0Then,业务需要的检查
'用户自己编写的参照的检测
Else
IfBaseBiIlChk(vis,RetValue,bChanged)=FalseThenExitSub'系统预设的检查
EndIf
Else
Ifvis.nDataSource=0Then业务需要的检查
,用户自己编写的参照的检测
Else
IfBaseBillChk(vis,RetValue,bChanged)=FalseThenExitSub'系统预设的检查
EndIf
EndIf
ExtOK:
bChanged=CheckRet.success
ExitSub
enHandle:
MsgBoxErr.Description
EndSub
2.2.1.3系统设置
当完成了以上工作之后,用户就可以第六步的设置完成自己定义的项目。
进入系统的节点-基础设置一一基础档案设置一一其它:进入自定义项档案设置
_序X
文件。徽作©)帮助如
.定义一档窠刷新..退出
自定义项档案
自定义分类序号分类项目号数据类型最大长度项目名称长度小数位数是否.
《罐;
1供应商自定义项12020
2供应商自定义项22020
,春黄\3供应商自定义项32020
匚客尸\
4供应商自定义项46060
匚供应府\
5供应商自定义项56060
\6供应液自定义项66060
\7供应商自定义项7120120
\8供应商自定义项8120120
供应商自定义项9120120
\\9
10供应商自定义项10120120
遨置这窗个地11供应商自定义项11
12供应商自定义项12
方13供应商自定义项136
14供应商自定义项146
15商自定义项15
16供应商自定义项16
<1">
殊套:[112]西901瘦身帐有TI2暗号除作员:den。当前记录数:16条【用次软件】
毗居^「渗.]0tm*总上国国pU;”
设置自定义项:
自定义项设置'区
档案,一退出
分类回赢数据类型i
项目号|目龙号站最大长度眄-
唯名斑侬^|项目名称盛体中文)|项目名称侯语)
《用户自定义名称)
55m
完成了之后,到单据格式中设置单据体就行了具体操作如下:
文件9解视图9工具中格式化⑪语苦©招助如
笆旦,包j-'手X、;」一•1•春|w加e>保可
物料清单显示模版
单据英也0,J..2.1..3.1,4.,5.1,6,7.1,8,.9....10,..11..12..,13,.,14,.,15.JG,,171,181,191.201.21
E-&应收款管理A
0-ft应付软者理染色计划用料单
由巴销售管理
0-ft出口莒登班编码
由e家购管理
库存首理
由巴质量管理显示项目名称
B&存货核苴
由委外管理
I3-&物料清单
由已主生产计划
B&需求现划
S&生产订单
0&车间首理表体自定义项3
由已人事等理
白•■&服笠管变
巳H生产备脱谑援建i
0-0集体计件工资语言信坦:|中文TS体—3缪更类卷:设置参照档案
由e成本分析单
在
定
这
默认名称:表体自定义项3|显示名称是
0.a产量登记单~
0-a工票列宽1995默认值薯
重
aa并建工票可
数据类亚最大长度
s-a单列工禀
小数位数己
□a扫菲退片录入
□必懈数据显示格式化字符串
0-01单波科
□
因匕汇总计件工资
口禁止翁辑I3
由e备货单For)»£$:*
a-d计件工资核算从自定者案中漠取信息|
合计:
E-3合同订单
史?染色单
瑜定|取消©
S-0显示
:与染色计划
H-0打卬
a-a染色用料单
S-0显示
.论初科潘单〜
<|「二T>'
桎版装我成功类型显示总数।
稔岫=11。°%*以66国归⑦1大!9
自定义项属性设置:
单髭格式设叁-J_X
文件9编强©视图&)工具甲格式化(Q)语言©超助⑥
・。IST”L:-:-(m5r百1%忆।型•丁•塞2,。⑨与:历一r
物断活单显示模版
单据类型X.£.||&也"..遥」..“即|山.|,..|禽...』.13""1幻““|1就”.|12..“皿/.“1.埔...」现
□.曰收款管理
©•■&)应付我省理染色计划用料单
0&销售笆理
由••巴出口哲理物料例码
采购管理
表体:
由••巴库存曾'起
由e质量昔理显示项目名称
O口
由存贷核苴号
e1仃
li耀
□ft委外苦独编码
寥
称
山•■&物料清单名
施
&主生产计划量
©••t^掇
由e需求规划屈
EJa生产订单l=t
由.•巴车间管理
0&人事省理
白e服装管理
(33生产备科翔S建t
s-a集体计件工资
0-Q成本分析单
由e产量登记单
B-0工票
□B并拌工票
B-Q隼列工崇
□a扫菲退片录入
0-3仃单发科
白匕汇总计件工资
由e备货单
□o计件工资核算
E-a合同订单w口回二拦口I11
臼匕染色计划单
摭定。期消一)
;0-3显示j;|||II・
V染色计划•
:国•白打印
□0染色计划用料单144
0-0显示
年物料潘单.V
«】;・丁M।i±j_,
槿,版装就成功类型显示总数i
100%巧一好色愎竭g14:20,
注意:如果要使用在单据格式设置界面可以进行参照类型的设置,开发人员在开发单据时,
使用单据设置单据模板时要注意在自定义项目设置为1:
■ire行业开宠梆本在成工具FOTTWkvnreTnig
□新单,修改,X用赊影本/退出
帐套库WDATAlt22007▼皴据JS服务器|U8版本・娜.!
金据报表
+所有单据
例快标识服装管理
□(9334)生产备科调拨建议处至
(FC06FZ0⑸鬃体计件工
n单据标识jFZ86
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度年福建省高校教师资格证之高等教育心理学能力提升试卷A卷附答案
- 2024年度山西省高校教师资格证之高等教育法规模拟考核试卷含答案
- 2024年度年福建省高校教师资格证之高等教育学测试卷(含答案)
- 2024年现场总线计算机通讯模板项目资金需求报告代可行性研究报告
- 四年级数学(简便运算)计算题专项练习与答案
- 终身教育视角下职业教育提质培优路径探析
- 2024年商品买卖协议模板2
- 2024年工程监理外部合作协议
- 2024年专业有机肥购销协议详细样本
- 2024年真石漆外墙施工协议
- 干部人事档案任前审核登记表范表
- 北京市道德与法治初一上学期期中试卷及答案指导(2024年)
- 高校实验室安全基础学习通超星期末考试答案章节答案2024年
- 四川省绵阳市高中2025届高三一诊考试物理试卷含解析
- 朗致集团逻辑测评试卷2024
- 铁合金生产工艺
- 焦化厂生产工序及工艺流程图
- 汽车排放控制系统的检修
- 《新能源》题库(试题及答案29个)
- (完整版)油罐换底工程施工方案
- 悬吊技术的临床应
评论
0/150
提交评论