U8界面按钮二次开发手册
二次开发手册

二次开发手册随着科技的不断发展,软件已经成为人们日常生活和工作中不可或缺的一部分。
为了满足用户对软件功能的需求,开发者经常需要进行二次开发。
本手册旨在为二次开发者提供一套完整、实用的指南,帮助其更好地进行软件二次开发工作。
1.二次开发的基本概念二次开发是指在已有软件的基础上,根据用户需求进行功能扩展、改进或定制的过程。
通过二次开发,可以充分利用已有软件的优点,提高软件的功能性和易用性。
2.二次开发的流程二次开发的流程包括需求分析、设计、编码、测试和部署等阶段。
其中,需求分析阶段是关键,需要充分了解用户需求,确定二次开发的具体内容和目标。
设计阶段需要对系统架构、数据库结构、界面设计等进行详细规划。
编码阶段需要按照设计要求进行编码实现。
测试阶段需要对二次开发的功能进行全面测试,确保其符合预期要求。
部署阶段需要对二次开发的软件进行部署和上线。
3.二次开发的技术实现在进行二次开发时,需要了解和掌握相关的技术实现。
例如,对于Web应用程序的二次开发,需要了解HTML、CSS、JavaScript等前端技术,以及后端语言如Python、Java等。
对于移动应用程序的二次开发,需要了解iOS或Android平台的开发技术。
此外,还需要了解数据库技术、版本控制技术等。
4.二次开发的常见问题及解决方案在进行二次开发时,可能会遇到一些常见问题,如兼容性问题、性能问题、安全性问题等。
针对这些问题,需要采取相应的解决方案。
例如,对于兼容性问题,需要进行充分的测试和调优;对于性能问题,需要进行性能分析和优化;对于安全性问题,需要加强安全措施和防范措施。
5.案例分析为了更好地说明二次开发的实践过程,本手册提供了几个案例分析。
这些案例涵盖了不同领域和不同规模的二次开发项目,通过分析这些案例的成功经验和问题所在,可以为读者提供宝贵的启示和帮助。
通过这些案例的分析和学习,读者可以更好地理解二次开发的实践操作和关键要点,为自己的二次开发工作提供指导和实践经验借鉴。
U8界面按钮二次开发手册

U8界面按钮二次开发手册适用范围U8ToolBar原则上都可以支持二次开发行为,但由于某些界面没有这方面的需求,所以并没有支持二次开发功能如何检查是否支持二次开发在一个界面上同时按住Ctrl+Shift 并点击任何一个按钮,这样你所需要的信息将被Copy 到写字板(附件中的写字板)上,(注意不是记事本notepad)。
数据预置数据预置在Meta库中的Meta数据库,表AA_CustomerButton中。
销售订单的数据预置脚本销售订单的保存按钮后面增加一个按钮的脚本INSERT INTO [AA_CustomerButton]([cButtonID], [cButtonKey], [cButtonType], [cProjectNO], [cFormKey], [cVoucherKey], [cKeyBefore], [iOrder], [cGroup], [cCustomerObjectName], [cCaption], [cLocalelD], [cImage], [cToolTip], [cHotKey], [bInneralCommand], [cVariant], [cVisibleAsKey], [cEnableAsKey])VALUES(newid(), 'btntest','default', 'U8CustDef,'17', '17','save', '0', 'IEDIT','',' 测试','zh-cn','',' 测试','Ctrl+N',1,' 测试数据','save','save')注意:类需要注册,否则会报ActiveX不能创建对象。
U8-EAI二次开发说明

企业应用集成工具(EAI)二次开发1.概述U850企业应用集成工具(EAI)是U850与外部系统的数据接口,EAI提供了一些组件,可以在这些组件的基础上进行二次开发(以下简称“EAI二次开发”),实现与外部系统的集成。
不同系统集成的关键是遵循共同的数据标准,U850根据自己系统提出了一套数据标准,包括各种单据和基础档案,外部系统如果要和U850集成则必须遵循这一标准。
这套标准用XML 描述,因此数据流都为XML格式。
EAI二次开发可分为两种模式:注意:文中所有编程都以VB为例一、直接利用EAI管理工具。
在开始菜单中选择企业应用集成工具,登录企业应用集成主界面。
在这里可以将U850数据以标准XML文件的形式导出U850数据库或将标准XML数据文件导入U850系统。
二次开发程序员只需编写一个工具将标准XML数据文件进行适当转换写入外部系统或取出外部系统数据写成标准XML数据文件。
(参看EAI安装目录\xml\Samples\下的例子)数据流程如下:这种开发模式比较简单,优点是:充分利用EAI工具提供的功能,编程简单;缺点是:只能提供批量导入导出功能。
二、利用EAI提供的组件,进行灵活的二次开发。
包括两种方式:本地COM方式、Internet方式。
1)本地COM方式:这种方式可根据开发者的需要批量处理或者实时处理。
接口调用非常简单,简化了编程。
开发者只需将标准数据传入接口,如下:Set Obj=CreateObject(U8Distribute.iDistribute)Str = obj. Process(sXml)sXml为标准数据串,具体格式后面会说明。
2)Internet方式:http.Open "Post",http_name & “import.asp", True //指定服务器ASPhttp.send dom.xml //把xml数据发送到服务器端strRet= http.responseText //strRet :返回的xml格式的回执信息2.数据格式标准EAI可以导入导出的数据范围包括:Ø总帐§凭证§银行对账单Ø工资管理§人员档案§工资项目数据Ø固定资产§固定资产卡片Ø成本管理§材料消耗数据Ø资金管理§资金内部结算单Ø应收管理§应收单§收款单Ø应付管理§应付单§付款单Ø采购管理§采购订单§采购到货单§采购发票Ø销售管理§销售订单§发货单§销售发票§销售发票_导入到内部结算单Ø库存管理§入库单§出库单§库存量Ø基础档案§部门档案§职员档案§地区分类§客户分类§客户档案§供应商分类§供应商档案§存货分类§存货档案§结算方式§付款条件§开户银行§仓库档案§收发类别§销售类型§计量单位§计量单位组§产品结构§采购类型§成套件§费用项目§发运方式§货位档案§自定义项档案§项目§会计科目§外币§凭证类别§常用摘要提示:EAI安装目录\xml\Operation\dir.xml保存了相关定义下面一个例子是从U8导出的部门档案的片断:<?xml version="1.0" encoding="gb2312" ?><ufinterface sender="001" receiver="u8" roottag="department" docid=".533424" proc="Query" codeexchanged="N" exportneedexch="N" display="部门档案" family="基础档案" billtype=""> <department><code>1</code><endflag>0</endflag><name>综合处</name><rank>1</rank><manager/><prop>管理兼技术</prop><phone/><address/><remark/><creditline/><creditgrade/><creditdate/><offergrade/><offerrate/></department><department><code>109</code><endflag>1</endflag><name>厂办公室</name><rank>2</rank><manager/><prop>管理</prop><phone/><address/><remark/><creditline/><creditgrade/><creditdate/><offergrade/><offerrate/></department>…………</ufinterface>EAI中所有的标准数据文件都有类似于上例的结构,首先,有一个名为ufinterface的元素,ufinterface再有若干个子元素组成,不同应用的子元素有不同的格式。
U8-EAI二次开发说明

