U8二次开发参考手册_第1页
U8二次开发参考手册_第2页
U8二次开发参考手册_第3页
U8二次开发参考手册_第4页
U8二次开发参考手册_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论