U8二次开发-基础篇
用友U8UAP二次开发
872版本新增加的功能
UAP表单支持附件 UAP单据支持工作流审批
UAP表单运行时布局视图定制
UAP生单规则(拉式) 其他新增特性
Unit 2 UAP表单支持附件
增加一种实体属性类型:附件
在应用上有两种模式:
模式一 附件数量可以预期
附件和内容在同一个实体里,一个附件类型字段只能上传一个附件,但是一个实 体里可以有多个附件。
向表AA_ProcedureDic和AA_TableDic_Lang预置数据
小数位数支持系统参数 栏目标题支持 自定义项/自由项 标题
Unit 7 演示案例
U872中UAP开发的功能 U872中UAP演示项目
项目文件在:
\U8SOFT\UAP\sdk\samplefile
用UAP项目导入功能导入后即可使用
订货会业务的功能unit7演示案例?参加订货会的样品商品存货管理重点是新品订货会档案管理不同时间不同地点要举办多个订货会订货会订单管理收集订货会上客户的订购意向订货会的核心单据样品起订量检查确定哪些样品可以批量生产起订量从成本企业战略综合考虑后设置确认有效的订货会订单转销售订单执行后续销售流程相关报表样品订购排名表客户订货汇总表等等?????unit7演示案例演示内容订货会档案订货会订单维护附件订货会订单依据的文档作为附件管理起来订货会订单流程审批订货会订单上需要有审核人审核日期审核时间字段订货会订单生成销售订单设置销售订单的uap生单记录id?设置销售订单的uap生单记录id模拟输入设置只有可编辑项才支持所以要求源单据上有对应值如销售订单上客户简称是可输入的在订货会订单上要有客户简称信息?勾稽检查订货数量在u8门户中定制订货会订单的格式选择列?调整列位置?恢复默认功能?格式设计布局格式调整和新增布局视图????unit8总结cio
浅析与用友U8财务系统二次开发实现信息共享
浅析与用友U8财务系统二次开发实现信息共享摘要在用友U8财务系统的应用过程中,需要与企业原有信息化系统进行有效连接,通过系统二次开发实现信息共享。
本文首先对用友U8财务系统二次开发设计需求进行分析,进而探讨系统功能设计方案与信息共享的实现,主要包括系统结构设计、主要功能的设计与实现、信息共享的实现与应用等。
关键词用友U8财务系统;二次开发;信息共享前言用友U8财务系统是目前国内使用较为广泛的企业级财务信息管理系统,其自身功能较为完善,可以为企业财务管理中的会计科目管理、成本管理和客户管理等提供支持。
但在应用过程中,需要实现与企业信息系统的对接,确保系统之间的数据共享和数据交换,让用友U8财务系统在独立运行的同时,充分满足企业财务管理的各方面需求,实现系统应用效益最大化。
1 用友U8财务系统二次开发需求分析为协调用友U8财务系统与企业其他管理系统的关系,实现系统集成,在对用友U8财务系统进行二次开发时,主要应满足以下几方面需求:①确保不同系统之间的基础编码数据保持一致,包括科目、地区、客户、供应商、部门和人员编码等,从而实现系统之间的互联互通和有效的信息交换;②确保业务数据和财务数据的一致性,企业大型信息化管理系统主要包括办公室自动化系统、设备管理系统、客户关系管理系统和采购管理系统等,这些系统与用友U8财务系统在数据上要实现有效对接;③确保采购、库存、销售和成本核算等内容和流程与用友U8财务系统的一致性,实现系统功能集成,避免重复性建设,节约系统开发成本。
除上述要求外,还要保证系统之间的信息共享程度和信息安全,确保系统的运行效率、数据交换效率能够满足用户使用需求,避免對业务处理产生影响[1]。
2 系统功能设计与信息共享实现2.1 系统结构设计在系统结构设计方面,需要构建中间数据库,解决系统之间的数据交换问题。
具体应在用友U8财务系统数据库服务器上构建中间数据库,如果需要进行数据交换,各方使用者可以直接访问中间数据库,实现数据共享。
浅析与用友U8财务系统二次开发实现信息共享
查询 、 添加 、 修改 、 删除用户 信息 ; 以对用 户进 可
行重置密码操作 ; 对用户进行角色分配操作 。
4 . 角色管理 .2 4
查询 、 添加 、 修改 、 删除角色的一些基本信息 。 4 . 页面显示字段信息管理 .3 4
友 U8 务 系 统 财
图 2 系统间数据交换 图
43 成本管理 -
参 与成本 核算的会 计人员在成本核算完成之后 , 对产销一体化 系统 以及用友 u 财务 系统 的各 费用信 8
息进行对账 ,检验产销一体化系统与用友 1 J 8总账 费
用信息是 否相符 。
43 存货对账 .5 .
参 与成本 核算的会计人员在成本核算完成之后 ,
集凭证 , 并抛用友 U 财务系统 。 8
本核算需要 。在 此会调 用产销一体化系统检核程序 , 检查获取 的费用信息是否符合成本 核算需要 。 43 获取存货信息 .2 . 参与成本核算的会 计人员 可以从 总账用友 u 8系 统 中获取 当月原料存货数据 , 并转发到产销一体化 系
据与业 务数据分离 。对《 产销系统与用友财务系统集
成》 进行 功能划 分及功能设计 , 建立满 足天铁 鞍钢天
充分考虑 CS / 模式的特点 , 结合用户的需求设计 出
用友 u 财务系统的功能模块 ,主要包括档案管理 、 8 凭
铁冷轧薄板有 限公 司用友财务 u 系统对其他应用 系 8
图 1 与用友接 口系统 功能模块 图
42 凭 证 管 理 .
431 获取成本核算 费用信息 . .
凭 证管理 主要包括检 核凭证 、 查询凭 证 、 理凭 整
参与成本核算的会计人员 可以从 总账用友 U 8中
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'''
U8二次开发基础篇ppt课件
vValue = eItem.GetAttribute(sName)
足够If的IsNull(vVa声lue明) T参he数n ‘是判按断地该属性是否存在
讲演主题
VB应用讲解 XML应用讲解 SQL Sever应用讲解
SQL应用讲解
系统数据库和系统表
•Master master是数据库的最重要的数据库,联系着其他
的数据库,并记录着用户数据!相当于超级管理员的账户
•Model
模版数据库
•Msdb Sql内部使用,一般用于计划作业和数据库邮件
•tempdb 临时数据库
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
VB应用讲解(规范)
强制显式声明模块中的所有变量
Option Explicit
If A = B Then A=A+1
变量一定要在前面声明
End IF While A < 100
XML应用讲解
XML介绍
<?xml version = '1.0' encoding = 'gb2312' ?>
•Node 节点,类似于数组,有文本属性 •Element 元素,带属性的节点 •Attribute 属性,类似于集合,不可重复 •Text 文本,不具备任何扩展属性 •备注 <!--备注-- > •DocumentElement 根节点,Dom只可以有 一个根节点,该节点为Element属性
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数据库开发规范-二次开发
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财务系统二次开发实现与HIS信息共享
浅析用友U8财务系统二次开发实现与HIS信息共享概述随着信息化趋势的发展,医院信息化建设已经成为了当前的重头戏。
为了提高医院管理工作的效率,降低医疗错诊率以及提高医疗服务质量,各大医院也在建立自己的信息化平台。
其中医院信息系统(HIS)和财务系统是最为关键的两类系统之一。
本文将着重介绍用友U8财务系统的二次开发实现,以及如何与HIS实现信息共享,极大的提高医院的行政效率。
用友U8财务系统概述用友U8是一款非常知名的企业管理软件,其财务系统是其中最为重要的模块之一,主要解决企业内部财务管理、会计核算、税务管理、资金管理、预算管理等问题。
用友U8财务系统作为目前市场上领先的财务软件,具有以下的特点:1.功能丰富,能够满足企业内部大部分财务管理需求。
2.稳定可靠,极少出现系统故障和重大漏洞。
3.易于使用,运行稳定、响应速度快,并且具有丰富的帮助文档。
4.支持灵活的二次开发,支持企业根据自身业务需求进行系统定制开发,基于这些特点,用友U8财务系统在中国市场享有非常高的知名度和市场份额,得到广大企业和机构用户的青睐。
用友U8财务系统二次开发实现用友U8财务系统是以B/S模式进行设计的,即基于浏览器的三层体系结构,分为客户端、服务器及数据库三个层次。
根据实际业务需求的不同,用友U8财务系统还可以通过进行二次开发进行定制化设计,提高其系统可用性以及实现某些特殊业务功能。
二次开发实现有几种方式,比如通过、C#.NET等方式进行扩展开发。
下面介绍具体的二次开发实现流程:第一步:调用API开发用友U8财务系统提供了丰富的API,可以用于二次开发,比如增加新的菜单项、增加栏目、增加按钮等操作,因此可以通过API的调用来实现二次开发。
具体操作流程如下:1.首先需要重新定义一些类,要开发的项目中这些类通常都会使用到,含API帮助类、快速批量操作、中间业务维护等。
2.安装U8智能WEB开发工具,在运行开發模式之後进入开发界面,之后你就可以根据自己的需求进行二次开发了。
用友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等操作。
钩稽字段设置
对于数值型的源字段,可以约束总的转换量不能超过源字段的量。 如按单生产的情况下,多次下达生产的产量不能超过源订单的订 购量。订购量要设置为钩稽字段。
U8二开基础培训
Unit1 C/S 架构与B/S架构
C/S和B/S 之比较
C/S和B/S是当今世界开发模式技术架构的两大主流技术。C/S是美国 Borland公司最 早研发,B/S是美国微软公司研发。目前,这两项技术以被世界各国所掌握,国内公司 以C/S和B/S技术开发出产品也很多。这两种技术都有自己一定的市场份额和客户群。
(2)返回一组数据。例如一个记录集:DataSet等。
(3)返回记录指针DataReader。 (4)缓存参数列表。在执行一条语句时,可能有多个参数,为了提高速度,将参数缓存。 (5)读取缓存的参数。
Unit 2 示例演示
VS2005创建B/S用户登录实例
Unit 2 示例演示
B/S用户登录实例
C/S架构介绍
C/S (Client/Server)架构,即大家熟知的客户机和服务器结构。它是软件系统体系 结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server 端来实现,降低了系统的通讯开销。目前很多应用软件系统都是Client/Server形式的两 层结构,由于现在的软件应用系统正在向分布式的Web应用发展,Web和Client/Server 应用都可以进行同样的业务处理,应用不同的模块共享逻辑组件;因此,内部的和外 部的用户都可以访问新的和现有的应用系统,通过现有应用系统中的逻辑可以扩展出 新的应用系统。这也就是目前应用系统的发展方向。 传统的C/S体系结构虽然采用的是开放模式,在特定的应用中无论是Client端还是 Server端都还需要特定的软件支持。由于没能提供用户真正期望的开放环境,C/S结构 的软件需要针对不同的操作系统系统开发不同版本的软件, 加之产品的更新换代十分 快,已经很难适应百台电脑以上局域网用户同时使用。而且代价高, 效率低。 C/S代表性产品:U8-ERP
U8二次开发教程
U8二次开发教程背景目前U8产品越来越庞大,提供的应用与服务也越来越多样化。
公司整体的发展战略要求U8要成为一个能支持规模化交付的产品。
为了达到这样的目标,仅仅通过我们的水平产品是无法满足客户的行业化、个性化的要求的。
所以二次开发就成为一个能满足可以要求的填充剂,填补水平产品与客户的需求中的差异的空隙。
二次开发定义及范畴二次开发是与一次开发是相对应的,所以凡是由U8产品开发部提供的U8产品、套件以外的都应属于二次开发的产品。
从这个定义出发以下行为属于开发开发范畴。
⏹分公司、大区的基于U8的开发行为。
⏹第三方合作伙伴的基于U8的开发行为。
⏹行业开发本部基于U8产品的开发行为。
二次开发模式分析目前我们的二次开发处于缺乏管理状态。
由于U8软件缺乏足够的开发性,导致二次开发人员能利用的手段和方法非常有限。
同时由于U8每年都需要年结,造成二次开发的数据需要手工结转。
甚至有些是利用原代码进行的修改,这种方式会因为版本升级而造成功能实效。
以下列出了主要的开发模式。
1.独立开发模式,独立于产品●模式描述:在开发过程中基本不利用U8产品的构件(只利用登录构件),开发成果形成单独的可执行文件及动态库,模块不需要与U8门户程序集成,二次开发模块的权限设置、功能升级、部署均独立于产品。
●优点:对产品的影响小,产品可升级性强,不受产品功能制约。
模块功能灵活度大,能够实现很复杂的功能。
●缺点:二次开发的模块产品风格与U8 产品风格差距较大,产品中一些很完善的功能(权限、打印、格式设置、输出等)不能被二次开发利用,打印、输出等基础功能需要重新开发,开发效率低。
●注意问题:如果使用了U8登录构件,在产品升级后,应测试登录构件是否向下兼容,如果不兼容要根据新版登录构件的使用文档对二次开发程序的登录部分作修改。
●禁止行为:为最大限度的保证产品的可升级性,禁止直接修改产品的系统数据表、视图、存储过程等数据库对象。
●适用需求:与产品关联度小,二次开发的功能与产品相对独立,属单独的功能需求,不影响产品的业务流程,但允许由产品中取数。
用友U8二次开发API接口
API内容—开发步骤(6.2)
Step6. 获取返回结果
获取普通返回值
获取普通“OUT型”或“INOUT型”返回值
➢ 如前所述,对普通“OUT型”或“INOUT型”参数,如果是一般值类型, 则通过GetResult方法获取其返回值,否则直接使用该引用。
联系方式
TEL: 010-62436992 / 13359013599 MAIL:ahzzd@
使用环境
必须安装.NET Framework 2.0; 必须安装U8-872版本的供应链采购、销售和库存管理产品。
API内容—详细开发步骤(1)
Step1. 构造U8Login对象并登陆
声明和创建U8Login类对象前应该先引用U8API类库中的Interop.U8Login.dll 代码如下:
注意:如果当前环境中有login对象则可以省去第一步。
用友用
API浏览查找 API调用过程 API典型应用场景
API内容
整体介绍 详细开发步骤
简介
U8API
是为U8客户化应用开发提供的一套标准化的U8ERP业务编程接口。
U8API资源管理器
U8API通过“U8API资源管理器”对U8范围内所有API进行集中统一分类管 理,形成了一套完整的U8API资源库。U8API的使用者可以使用“U8API资 源管理器”浏览、查看API及其接口定义,并可辅助进行代码生成(目前支 持C#和VB语言); U8API的开发者可以通过此工具发布、注册API,所有业 务API都必须在“U8API资源管理器”中进行注册。
的地址标识(Url)和环境上下文
代码如下:
API内容—详细开发步骤(4.1)
Step4. API对象参数赋值
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Dim oEle
As IXMLDOWMeEnldement ‘Xml 标准元素
注意缩进 Dim oRoot
Dim oNode
As As
IIXXMMLLDDFoOOArMMENi=lo=Aed1me+teo1nt100‘ ‘XXmmll
根节点 标准节点
Next
适当的换行
Private Sub cmdCreateXMLS_eClleicct kC(a)se Val(x)
XML应用讲解
XPath
使用“/”进行路径操作,如:Nd/Itm/Name 使用“[]”进行谓词判断,如:Nd[Itm/Name] 使用“@”对属性进行判断,如:Item[@Name = ‘a’] 使用“//”获取dom全路径下的所有节点内容 使用“*”进行模糊匹配 XML严格区分大小写,书写时一定要注意
U8二次开发基础讲解
•用友软件股份有限公司 •EBU客开管理总部 •张月昌 •2010年05月07日
讲演主题
VB应用讲解 XML应用讲解 SQL Sever应用讲解
VB应用讲解
VB文件介绍
•窗体文件 •类文件 •模块文件 •自定义控件 •属性页文件 •窗体资源文件 •资源文件 •工程文件 •工程组文件 •工程配置文件 •代码管理文件 •日志文件
降低断行标示“_”的使用频度,脚本换行增加换行标示
sSql = “Select * From Table” & _ “Where Code =‘1001’”
sSql = “Select * From Table”& VbCrlf sSql = sSql &“Where Code =‘1001’”
每个函数段最好不要超过30行
ErrExist:
Next
GetXmlAttr = “”
‘取数失败,返回空串
End Function
讲演主题
VB应用讲解 XML应用讲解 SQL Sever应用讲解
XML应用讲解
XML介绍
<?xml version = '1.0' encoding = 'gb2312' ?>
•Node 节点,类似于数组,有文本属性 •Element 元素,带属性的节点 •Attribute 属性,类似于集合,不可重复 •Text 文本,不具备任何扩展属性 •备注 <!--备注-- > •DocumentElement 根节点,Dom只可以有 一个根节点,该节点为Element属性
ClientHeight = 3195
ClientLeft
= 60
ClientTop
= 345
ClientWidth = 4680
LinkTopic
= "Form1"
ScaleHeight = 3195
ScaleWidth
= 4680
StartUpPosition = 3 '窗口缺省
Begin mandButton cmdCreateXML
vValue = eItem.GetAttribute(sName)
足够If的IsNull(vVa声lue明) T参he数n ‘是判按断地该属性是否存在
注释信GetXmlAtt址r =传“入”还‘是不最数存好值在有,返错回误空处串理,
息
Else GetXmlAttr
=
vValue
Endif
最好不要用On Error Resum
Caption
= "CreateXml"
Height
= 495
Left
= 1680
TabIndex
=1
Top
= 1920
Width
= 1455ຫໍສະໝຸດ EndEndAttribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Dim oEle
As IXMLDOCMaEsleem1ent
Print “Value Is 1”
Do Code
End Select
End Sub
Private Sub Test()
Msgbox “This is a test sub”
Private Sub AnotherSub Next
VB应用讲解(规范)
(*.Frm) (*.Cls) (*.Bas) (*.Ctl) (*.Pag) (*.Frx) (*.Res) (*.Vbp) (*.Vbg) (*.Vbw) (*.Scc) (*.Log)
VB应用讲解(Frm)
VERSION 5.00
Begin VB.Form Form1
Caption
= "Form1"
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
VB应用讲解(规范)
强制显式声明模块中的所有变量
If A = B Then
Option Explicit
A=A+1
End IF
变量一定要在前面声明
While A < 100
Private Sub cmdCreateXML_ClAic=kA()+ 1
XML应用讲解
XML介绍 节点
•SelectSingleNode •selectNodes •firstChild •lastChild •nextSibling •appendChild •removeChild •text
XML应用讲解
XML介绍 属性
•attributes •getAttributeNode •getAttribute •setAttribute •removeAttribute •text
Private Sub cmdCreateXML_Click() Dim oEle As IXMLDOMElement
Do Code End Sub
30
VB应用讲解(规范)
‘获取Xml节点属性值 Private Function GetXmlAttr(Byref eItem As
功Xml能ElOD单enimmeE一nrvtrV,oa,rluB就eyGvoAat干slo sEV一Nraarr业 避件mEiexain务免事stats场实情‘S获t景时r取i考n错的g)虑误XmAls全属S面性tr值i,ng
XML应用讲解
XML字符转义
字符 “ ‘ < > &
转义 " '
< > &
有些特殊字符无法在Xml中直接保存,会使用转义字符进行描述。 该描述会影响XML的保存内容,但是显示仍然会按照原始内容显 示,而非转义内容。 VB中对属性等赋值取数直接使用特殊字符,只是影响Xml的保存 文件。 但是如果对Xml的Xml属性直接操作时就是转义字符了。