企业应用集成工具(EAI)二次开发1.概述U850企业应用集成工具(EAI)是U850与外部系统的数据接口,EAI提供了一些组件,可以在这些组件的基础上进行二次开发(以下简称“EAI二次开发”),实现与外部系统的集成。
不同系统集成的关键是遵循共同的数据标准,U850根据自己系统提出了一套数据标准,包括各种单据和基础档案,外部系统如果要和U850集成则必须遵循这一标准。
这套标准用XML 描述,因此数据流都为XML格式。
EAI二次开发可分为两种模式:注意:文中所有编程都以VB为例一、直接利用EAI管理工具。
在开始菜单中选择企业应用集成工具,登录企业应用集成主界面。
在这里可以将U850数据以标准XML文件的形式导出U850数据库或将标准XML数据文件导入U850系统。
二次开发程序员只需编写一个工具将标准XML数据文件进行适当转换写入外部系统或取出外部系统数据写成标准XML数据文件。
(参看EAI安装目录\xml\Samples\下的例子)数据流程如下:这种开发模式比较简单,优点是:充分利用EAI工具提供的功能,编程简单;缺点是:只能提供批量导入导出功能。
二、利用EAI提供的组件,进行灵活的二次开发。
包括两种方式:本地COM方式、Internet方式。
1)本地COM方式:这种方式可根据开发者的需要批量处理或者实时处理。
接口调用非常简单,简化了编程。
开发者只需将标准数据传入接口,如下:Set Obj=CreateObject(U8Distribute.iDistribute)Str = obj. Process(sXml)sXml为标准数据串,具体格式后面会说明。
2)Internet方式:http.Open "Post",http_name & “import.asp", True //指定服务器ASPhttp.send dom.xml //把xml数据发送到服务器端strRet= http.responseText //strRet :返回的xml格式的回执信息2.数据格式标准EAI可以导入导出的数据范围包括:Ø总帐§凭证§银行对账单Ø工资管理§人员档案§工资项目数据Ø固定资产§固定资产卡片Ø成本管理§材料消耗数据Ø资金管理§资金内部结算单Ø应收管理§应收单§收款单Ø应付管理§应付单§付款单Ø采购管理§采购订单§采购到货单§采购发票Ø销售管理§销售订单§发货单§销售发票§销售发票_导入到内部结算单Ø库存管理§入库单§出库单§库存量Ø基础档案§部门档案§职员档案§地区分类§客户分类§客户档案§供应商分类§供应商档案§存货分类§存货档案§结算方式§付款条件§开户银行§仓库档案§收发类别§销售类型§计量单位§计量单位组§产品结构§采购类型§成套件§费用项目§发运方式§货位档案§自定义项档案§项目§会计科目§外币§凭证类别§常用摘要提示:EAI安装目录\xml\Operation\dir.xml保存了相关定义下面一个例子是从U8导出的部门档案的片断:<?xml version="1.0" encoding="gb2312" ?><ufinterface sender="001" receiver="u8" roottag="department" docid=".533424" proc="Query" codeexchanged="N" exportneedexch="N" display="部门档案" family="基础档案" billtype=""> <department><code>1</code><endflag>0</endflag><name>综合处</name><rank>1</rank><manager/><prop>管理兼技术</prop><phone/><address/><remark/><creditline/><creditgrade/><creditdate/><offergrade/><offerrate/></department><department><code>109</code><endflag>1</endflag><name>厂办公室</name><rank>2</rank><manager/><prop>管理</prop><phone/><address/><remark/><creditline/><creditgrade/><creditdate/><offergrade/><offerrate/></department>…………</ufinterface>EAI中所有的标准数据文件都有类似于上例的结构,首先,有一个名为ufinterface的元素,ufinterface再有若干个子元素组成,不同应用的子元素有不同的格式。
用友开发,用友二次开发U8二次开发规范。

U8二次开发规范摘要目前U8产品越来越庞大,提供的应用与服务也越来越多样化。
公司整体的发展战略要求U8要成为一个能支持规模化交付的产品。
为了达到这样的目标,仅仅通过我们的水平产品是无法满足客户的行业化、个性化的要求的。
所以二次开发就成为一个能满足可以要求的填充剂,填补水平产品与客户的需求中的差异的空隙。
什么是二次开发?二次开发是与一次开发是相对应的,所以凡是由U8产品开发部提供的U8产品、套件以外的都应属于二次开发的产品。
从这个定义出发以下行为属于开发开发范畴。
⏹分公司、大区的基于U8的开发行为。
⏹第三方合作伙伴的基于U8的开发行为。
⏹行业开发本部基于U8产品的开发行为。
主要的开发模式。
1.独立开发模式,独立于产品●模式描述:在开发过程中基本不利用U8产品的构件(只利用登录构件),开发成果形成单独的可执行文件及动态库,模块不需要与U8门户程序集成,二次开发模块的权限设置、功能升级、部署均独立于产品。
●优点:对产品的影响小,产品可升级性强,不受产品功能制约。
模块功能灵活度大,能够实现很复杂的功能。
●缺点:二次开发的模块产品风格与U8 产品风格差距较大,产品中一些很完善的功能(权限、打印、格式设置、输出等)不能被二次开发利用,打印、输出等基础功能需要重新开发,开发效率低。
●注意问题:如果使用了U8登录构件,在产品升级后,应测试登录构件是否向下兼容,如果不兼容要根据新版登录构件的使用文档对二次开发程序的登录部分作修改。
●禁止行为:为最大限度的保证产品的可升级性,禁止直接修改产品的系统数据表、视图、存储过程等数据库对象。
●适用需求:与产品关联度小,二次开发的功能与产品相对独立,属单独的功能需求,不影响产品的业务流程,但允许由产品中取数。
例如:在U8产品的基础上增加提成管理系统。
2.通过产品插件接口开发模式●模式描述:此模式的开发是利用产品开放的插件接口对原产品模块做功能扩展。
开发成果形成单独的动态链接库,模块功能不能单独使用,一般由产品模块通过插件接口依据插件注册信息自动调用。
用友U870二次开发手册篇

用友U8开发一月通用友U8平台技术部ERP事业部产品市场推广部2007年1月总策划:郉艳凯主编:张劲涛、李正、侯关士撰稿:陈鸿远、鞠进步、唐丰、胡景峰、郑芸、郑子阳、王振骞、陈文海、罗文印、吴小山、李东、蔡再安、廖年兵、蒋志全审校:姜炜、胡春钰、魏勇、阚宇鸣谢衷心感谢U8产品本部邓适宜总经理为本书所做的指导和点评衷心感谢ERP事业部向奇汉副总裁为本书的传播所给予的关注衷心感谢U8平台技术部、U8总体设计部、U8供应链开发部、U8财务开发部、U8行业开发部、ERP事业部产品市场推广部在本书的写作推广过程中给予的大力支持和帮助目录目录 (3)开篇导读 (9)第一篇:U8开发模式介绍 (10)第一节 U8开发模式 (10)第二节 U8二次开发模式 (10)2.1 U8二次开发 (10)2.2 UAP开发 (10)第二篇:U8二次开发 (11)第一节:应用程序框架简介 (11)第二节:门户开发与集成 (11)一、功能概述 (11)二、名词解释 (11)2.1菜单调整工具 (11)2.2 idt.dll文件 (11)三、如何开发可与门户集成的VB dll (12)3.1代码修改 (12)3.2常见问题 (16)3.3参考 (16)3.4挂接菜单 (18)四、如何开发可与门户集成的.NET User Control (18)4.1通过建立一个项目类型为类库的项目 (18)4.2 实现接口IUserControl (19)4.3 编译该控件输出DLL (21)4.4 替换文件 (21)3.5示例源程序代码 (21)五、可执行文件(EXE)如何挂接到门户 (22)六、UAP表单和UAP列表如何挂接到门户 (23)七、如何不使用菜单调整工具增加和修改菜单 (25)7.1 相关表结构 (25)7.2各种程序类型的增加方法 (26)八、应用习题 (28)第三节:界面设计与开发 (28)3.1 档案开发 (28)功能介绍: (28)使用环境: (29)使用说明: (29)应用案例: (29)应用技巧: (29)应用习题: (29)相关控件:参照/列表/MDIExtend (29)3.2 单据开发 (29)功能介绍: (29)使用环境: (30)使用说明: (30)应用案例: (39)应用技巧: (41)应用习题: (41)3.3 打印控件 (41)功能介绍: (41)使用环境: (42)使用说明: (42)应用案例: (54)应用技巧: (54)应用习题: (55)3.4 凭证开发 (55)功能介绍: (55)使用环境: (55)使用说明: (56)应用案例: (59)应用技巧: (61)应用习题: (61)相关控件:凭证控件 (62)第四节:业务功能开发 (62)4.1 加密控制 (62)功能介绍: (62)使用环境: (62)使用说明: (62)应用案例: (66)应用习题: (67)4.2 功能权限控制 (67)功能介绍: (67)使用环境: (67)使用说明: (67)应用案例: (73)应用技巧: (74)应用习题: (74)4.3 数据权限控制 (75)功能介绍: (75)使用环境: (75)使用说明: (75)应用案例: (83)应用技巧: (84)应用习题: (84)第五节API应用 (84)5.1 库存部分 (84)功能介绍: (84)使用环境: (84)使用说明: (85)应用案例: (86)应用技巧: (88)应用习题: (88)5.2 采购部分 (88)功能介绍: (88)使用环境: (88)使用说明: (89)应用案例: (97)应用技巧: (98)应用习题: (98)5.3 销售部分 (98)功能介绍: (98)使用环境: (99)使用说明: (99)应用案例: (101)应用技巧: (103)应用习题: (103)第六节EAI开发 (103)第一节 EAI功能介绍: (103)第二节 EAI二次开发模式: (103)第三节导入导出数据格式标准: (105)第四节支持哪些基础档案和业务单据的的导入导出 (108)第五节凭证的导入 (112)第七节工作流 (113)功能介绍: (113)使用过程: (113)开发帮助 (113)第八节插件式开发 (143)功能介绍: (143)使用环境: (143)使用说明: (144)应用案例: (144)应用技巧: (144)应用习题: (144)第三篇:UAP应用开发 (145)第一节:UAP功能介绍 (145)第二节:UAP安装与卸载 (146)第三节:UAP应用环境及流程 (146)第四节:项目定义 (146)4.1 使用项目 (146)4.2 项目的导入导出 (147)4.3 任务管理 (148)第五节:表单管理 (148)5.1 应用开发 (148)5.1.1 UAP表单模型 (148)5.1.2 表单结构设计 (149)5.1.3 布局视图设计 (154)5.2 表单二次开发接口 (157)功能介绍: (157)使用环境: (158)使用说明: (158)应用案例: (171)应用技巧: (176)应用习题: (176)5.3 列表二次开发接口 (177)功能介绍: (177)使用环境: (177)使用说明: (177)应用案例: (181)应用习题: (181)5.4 后台服务二次开发 (181)功能介绍: (181)使用环境: (182)使用说明: (182)应用案例: (184)应用技巧: (185)应用习题: (186)第六节:报表管理 (186)6.1报表概述 (186)6.2 使用报表 (187)使用说明: (187)应用习题: (190)6.3 报表二次开发接口 (190)使用说明: (190)应用习题: (197)第七节:单据转换规则 (197)功能介绍: (197)使用环境: (197)使用说明: (197)应用技巧: (199)第八节:产品发布 (199)UAP项目发布 (199)功能介绍: (199)使用环境: (200)使用说明: (200)二次开发DLL部署 (201)使用环境: (201)使用说明: (201)应用案例: (202)应用技巧: (203)应用习题: (203)第九节:其它功能介绍 (203)1、参照 (203)参照设计器 (203)参照组件 (213)2、菜单设计器 (239)3、应用角色 (239)功能介绍: (239)使用说明: (240)4、数据引擎定义工具 (240)功能介绍: (240)使用说明: (241)备注: (263)应用技巧: (263)应用习题: (263)5、商业敏感数据工具 (264)功能介绍: (264)使用说明: (264)应用技巧: (267)应用习题: (267)6、栏目设计器 (267)功能介绍: (267)使用说明: (267)应用技巧: (269)应用习题: (269)7、过滤设计器 (269)功能介绍: (269)使用说明: (269)应用技巧: (274)应用习题: (275)第四篇:开发技巧 (276)第一节:MSSQL2000脚本生成器 (276)功能介绍: (276)使用环境: (276)使用说明: (276)应用案例: (276)应用技巧: (276)应用习题: (276)第二节:单据模板预置工具 (277)功能介绍: (277)使用环境: (277)使用说明: (277)应用案例: (277)应用技巧: (277)应用习题: (277)第三节:年结易用性工具 (277)功能介绍: (277)使用环境: (277)使用说明: (278)应用案例: (278)应用技巧: (278)应用习题: (278)第五篇:习题解答 (279)开篇导读今天,企业种类多样,业务流程更加复杂,ERP包含的功能越来越多,长期以来,ERP 厂商一直都在努力,试图开发一个能满足各种企业的各种业务的ERP系统,但是,客户的业务流程总是会变,客户的需求总是层出不穷,变化的速度远远超过了ERP厂商推出新版本或开发新产品的速度,ERP厂商疲于奔命,即使使尽浑身解数也吃力不讨好。
U8二次开发参考手册(审批流)

U8⼆次开发参考⼿册(审批流)U871 审批流帮助⽂档⽂档控制修改记录审阅⼈存档⽬录1⼯作流系统框架与运⾏原理 (3)1.1⼯作流基本概念 (3)1.2U8⼯作流系统结构 (3)1.2.1U8⼯作流系统部署 (3)1.2.2⼯作流系统中各模块交互 (4)2实施帮助 (5)2.1阅读对象 (5)2.2实施环境 (5)2.3实施流程 (5)2.3.1单据准备与数据表准备 (5)2.3.2业务对象配置(UAP数据引擎配置) (5)2.3.3审批业务对象设定 (11)2.3.4审批流程图配置 (18)2.3.4.1 审核节点设置 (18)2.3.4.2 流程发起事件设置 (21)2.3.4.3 多级审批条件设置 (23)2.3.4.4 备注 (25)3开发帮助 (25)3.1阅读对象 (25)3.2开发环境 (25)3.3开发准备 (25)3.4开发流程 (26)3.4.1审批流程——提交 (26)3.4.2审批流程——撤销 (31)3.4.3审批流程——审批 (34)1 ⼯作流系统框架与运⾏原理1.1 ⼯作流基本概念⼯作流系统是以规格化的流程描述作为输⼊的软件组件,它维护流程的运⾏状态,并在⼈和应⽤之间分派活动。
流程定义(process definition)和流程实例(process instance). ⼀个流程定义是⼀个业务流程或过程的规格化描述。
⼀个流程实例是流程定义的⼀个运⾏实体。
1.2 U8⼯作流系统结构1.2.1U8⼯作流系统部署⼀个U8⼯作流系统服务于⼀个U8应⽤服务器上关联的多个年度帐套;U8⼯作流系统包含⼀个MOM服务器和⼀个或者多个⼯作流引擎。
默认情况下,应⽤服务器、MOM服务器均安装在U8应⽤服务器上。
⽤户可根据实际需要,在引擎服务器上部署新的⼯作流引擎,并将其加⼊到已有的⼯作流运⾏环境中。
U8客户端需要部署⼯作流管理控制台、流程设计器、审批管理中⼼、审批功能客户端接⼝和业务部门开发的、参与⼯作流系统的业务部件。
U8二次开发基础篇ppt课件

ScaleWidth
= 4680
StartUpPosition = 3 '窗口缺省
Begin mandButton cmdCreateXML
Caption
= "CreateXml"
Height
= 495
Left
= 1680
TabIndex
=1
Top
= 1920
Width
= 1455
End
21
SQL变量赋值尽量不要拼很多的串
20
SQL应用讲解
效率问题 索引失效 减少前后台交互次数
没有必要的数据不要取到前台 避免客户端海量运算
减少IN的使用比较字段数据类型转换或运算 避免使用Unio比n 较字段内容少于组合索引内容 脚本中尽量避对免使Nu用ll值游标进(行尤比其较不能游标嵌套) 存储过程功能比清晰较,字减段少表业内务内分容支比查较询一,降致低,预系编统译没时有间建立索引 关键业务字段使使用用索“引<>处”理来进行索引字段比较 多整使理用数整据形表数碎使索据片判,引用断提表“,升不IN避索”连免引来续布效进,尔率行跨值条页判件检断处索理
As IXMLDOMCEalseemen1t
Print “Value Is 1”
Do Code
End Select
End Sub
Private Sub Test()
Msgbox “This is a test sub”
Private Sub AnotherSub Next
5
VB应用讲解(规范)
降低断行标示“_”的使用频度,脚本换行增加换行标示
Seett @@SQQLL== 'Select A.VouchCode, A.VouchName, B.Code, '+ 'FFrroommAA' + 'LLeeffttJJooiinnBBOONNAA..IIDD==BB..IIDD' + 'IINNNNEERRJJooiinnCCOONNAA..IIDD==ooddee==ooddee'+ 'WWhheerreeAA..VVoouuDDaatteeBBeettwweeeenn '''22001100--55--11''' And ''2010-5-31'''
U8UAP开发手册簿

UAP开发样例指导用友研发中心 U8平台技术部<本文档适用于U871版本>目录一、摘要 (3)二、样例开发前提 (3)三、建立UAP项目 (3)四、建立表单模型 (5)(一) 新建实体 (6)(二) 新建实体属性 (8)五、建立表单布局 (14)六、行为对象开发 (15)(一) 表单开发 (17)(二) 列表开发 (29)(三) 生单二次开发 (35)(四) 联查报表 (37)(五) 联查UAP列表 (38)(六) UAP列表联查U8单据 (38)(七) 用户自定义控件开发 (42)(八) U8单据引用UAP档案 (43)七、行为对象注册 (56)功能介绍: (56)使用说明: (56)应用技巧: (58)八、建立数据引擎 (59)功能介绍: (59)使用说明: (60)应用技巧: (82)九、设置过滤条件 (82)功能介绍: (82)使用说明: (82)应用技巧: (87)十、设置栏目 (88)功能介绍 (88)使用说明 (88)应用技巧 (89)十一、权限 (89)功能权限 (89)记录级权限 (90)字段级权限 (91)十二、部署 (92)附录:功能介绍 (93)1、行为对象升级说明 (93)2、LoginInfo 对象介绍 (95)一、摘要本文以U8-ERP中的销售订单为应用原型,介绍了如何通过UAP进行软件开发,文中给出了开发方法和丰富样例。
内容包括:UAP表单开发原理UAP项目的建立和导入、导出UAP表单的模型设计和布局设计UAP表单的行为对象开发UAP表单列表设计与开发UAP表单列表的行为对象开发如何对UAP表单的缺省按钮进行扩展性开发如何对UAP表单的缺省按钮进行取代性开发如何为UAP表单增加新的按钮及行为如何用程序代码调用UAP报表如何用程序代码调用UAP表单列表如何在UAP表单中增加权限控制:功能权限、字段权限、记录权限如何为UAP表单开发自定义控件如何开发树形档案如何维护UAP数据引擎如何维护栏目如何维护过滤条件如何调用U8APIU8单据自定义项如何引用UAP档案本文档中使用的示例文件为“销售订单二次开发”,可以通过UAP将该文件导入到帐套中。
U8UAP开发手册

U8U A P开发手册(总43页) -CAL-FENGHAI.-(YICAI)-Company One1-CAL-本页仅作为文档封面,使用请直接删除UAP开发样例指导用友研发中心 U8平台技术部<本文档适用于U871版本>目录一、摘要............................................. 错误!未指定书签。
二、样例开发前提..................................... 错误!未指定书签。
三、建立UAP项目..................................... 错误!未指定书签。
四、建立表单模型..................................... 错误!未指定书签。
(一) 新建实体....................................... 错误!未指定书签。
(二) 新建实体属性................................... 错误!未指定书签。
五、建立表单布局..................................... 错误!未指定书签。
六、行为对象开发..................................... 错误!未指定书签。
(一) 表单开发....................................... 错误!未指定书签。
(二) 列表开发....................................... 错误!未指定书签。
(三) 生单二次开发................................... 错误!未指定书签。
(四) 联查报表....................................... 错误!未指定书签。
(五) 联查UAP列表................................... 错误!未指定书签。
U8DRP二次开发工具使用手册

二次开发工具使用手册及编程规范1、建立新工程在建立二次开发工程前需要先保证你已安装分销相应的版本。
在安装目录下有一个配置文件“Setting.Config”,此文件中描述的是二次开发工程信息。
其各节点的描述如下:Number:版本号。
如果是二次开发请设置版本号为20致30的任一数字,如果是行业或模块开发请咨询总部让其为你的系统安排一个版本号。
Name:本版本的名称ServerName:DB服务器安装的数据库实例名。
如db1\sql9DataBaseName:模板所在的数据库名UserName:数据库用户名,请使用samplePassword:数据库用户名,请使用sampleType:类型,可以随便输入,对系统没有影响。
登录时的系统管理员的用户名和口令都是qz。
【注意】版本号(Number),不能是0或1。
不同的工程需要建立在不同的数据库实例上。
2、单据和档案的定义流程定义单据和档案的流程。
新增单据列表的流程修改系统单据和档案的流程主要可以作以下修改3、单据、档案相关帮助及规范数据字典【菜单路径】操作-数据字典管理【操作流程】1、点菜单"操作",显示数据字典列表,功能按钮有"增加"、"编辑"、"删除"、"刷新"、"退出"。
2、在列表界面上点"增加"按钮(在数据字典结构树上主结点单击右键)在弹出的窗口中输入表名,描述,是否是后台视图。
在窗口表体中可以进行"增行"、"删行"操作,对字段行操作。
编辑完毕,点"保存"。
3、导入表新增表时,点"导入",在弹出的窗口中输入账套名,表名,系统将会自动将该表加入数据字典。
4、双击列表,点"编辑"按钮(双击数据字典结构树的结点),在弹出窗口中修改相应信息。
U8UAP开发手册

UAP开发样例指导用友研发中心U8平台技术部<本文档适用于U871版本>目录一、摘要 (3)二、样例开发前提 (3)三、建立UAP项目 (3)四、建立表单模型 (5)(一)新建实体 (6)(二)新建实体属性 (8)五、建立表单布局 (14)六、行为对象开发 (15)(一)表单开发 (17)(二)列表开发 (30)(三)生单二次开发 (36)(四)联查报表 (37)(五)联查UAP列表 (38)(六)UAP列表联查U8单据 (39)(七)用户自定义控件开发 (42)(八)U8单据引用UAP档案 (43)七、行为对象注册 (56)功能介绍: (56)使用说明: (56)应用技巧: (58)八、建立数据引擎 (59)功能介绍: (59)使用说明: (60)应用技巧: (82)九、设置过滤条件 (82)功能介绍: (82)使用说明: (82)应用技巧: (87)十、设置栏目 (88)功能介绍 (88)使用说明 (88)应用技巧 (89)十一、权限 (89)功能权限 (89)记录级权限 (90)字段级权限 (91)十二、部署 (92)附录:功能介绍 (93)1、行为对象升级说明 (93)2、LoginInfo 对象介绍 (95)一、摘要本文以U8-ERP中的销售订单为应用原型,介绍了如何通过UAP进行软件开发,文中给出了开发方法和丰富样例。
内容包括:UAP表单开发原理UAP项目的建立和导入、导出UAP表单的模型设计和布局设计UAP表单的行为对象开发UAP表单列表设计与开发UAP表单列表的行为对象开发如何对UAP表单的缺省按钮进行扩展性开发如何对UAP表单的缺省按钮进行取代性开发如何为UAP表单增加新的按钮及行为如何用程序代码调用UAP报表如何用程序代码调用UAP表单列表如何在UAP表单中增加权限控制:功能权限、字段权限、记录权限如何为UAP表单开发自定义控件如何开发树形档案如何维护UAP数据引擎如何维护栏目如何维护过滤条件如何调用U8APIU8单据自定义项如何引用UAP档案本文档中使用的示例文件为“销售订单二次开发”,可以通过UAP将该文件导入到帐套中。
U8数据库开发规范-二次开发

U8二次开发数据库开发规范一、数据库命名规则1.表、视图、存储过程、用户定义的函数、索引✧前缀尽量大写;✧使用英文命名;✧尽量用完整的词,单词的第一个字母大写;对象的名称应尽量表明具体使用的含义下表XX 代表对象内容。
2.表、视图等字段命名表、视图中字段都用英文命名,一般字段命名规则如下:✧数据类型的简写为小写字母前缀;✧后面是该字段的名称描述,应尽量表明字段含义、使用完整单词;如果名称描述多个单词组成,每个单词的第一个字母都大写✧具有特殊含义的后缀结尾。
例:iMaxInCost(存货总账-最小入库成本单价)| |_____________ 含义,;单词第一个字母大写|_________________ 数据类型是浮点数(目前大多数使用Decimal)数据类型规范:特殊字段,特殊含义字段命名规范注:以前有些不是按以上规则设计的,今后再添加的请按这些规则添加。
●数据类型的选用尽可能使用变长类型(除非数据列长度的确是固定的)。
变长类型只存储列中实际含有的内,检索需要扫描的页会减少。
创建字符类型字段请使用UNICODE数据类型字段,使用nvarchar、nchar、ntext替换varchar、char、text类型,在插入和查询时候使用N’’。
二、数据库语言规范1.触发器规范由于数据表触发器容易产生很多数据库问题,一般情况下禁止使用触发器。
请使用系统API的前后事件进行代码编程。
2.视图规范●不能在视图上创建视图,视图不能产生视图;●禁止通过视图修改数据;●禁止修改系统视图;●用注释说明视图的作用;●应尽量使用SQL Server 的视图生成器产生视图;●视图中不要有ORDER BY 排序语句;●视图中不要使用UNION联合视图;●禁止使用“Select * from ……”,“Select T.* ……”等语句;●注意缩进,格式清楚;●所有关键字要大写;●字段逗号,运算符等操作符之间有空格相隔;例子:CREATE VIEW[dbo].[V_IA_rdrecords32]/*销售出库单未记账单据*/ASSELECT Rdrecord.bRdFlag,rdrecord.CBusType,Rdrecord.cBusCode,ode AS cVouCode,rdrecords.AutoID AS ID,Rdrecords.iquantity,rdrecords.iunitcost,rdrecords.iprice,Rdrecords.cVouchCode AS cBatchCode,Rdrecords.cbaccounter AS cAccounter,rdrecord.cMaker,CAST(NULL AS TINYINT)AS bFlag,CAST(NULL AS BIT)AS bMoneyFlag,(CASE WHEN rdrecord.cVouchType=N'32'THEN1ELSE0END)as bSale,rdrecord.cDefine1,rdrecord.cDefine2,rdrecord.cDefine3,rdrecord.cDefine4, ..........................................................FROM rdrecords32Rdrecords INNER JOIN rdrecord32rdrecord ON rdrecords.id=rdrecord.id and isnull(rdrecords.cbaccounter,'')=''LEFT JOIN WareHouse ON WareHouse.cWhcode=rdrecord.cWhCodeLEFT JOIN SO_SODetails ON rdrecords.iorderdid=SO_SODetails.isosid And rdrecords.iordertype=1--销售订单LEFT JOIN SO_SOMain ON so_sodetails.id=so_somain.id ..................................................................................3.存储过程规范●编写存储过程原则✧将每个存储过程完成一项单独的任务;✧存储过程可以调用存储过程;✧存储过程可以调用自定义函数;✧存储过程中禁止使用全局性质的临时表;●代码书写规范✧在创建存储过程的开始处应有注释,说明该存储过程的功能,存储过程的输入、输出参数的含义。
U8门户开发手册(DOC)

U8门户开发⼿册(DOC)U8门户开发⼿册1. 功能概述如何使伙伴⼆次开发的程序很好地和U8产品集成在⼀起?需要满⾜什么条件的程序才能和门户集成?如何开发⼀个满⾜这个条件的程序?本⽂将为您解答这些问题。
2. 名词解释2.1菜单调整⼯具功能:调整菜单位置;新增、修改、删除菜单(除U8系统菜单外)。
菜单调整⼯具在UAP中,通过菜单“⼯具->菜单调整⼯具”进⼊。
2.2 idt.dll⽂件位置:在U8安装⽬录的Portal⽬录⾥。
该⽂件其实是⼀个xml⽂件,可以⽤任何⽂本编辑器打开。
其内容描述了双击每个末级菜单项⽬时需要调⽤的物理程序。
在872版本⾥,idt.dll并不在安装盘⾥,⽽是U8门户第⼀次运⾏时通过UFSystem..UA_IDT表⾥的内容动态⽣成的。
当UFSystem..UA_IDT有变化时,U8门户会重新⽣成idt.dll⽂件。
有了这种机制后,菜单调整⼯具就可以通过维护UFSystem..UA_IDT⾥的内容,从⽽达到维护idt.dll的⽬的。
3. 如何开发可与门户集成的VB dll3.1代码修改3.1.1引⽤⼯程UFPortalProxyInterface⽂件位置:U8安装路径\Portal\UFPortalProxyInterface.dll3.1.2相关代码修改clsProductFacade⽂件为门户的⼊⼝⽂件,即在idt.dll⽂件后assembly项所对应的类名。
如下所描述的:⾸先,idt.dll中assembly属性描述的对应类要实现接⼝ILoginalbe。
⽐如idt.dll中描述了如下信息:则要在clsProductFacade中实现ILoginable接⼝。
即⽤代码:Implements UFPortalProxyInterface.ILoginable然后在该接⼝的实现函数中转发调⽤原先⼯程中的Login,CallFunction,Logoff三个⽅法,具体参见后附的例⼦。
用友U8UAP二次开发

用友软件股份有限公司 侯关士 hgs@ 2008年 10月 26日
总体课程安排
Unit Unit Unit Unit Unit Unit Unit Unit 1 2 3 4 5 6 7 8 概述 支持附件 支持工作流审批 运行时布局视图定制 UAP生单规则 其他新增功能 案例演示 总结
前提是U8单据的单据模板已经转换成了UAP单据元数据 872版本已经转换了三十多个U8单据
可以设置比较字段
只有比较字段的值相同的源单据才能转换到同一张目标单据上 例如只有客户相同的销售订单才能生成到一个发货单上 如果要实现单到单生单可以把单据编号设置为比较字段
Unit5 UAP生单规则 2of3
支持转换公式
模式二
附件数量不可预期
单独为附件创建一个实体,作为内容实体的子实体,附件实体可以增行,这样内
容实体的一行记录可以有任意多个附件。
Unit3 UAP表单支持工作流审批
UAP发布单据时, 自动把单据元数据发 布到工作流设计器中, 建立审批业务对象 在工作流设计器中为UAP单 据设计审批流程,设计方法和 U8已有 的单据一样 UAP已经预置了通用的审批插件和终审服务程序。 用户也可以参考工作流开发规范,开发自己的审批 插件和终审服务,来满足个性化的审批要求
从源字段到目标字段可以实现复杂的逻辑运算转换
支持中间实体
中间实体存储转换的中间结果 如果源单据到目标单据的转换过于复杂,不能够一步到位,可以 使用中间实体。
支持映射和汇总两种转换方式
映射:是简单的源字段到目标字段的对照 汇总:可以支持聚合、最值、均值、SUM等操作。
钩稽字段设置
对于数值型的源字段,可以约束总的转换量不能超过源字段的量。 如按单生产的情况下,多次下达生产的产量不能超过源订单的订 购量。订购量要设置为钩稽字段。
用友U8UAP二次开发

订货会订单生成销售订单
在U8门户中定制 订货会订单 的格式
Unit 8 总结----C.I.O.特性
Complete(完整)---完整表单解决方案
增、删、改、查、打、存、审 单据和档案 单据编号 多子表 附件、多行文本 生单 运行时定制
Integration(集成)
与U8紧密集成门户 工作流 权限 数据库(1、U8数据库 2、数据库技术隔离) 安装与部署
U872产品培训 --UAP表单
用友软件股份有限公司 侯关士 hgs@ 2008年 10月 26日
总体课程安排
Unit Unit Unit Unit Unit Unit Unit Unit 1 2 3 4 5 6 7 8 概述 支持附件 支持工作流审批 运行时布局视图定制 UAP生单规则 其他新增功能 案例演示 总结
Unit6 其他
数据结转
可以选择结转时是否复制数据(如基础档案的数据) 可以设置复制数据的条件(结转哪些数据,如单据的数据) 提供sql脚本导出工具,用于部署
表单脚本导出 基础资料返回值和显示值分离
用于保存值不易让用户理解的情况,如保存档案的主键值,显示时向用户显示名 称
引用的档案数据不允许删除
前提是U8单据的单据模板已经转换成了UAP单据元数据 872版本已经转换了三十多个U8单据
可以设置比较字段
只有比较字段的值相同的源单据才能转换到同一张目标单据上 例如只有客户相同的销售订单才能生成到一个发货单上 如果要实现单到单生单可以把单据编号设置为比较字段
Unit5 UAP生单规则 2of3
支持转换公式
从源字段到目标字段可以实现复杂的逻辑运算转换
பைடு நூலகம்
支持中间实体
U8二次开发教程

U8二次开发教程背景目前U8产品越来越庞大,提供的应用与服务也越来越多样化。
公司整体的发展战略要求U8要成为一个能支持规模化交付的产品。
为了达到这样的目标,仅仅通过我们的水平产品是无法满足客户的行业化、个性化的要求的。
所以二次开发就成为一个能满足可以要求的填充剂,填补水平产品与客户的需求中的差异的空隙。
二次开发定义及范畴二次开发是与一次开发是相对应的,所以凡是由U8产品开发部提供的U8产品、套件以外的都应属于二次开发的产品。
从这个定义出发以下行为属于开发开发范畴。
⏹分公司、大区的基于U8的开发行为。
⏹第三方合作伙伴的基于U8的开发行为。
⏹行业开发本部基于U8产品的开发行为。
二次开发模式分析目前我们的二次开发处于缺乏管理状态。
由于U8软件缺乏足够的开发性,导致二次开发人员能利用的手段和方法非常有限。
同时由于U8每年都需要年结,造成二次开发的数据需要手工结转。
甚至有些是利用原代码进行的修改,这种方式会因为版本升级而造成功能实效。
以下列出了主要的开发模式。
1.独立开发模式,独立于产品●模式描述:在开发过程中基本不利用U8产品的构件(只利用登录构件),开发成果形成单独的可执行文件及动态库,模块不需要与U8门户程序集成,二次开发模块的权限设置、功能升级、部署均独立于产品。
●优点:对产品的影响小,产品可升级性强,不受产品功能制约。
模块功能灵活度大,能够实现很复杂的功能。
●缺点:二次开发的模块产品风格与U8 产品风格差距较大,产品中一些很完善的功能(权限、打印、格式设置、输出等)不能被二次开发利用,打印、输出等基础功能需要重新开发,开发效率低。
●注意问题:如果使用了U8登录构件,在产品升级后,应测试登录构件是否向下兼容,如果不兼容要根据新版登录构件的使用文档对二次开发程序的登录部分作修改。
●禁止行为:为最大限度的保证产品的可升级性,禁止直接修改产品的系统数据表、视图、存储过程等数据库对象。
●适用需求:与产品关联度小,二次开发的功能与产品相对独立,属单独的功能需求,不影响产品的业务流程,但允许由产品中取数。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
U8界面按钮二次开发手册
适用范围
U8ToolBar原则上都可以支持二次开发行为,但由于某些界面没有这方面的需求,所以并没有支持二次开发功能
如何检查是否支持二次开发
在一个界面上同时按住Ctrl+Shift并点击任何一个按钮,这样你所需要的信息将被Copy 到写字板(附件中的写字板)上,(注意不是记事本notepad)。
数据预置
数据预置在Meta库中的Meta数据库,表AA_CustomerButton中。
说明:
销售订单的数据预置脚本
销售订单的保存按钮后面增加一个按钮的脚本
INSERT INTO [AA_CustomerButton]([cButtonID], [cButtonKey], [cButtonType], [cProjectNO], [cFormKey], [cVoucherKey], [cKeyBefore], [iOrder], [cGroup], [cCustomerObjectName], [cCaption], [cLocaleID], [cImage], [cToolTip], [cHotKey], [bInneralCommand], [cVariant], [cVisibleAsKey], [cEnableAsKey])
VALUES(newid(), 'btntest','default', 'U8CustDef',
'17', '17','save', '0', 'IEDIT','','测试',
'zh-cn','','测试','Ctrl+N',1,'测试数据','save','save')
注意:类需要注册,否则会报Activex不能创建对象。
直接替换销售订单的保存按钮按钮的脚本
INSERT INTO [AA_CustomerButton]([cButtonID], [cButtonKey], [cButtonType], [cProjectNO], [cFormKey], [cVoucherKey], [cKeyBefore], [iOrder], [cGroup], [cCustomerObjectName], [cCaption], [cLocaleID], [cImage], [cToolTip], [cHotKey], [bInneralCommand], [cVariant], [cVisibleAsKey], [cEnableAsKey])
VALUES(newid(), 'btntest2','system', 'U8CustDef',
'17', '17','save', '0', 'IEDIT','','测试',
'zh-cn','','测试','Ctrl+N',1,'测试数据','save','save')
注意:类需要注册,否则会报Activex不能创建对象。
需要将"”注册成COM组件
方法[如果是C#开发的话]:cmd下输入以下内容:
"C:\Windows\\Framework\ "你的DLL程序集名称"
组件接口
新建一个VB类,并写入以下方法即可
‘执行按钮,objVoucher为单据或列表对象
‘VarentValue为在表中预置的cVariant的值。
Public Function RunCommand(ByVal objLogin As Object, ByVal objForm As Object, ByVal objVoucher As Object, _
ByVal sKey As String, ByVal VarentValue As Variant, ByVal other As String)
End Function
‘初始化
Public Function Init(ByVal objLogin As Object, ByVal objForm As Object, ByVal objVoucher As Object, msbar As Object)
End Function
‘在执行系统按钮只前调用,Cancel后会不再执行系统方法。
Public Function BeforeRunSysCommand(ByVal objLogin As Object, ByVal objForm As Object, ByVal objVoucher As Object, _
ByVal sKey As String, ByVal VarentValue As Variant, ByRef Cancel As Boolean, ByVal other As String)
Cancel = False
End Function。