U8开发之单据控件 - 图文 下载本文

U8知识库文档

U8开发之单据控件

摘要

单据控件是U8ERP业务单据不可或缺的功能组件。是一个标准的OCX控件,使用符合OCX控件规范。方便业务组快速开发应用单据。

什么是单据控件?

基本概念及其关系

单据[Voucher] 1 单据工具栏 Voucher Toolbar 1 标题拦[Caption Band] 0..n 快速功能[Quick button] 0..1 单头[Header] 0..1 0..n 单体[Detail] 单体工具栏[Detail Toolbar] 0..1 单尾[Footer] 1..n 0..1 助手视图[Side Panel] 主题[Subject Panel]

www.yonyou.com

U8知识库文档

排版与布局规范

? ? ? ? ? ? ? ? ? ? ? ? ?

单据工具栏作为单据界面的一部分,放置在顶部,用RIBBON工具栏风格。 单据CAPTION BAND紧邻单据工具栏下方,单据CAPTION水平居中。 单据定位搜索等快速功能放在单据CAPTION BAND有侧。(V11特性) 单据内容显示空间自CAPTION BAND之下开始。 单头自动紧贴单据内容空间左上角开始显示。

单头栏目列数 = 可用空间宽度 / 默认列宽(取整),各列自动缩放适应显示空间。

单尾在显示空间底对齐。

单尾栏目列数和自适应与单头相同。 单体自动填充剩余空间。

单体自适应空间时,各列优先按照默认宽度显示,尽量显示更多列。(V11特性)

单体支持最大化功能,此时单体占据整个单据内容显示空间。(V11特性) 单体相关功能按钮直接放在单体表格上方,用单行WINDOW TOOLBAR风格。(V11特性)

助手视图右侧,可停靠或者悬浮。助手在单据内容空间内显示。

目标

本文主要介绍单据控件的基础知识,应用过程及相关注意事项,方便各类U8产品开发人员更好的使用单据控件,更高效的开发产品。

单据控件特性 (V11.0)

单据控件实现各业务产品组中各种单据的分层处理。单据控件以OCX提供给各个业务

www.yonyou.com

U8知识库文档

模块使用(包括WEB组)业务组在使用前初始化单据控件,最终业务模块从单据控件取得数据按各自的业务规则检查合法后保存。

单据标题栏[CAPTION BAND]

? 单据名称居中显示。

? 左肩快速功能区放置单据附加内容快速访问按钮,如附件/批注/讨论等。红

蓝单切换按钮也放在左肩。附件、批注、讨论、红蓝字顺序排列,如果前面按钮没有显示,后面的按钮自动前移。 ? 右肩放置单据查找定位相关的功能按钮。 ? 单据状态图章放在单据标题后面。

左肩快速功能按钮

附件

? 当单据有附件时显示附件内容链接按钮? 点击

按钮,在浮动层中显示具体的附件清单。

? 每一个附件项目后面都显示一个删除按钮。

? 点击附件项目,按照附件的文件类型打开文件。 批注

? 当单据有批注时显示批注链接按钮。 ? 点击按钮,在浮动层中显示具体的批注信息。批准信息批注时间倒排序。 红蓝字切换

www.yonyou.com

U8知识库文档

? 单据在新增编辑状态下可用,其他状态不显示。 ? 单据切为红字单时,单据标题用红色显示。 单据状态图章

? 单据的业务状态用醒目的图章标识。

? 一组业务状态只显示当前状态。开立、审核中、已审、变更审批中、关闭为

一组,开立不用图章。一张单据有多组业务状态时,各组可以同时显示,如开票、结算、支付状态。最多能同时支持三个即可。

右肩快速功能按钮

刷新

? 当前为非空白单据或者有定位条件时可用。

? 点击按钮重新加载当前单据,如果当前有定位条件则先执行定位查询,查询

结果中如果有当前单据则重新加载单据,否则,加载定位结果中的第一张单据。 翻页(首张、前一张、后一张、末张)

? 当前单据为空白单据时,前一张与首张的功能相同,后一张与末张的功能相

同。

? 当前如果有定位条件,且定位结果有多条时,则在定位结果中翻页。

? 当达到首张或者末张后,继续点击翻页按钮时,给出提示信息,但按钮继续

可用。 快速定位

? ? ? ? ?

支持单号、单据条码和本单据的关键对象,如客户信息的快速查找定位。 快速搜索条件不超过3个。

当快速定位有输入条件执行定位后,输入框中的清除条件按钮亮起。 点击高级进入过滤条件窗口,用户可以输入复杂的定位条件。 当高级条件执行定位后,快速搜索框显示“高级条件定位”,且清除按钮亮起。

? 单据列表联查进入单据时,快速搜索框显示“列表联查”,单据定位的范围是

单据列表,清除按钮亮起。 ? 点击按钮,清除定位条件。 最近访问/定位结果清单

www.yonyou.com

U8知识库文档

? 点击按钮打开一个浮动层,在其中的定位结果组中显示定位结果清单。 ? 没有定位条件时,定位结果组不显示。 ? 定位结果显示5条,如果有超过5条的记录,在第5条后面增加一个“更多…”

项目,点击后进入单据列表,并用定位条件查询出结果。如果单据本身就是单据列表联查进入的,应该直接回到相关联的单据列表界面。

? “最新单据”组是当前操作员最新的5张单据(原单据助手中的最近单据)。

单头

总体规范

? 自适应显示空间。

? 单头栏目列数 = 可用空间宽度 / 默认列宽(取整),各列自动缩放适应显示

空间。

? 没有权限的字段不显示,其他字段按顺序自动移动位置。 ? 栏目排版顺序为先行后列。 必输项

? 必输项标签后边用一个“*”标识。 关联档案

? 关联档案项目标签用蓝色下划线样式,鼠标变为手型。 ? 点击标签进入关联档案的卡片浏览状态。 IM集成

? 能发起IM的联系人相关项目鼠标滑过时在,显示IM相关的功能小按钮。

单体

总体规范

? 单体相关的功能按钮放在单体工具栏。

? 原则上右键菜单功能都在单体工具栏都有对应功能按钮或者菜单。

www.yonyou.com

U8知识库文档

? 在相对布局模式下单体自适应单头和单尾占用剩余的所有可用空间。 ? 单体支持最大化,占据整个单据内容显示空间(单头、单体、单尾)。

单体工具栏

总体规范

? ? ? ? ? ?

使用WINDOW TOOLBAR风格。 只支持一行TOOLBAR。

单体最大化功能按钮放在工具栏最右端。 没有权限的按钮不显示。

所有按钮都为普通横向排列的小按钮,都有图标和标签。

单据编辑状态和浏览状态逻辑定义为两个工具栏实例,只有在浏览状态下能的功能在编辑状态下不显示,反之也燃。

分组规范

? 表格通用操作(插行、删行、复制行、批改)作为独立组放在最左端(第一

组)。这是编辑状态才可用的功能。

? 关联查询和业务处理功能作为第二组,称作业务功能组,当业务功能太多是

工具栏一行无法完全显示所有功能时,把一些不常用的功能合并到一个通用功能按钮“更多…”中。

? 排序定位功能作为第三组,称为排序定位组。

? 显示格式相关功能作为第四组,称为显示格式组。 按钮风格 通用操作组

? 都为普通小按钮。

? 只有在编辑状态才可用。 业务功能组

? 业务功能性质系统的功能归到一个按钮的下拉菜单中,如货位相关的所有功

能,可用量相关的所有功能,最常用的功能指定为这个按钮的默认功能。如果没有默认功能,该按钮设为普通下拉菜单按钮。

? 常见的单体相关的业务功能有:可用量、价格、信用、批号、序列号、货位、

锁定、关闭等,根据单据的实际情况定义一级功能按钮。业务功能排列顺序就按照以上顺序排列,如果有更多业务功能在规范之外,需要共同合议决定。

www.yonyou.com

U8知识库文档

? 如果工具栏排不下所有业务功能,把不常用的归纳的“更多…”按钮下面。 ? 如果显示器分辨率问题,导致显示不下,业务功能自动按先后顺序自动归到

“更多…”按钮下面。 排序定位组

? 排序、定位的所有功能归到一个按钮下面。 显示格式组

? 自动折行、列冻结、行汇总合并等显示相关的设置都归到这里。 ? 自动折行是一个选项菜单,选项状态自动记入单据模板对应属性。 冻结列是把表格冻结列设为当前列,不能之前是否有冻结列。 ? 有列被冻结时,取消冻结才高亮可用,否则置灰。 ? 合并显示相关功能只能在浏览状态下显示(可以)。 ? 冻结列和合并显示的状态只是当前窗口有效。 ? 行或者单元格更多的设置都可以归到这里。 单体右键菜单

? 右键菜单只保留与鼠标焦点所在行/列相关的上下文菜单。 ? 右键菜单原则上在单体工具栏中有对应的按钮或者菜单项。 ? 原右键菜单中整单相关的功能移到单据工具栏(RIBBON),右键菜单中不再保

留。

? 原右键菜单中对表体所有行有效的功能移到单体工具栏中,右键菜单中不再

保留。

? 只能在浏览状态或者编辑状态可用的功能菜单项,在编辑状态和浏览状态间

隐藏。

? 在当前状态下,因当前行数据导致的不可用菜单置灰。 ? 没有权限的菜单项隐藏。

单尾

? 单尾与单头出放在单体下方,紧贴显示空间底部外,其他显示规范与单头相

www.yonyou.com

U8知识库文档

关。

? 单尾都是一些系统自动记录的字段,一般不放置需手工维护的字段。

数据字典

a) 数据字典

单据活动文本信息表(voucherfiexdlabel_lang)(UFData库) 字段名 AutoId Localid PrintInterval nActionText sCol VT_ID FontState nActionSource Pubufts ReserveSegTitlePos nRow X Width Text Height Y PrintUcase nBorder 字段类型 Int Nvarchar(32) Nvarchar(200) Int Nvarchar(100) Int Nvarchar(40) Int Timestamp Bit Int Int Int Nvarchar(1000) Int Int Bit Int 说明 自动编号 语言ID,zh-CN(简体中文),zh-TW(繁体中文),en-US(英文) 套打属性 活动文本 表体指定列 单据模板号 单据控件字体 活动文本来源 事件戳 是否保留字段标题占位 表体指定行数 左坐标 宽度 文本内容 高度 顶位置 打印成大写 边框 单据表体附件信息表,附件保存于文件服务器(VoucherBodyAccessories)(UFData库) 字段名 ID CellID Cardnum FileName FileID nOrder 字段类型 uniqueidentifier uniqueidentifier Nvarchar(50) Nvarchar(50) Nvarchar(50) Int 说明 GUID 表体单元格的ID 单据类型号 文件名 文件ID,文件服务器有对应的值 序号 单据设置信息表(VoucherCustomerInfo)(UFData库) 字段名 fchrID fchrXmlInfo 字段类型 Nvarchar(50) Ntext 说明 GUID 使用者相关的信息 www.yonyou.com

U8知识库文档

fchrOperator fchrType fchrVoucherTemplateType fchrVoucherType Nvarchar(20) Nvarchar(50) Nvarchar(50) Nvarchar(50) 操作员 类型,比如缺省打印模板信息 单据模板ID 单据ID 说明 GUID 使用者相关的信息 操作员 类型,比如缺省打印模板信息 单据模板ID 单据ID 名称 其他Dom信息 帐套号 数据类型:草稿(0),模板(1) 操作员 表体Dom 年度信息 语言信息 单据草稿、模板信息表(VoucherHelper)(UFData库)(V11.0) 字段名 cPath cServer cCreateOn sHeadDom cVoucherType cID cName sOtherDom cAcc_Id iDataType cUserID sBodyDom cIYear cLocaleId 字段类型 Nvarchar(255) Nvarchar(255) Datatime text Nvarchar(100) Nvarchar(50) Nvarchar(255) Text Nvarchar(3) Int Nvarchar(20) Text Smallint Nvarchar(32) 单据模板明细信息基本表(voucheritems_base)(UFData库) 字段名 AutoId IsFixedLenght EnumType bIMFld(V11) 字段类型 Int Bit Nvarchar(100) Tinyint 说明 自动编号 是否定长 枚举类型 单据字段上显示UTU和业务通知图标的设置,0代表都不显示,1代表只显示业务通知,2代表都显示 AutoFillRule COY FieldType CanDelete bsplit nBorder MaxLength Width BuildArchives AliasNum PrintInterval isSelfDef DataRule EnumTypeString Nvarchar(1000) Int Smallint Int Bit Int Int Int Bit Smallint Nvarchar(100) Int Nvarchar(1000) Nvarchar(2000) 自动填充规则 顶坐标 数据类型 是否可删除 是否支持行拆分 边框 最大长度 单元控件宽度 是否建档 别名 金额大写或日期单位间距 是否为自定义项目 数据公式 枚举信息

www.yonyou.com

U8知识库文档

VT_ID IsJoinQuery ValidityCheck FieldName LinkIt Catalog bExtended TableName DefaultValue DataSource ReserveSegTitlePos CardItemNum cmemo EnterType LinkField PrintUpcase ShowIt CanModify FormatData LinkTbl IsNull CanNotSelect iFlags TabIndex refObject NumPoint IsMain ReferTable UserPrompt PrintCaption Height ReferReturnField vValueDefault CardNum bZeroAllowable FormatChar MaxShowLen UserCheck CardSection pubufts NeedSum CalcField IsEnum Int Bit Bit Nvarchar(40) Smallint Int Bit Nvarchar(100) Nvarchar(20) Int Bit Nvarchar(3) Nvarchar(1000) Int Nvarchar(20) Bit Bit Bit Nvarchar(20) Nvarchar(20) Bit Bit Smallint Int Varchar(50) Int Bit Nvarchar(100) Nvarchar(28) Bit Int Nvarchar(1000) Nvarchar(500) Nvarchar(20) Bit Nvarchar(1) Int Nvarchar(50) Nvarchar(4) Timestamp Smallint Bit Bit 单据模版号 是否关联查询 是否合法性检测 字段名称 是否是连接域 类型 是否扩展字段 数据表名 默认值 数据来源类型 是否保留字段标题占位 项目编码 备注 输入方式 连接字段名 是否打印成金额大写 是否选择 是否可修改 数据项显示格式 连接表名 是否可空 不可选标志 是否启用日期时分秒 响应TABLE键顺序 参照ID 小数位数 是否为主表 用户参照表名 用户提示 是否打印项目标题 单元控件高度 参照返回字段 缺省值 所属单据编号 是否可以为零 数据分割符 最大显示长度 检查公式 所在区域 时间戳 是否需要合计 是否是计算得来字段 是否枚举

www.yonyou.com

U8知识库文档

COX bAutoComplete(V11.0) ReferType Int Bit smallint 单元控件左坐标 是否支持智能提示功能 是否有参照 单据显示模板明细语言表(voucheritems_lang)(UFData库) 字段名 ID cardformula1 fontstate carditemname cardsection cardformula2 ufts cardnum fieldname vt_id localeid 字段类型 Nvarchar(50) Nvarchar(500) Nvarchar(40) Nvarchar(500) Nvarchar(4) Nvarchar(500) timestamp Nvarchar(100) Nvarchar(40) int Nvarchar(32) 说明 GUID 显示名称 单元控件字体 项目名称 所在区域 工业用显示名称 时间戳 所属单据编号 字段名称 单据模版号 语言ID,zh-CN(简体中文),zh-TW(繁体中文),en-US(英文) 单据打印模板明细信息基本表(voucheritems_Prn_base)(UFData库) 字段名 AutoId CanModify ValidityCheck nBorder VT_ID CardNum ReferReturnField FormatData MaxLength IsMain UserPrompt BuildArchives TabIndex IsFixedLenght EnumType bIMFld(V11) 字段类型 Int Bit Bit Int Int Nvarchar(20) Nvarchar(1000) Nvarchar(20) Int Bit Nvarchar(28) Bit Int Bit Nvarchar(100) Tinyint 说明 自动编号 是否可修改 是否合法性检测 边框 单据模版号 所属单据编号 参照返回字段 数据项显示格式 最大长度 是否为主表 用户提示 是否建档 响应TABLE键顺序 是否定长 枚举类型 单据字段上显示UTU和业务通知图标的设置,0代表都不显示,1代表只显示业务通知,2代表都显示 AutoFillRule COY FieldType CanDelete bsplit Nvarchar(1000) Int Smallint Int Bit 自动填充规则 顶坐标 数据类型 是否可删除 是否支持行拆分

www.yonyou.com

U8知识库文档

Width AliasNum PrintInterval isSelfDef DataRule EnumTypeString IsJoinQuery FieldName LinkIt Catalog bExtended TableName DefaultValue DataSource ReserveSegTitlePos CardItemNum cmemo EnterType LinkField PrintUpcase ShowIt LinkTbl IsNull CanNotSelect iFlags refObject NumPoint ReferTable PrintCaption Height vValueDefault bZeroAllowable FormatChar MaxShowLen UserCheck CardSection pubufts NeedSum CalcField IsEnum COX bAutoComplete(V11.0) ReferType Int Smallint Nvarchar(100) Int Nvarchar(1000) Nvarchar(2000) Bit Nvarchar(40) Smallint Int Bit Nvarchar(100) Nvarchar(20) Int Bit Nvarchar(3) Nvarchar(1000) Int Nvarchar(20) Bit Bit Nvarchar(20) Bit Bit Smallint Varchar(50) Int Nvarchar(100) Bit Int Nvarchar(500) Bit Nvarchar(1) Int Nvarchar(50) Nvarchar(4) Timestamp Smallint Bit Bit Int Bit smallint 单元控件宽度 别名 金额大写或日期单位间距 是否为自定义项目 数据公式 枚举信息 是否关联查询 字段名称 是否是连接域 类型 是否扩展字段 数据表名 默认值 数据来源类型 是否保留字段标题占位 项目编码 备注 输入方式 连接字段名 是否打印成金额大写 是否选择 连接表名 是否可空 不可选标志 是否启用日期时分秒 参照ID 小数位数 用户参照表名 是否打印项目标题 单元控件高度 缺省值 是否可以为零 数据分割符 最大显示长度 检查公式 所在区域 时间戳 是否需要合计 是否是计算得来字段 是否枚举 单元控件左坐标 是否支持智能提示功能 是否有参照

www.yonyou.com

U8知识库文档

单据显示模板明细语言表(voucheritems_Prn_lang)(UFData库) 字段名 ID cardformula1 fontstate carditemname cardsection cardformula2 ufts cardnum fieldname vt_id localeid 字段类型 Nvarchar(50) Nvarchar(500) Nvarchar(40) Nvarchar(500) Nvarchar(4) Nvarchar(500) timestamp Nvarchar(100) Nvarchar(40) int Nvarchar(32) 说明 GUID 显示名称 单元控件字体 项目名称 所在区域 工业用显示名称 时间戳 所属单据编号 字段名称 单据模版号 语言ID,zh-CN(简体中文),zh-TW(繁体中文),en-US(英文) 单据批注信息表(VoucherNotes)(UFData库)(V11.0) 字段名 dCreateOn cNoteID dModifyOn cVchUniqueID cUserID cVchTableName cNoteContent 字段类型 datetime Nvarchar(50) datetime Nvarchar(64) Nvarchar(20) Nvarchar(50) Nvarchar(4000) 说明 创建时间 主键GUID 修改时间 单据ID 操作员 业务单据存储位置信息 批注内容 单据信息表(vouchers_base)(UFData库) 字段名 CardNumber BodyWidth BodyLeft DEF_ID_PRN InventoryFieldName BodyFKName CardType cHeadFuncName Name VchListQName pubufts BodyHeight AuditFieldName cBodyBusObjectId cBodyFuncName DEF_ID AlertAuditFieldName 字段类型 Varchar(100) Int int int Nvarchar(40) Nvarchar(20) Nvarchar(10) Nvarchar(100) Nvarchar(20) Nvarchar(255) Timestamp Int Nvarchar(40) Nvarchar(100) Nvarchar(100) Int Nvarchar(40) 说明 单据类型编码 表体宽度 表体左坐标 默认打印单据模板号 存货字段名 表体主键字段名 单据类型 UAP Used 单据名称 单据列表视图 时间戳 表体高度 审批人字段名 表体业务对象的ID,UAP Used 表体函数名,用于数据引擎 表体函数名,用于数据引擎 变更审批字段名

www.yonyou.com

U8知识库文档

SelfDef1 AlertFieldName cSub_IdLocation BodyModify BodyDefaultConditionFieldName VoucherHeight HaveBodyGrid iVT_IDFieldName Memo BTQName AllowDateTimeFormat iOrder IsPrintLimited cHeadBusObjectId SelfDef3 PrintCountFieldName cFieldAuthid vchtblPrimarykeyNames IsAlertAuditedPrint BodyTop cIndustry BWQName Shield ReceiptNoFieldName bAllowMulTemp IsAuditedPrint VoucherWidth UpdateTime NotAppiesAuth ItemTblName cSub_Id SelfDef2 itemCol vchBodyPKName BWTblName cDefWhere BTTblName Nvarchar(20) Nvarchar(40) Nvarchar(200) Bit Nvarchar(40) Int Bit Nvarchar(40) Nvarchar(20) Nvarchar(40) Bit Int Bit Nvarchar(100) Nvarchar(20) Nvarchar(40) Nvarchar(100) Nvarchar(100) bit Int Nvarchar(20) Nvarchar(40) Bit Nvarchar(30) Bit Bit Int Datetime Bit Nvarchar(20) Nvarchar(100) Nvarchar(20) int Varchar(20) Nvarchar(100) Nvarchar(100) Nvarchar(100) 自定义1 变更人字段名 单据模版所在的子产品 表体是否可修改 表体排序默认条件字段名 单据高度 是否有表体 业务组物理表中存储单据模版编号的字段名称 备注 单据表头视图 是否手工录入日期 是否手工录入日期 是否打印控制 表头业务对象的ID,UAP Used 自定义3 打印计数对应的字段名 对应的权限ID 对应的权限ID 是否支持审批后打印 表体顶坐标 工商业标志 单据表体视图 是否屏蔽 单据编号字段名 是否多模板 是否支持审批打印 单据宽度 更新时间 是否受权限控制,用于单据模板设计器 项目定义表 所属模块标识串 自定义2 表头列数 表体主键字段名 单据表体表 单据识别条件 单据表头表 单据信息语言表(vouchers_lang)(UFData库) 字段名 localeid cardnumber 字段类型 Nvarchar(32) Varchar(100) 说明 语言ID,zh-CN(简体中文),zh-TW(繁体中文),en-US(英文) 单据类型编码 www.yonyou.com

U8知识库文档

appname ccardname ufts Nvarchar(100) Nvarchar(500) Timestamp 所属模块名称 所属模块名称 时间戳 单据水印规则对照表(VoucherStatusRuleContrapose)(UFData库)(V11.0) 字段名 cContraposeAutoID cCardNumber cRuleCode 字段类型 int Varchar(50) Nvarchar(50) 说明 自增ID, 主键 单据类型 规则编码 单据水印规则明细表(VoucherStatusRuleDetails)(UFData库)(V11.0) 字段名 iHaveCount 字段类型 int 说明 对应字段默认值-1,0代表无值,1代表有值 0代表无值,1代表有值默认值-1, 0代表无值,1代表有值默认值-1, 0代表无值,1代表有值默认值-1, 0代表无值,1代表有值默认值-1,0代表无值,1代表有值 cConditionType cValue cRuleID iNO cFieldName cRuleCode cFieldType nVarchar(20) Nvarchar(100) Nvarchar(50) Int Nvarchar(50) Nvarchar(50) Nvarchar(20) 条件类型,=,<>,value 字段对应值cConditionType为Value时考虑cValue的值 规则明细索引,主键GUID 一般的用不上,财务采用 字段名 对应规则编码 字段类型 单据水印规则主表(VoucherStatusRules)(UFData库)(V11.0) 字段名 cRuleCode iGroup 字段类型 int nVarchar(20) 说明 规则编码--唯一值 规则分组状态分组,代表不同的业务状态组(即此规则判断的状态水印是属于1单据状态,2业务状态还是3结算状态) cSection cRuleDescription cPic iPriority Nvarchar(10) Nvarchar(100) Nvarchar(20) int 所适用区域:表头或表体T,B 规则描述 状态对应图片 规则级次(优先级)从高到底的优先级顺序,通用的预置以10为单位,如90,80,70, 单据模板表(vouchertemplates_base)(UFData库) 字段名 VT_ID VT_Lock VT_PageTotal VT_SelfDef2 VT_BodyTop VT_ControlStyle 字段类型 Int Bit Int Nvarchar(20) Int Int 说明 单据模版号 模板是否处于锁定状态 是否打印表体合计 单据自定义2 表体顶坐标 界面样式

www.yonyou.com

U8知识库文档

VT_GridStyle VT_Memo VT_BodyWidth VT_BodyHeight VT_BodyLeft nPrintSeril VT_GridPrnRowHeight pubufts VT_TitleTop VT_CardNumber VT_Width VT_BodyMaxRows VT_SelfDef3 VT_WorkAreaColor VT_AutoCalc VT_PageSubTotal templateSubType VT_TitleLeft VT_xamlField VT_FiexdColor VT_PageHeader VT_TotalColor VT_AmongColor VT_BodyFixedCols VT_PrintGrid varPrintSetting VT_PrintTemplID AuditDisplayFlag nPrintGridLine VT_RowLayoutEnabled VT_TemplateMode VT_Height nAutoCalcWidth VT_PRN_DEF_LANDID VT_SelfDef1 VT_ReservedInfo VT_GridPrnRows vt_saveObject Int Nvarchar(20) Int Int Int Int Int Timestamp Int Varchar(50) Int Int Nvarchar(20) Int Int Int Tinyint Int Nvarchar(2000) Int Nvarchar(255) Int Int Int Int Nvarchar(3000) Int Varchar(30) Int Bit Int Int Int Nvarchar(64) Nvarchar(20) Nvarchar(1000) Int Varchar(50) 表体网格风格 备注 表体宽度 表体左坐标 表体左坐标 表格打印行行高 表格打印行行高 时间戳 单据标题顶坐标 所属单据类型编码 单据宽度 表体可输入行数 工作区颜色 工作区颜色 自动计算表体高度 是否打印表体小计 单据模版子类型 单据标题左坐标 保留字段 表体固定行列颜色 页眉2 表体合计行颜色 表体隔行颜色 表体左边固定列 是否打印网格数据 XML格式字符串 对应打印模版号 审核显示标识 打印表体标题行 是否启用行布局 模版类型 单据高度 自动计算表体宽度 缺省的打印模板ID 单据自定义1 保留信息 表格打印行数 保存是调用的数据引擎对象,数据引擎使用 单据模板语言表(vouchertemplates_lang)(UFData库)(V11.0) 字段名 vt_id localeid 字段类型 int nVarchar(32) 说明 单据模版号 语言ID,zh-CN(简体中文),zh-TW(繁体中文),en-US(英文)

www.yonyou.com

U8知识库文档

vt_gridstylehead vt_RowLayoutXML vt_gridstyletotal vt_gridstylebody vt_titlename vt_titlefontstate ufts vt_foot vt_header vt_name vt_footheaderfont vt_cardnumber Nvarchar(50) Ntext Nvarchar(50) Nvarchar(50) Nvarchar(500) Nvarchar(40) Timestamp Nvarchar(200) Nvarchar(200) Nvarchar(500) Nvarchar(40) Varchar(50) 表格头打印风格 表体行布局信息 合计行打印风格 表格打印风格 单据标题名称 表体字体 时间戳 页脚内容 页眉内容 单据模板名称 页眉页脚字体 所属单据类型编码 b) 单据插件信息表

单据插件信息表(VoucherPlugins)(UFData库)(U890/U10.0/U10.1/U11.0) 字段名 ID iOrder CardNum ClassName SubID Ufts 字段类型 说明 Uniqueidentifier GUID Int Nvarchar(50) Nvarchar(200) Nvarchar(50) Timestamp 插件的顺序 单据类型号 插件类型名称,用于CreateObject 子产品ID 时间戳

如何使用单据控件?

在VB中引用单据控件

在VB中点击主菜单中的“工程->部件”或者直接按Ctrl+T热键,随后出现的“部件”对话框中选中“UAPVoucherControl85”,然后点击“确定”,左侧的工具条中将出现该控件的图标,如下图所示:

www.yonyou.com

U8知识库文档

OCX文件的方法函数图例如下:

主要属性

www.yonyou.com

U8知识库文档

? BackColor,BackColorBkg,BackColorFixed,BackColorSel,BackColorTotal属性: 返回或设置单据控件不同的背景颜色 语法:

voucher.BackColor [=color] voucher.BackColorBkg [=color] voucher.BackColorFixed [=color] voucher.BackColorSel [=color] voucher.BackColorTotal [=color]

参数说明: 参数 Voucher Color 备注:

下图为Voucher属性设置效果

描述 单据控件名称 一个指定的颜色值 用。

Example:

Note:如要设置这些属性值,必需在设置完模板数据后再设置才能起作

www.yonyou.com

U8知识库文档

参考代码 Private Sub Form_Load () Timer1.Interval =500 End Sub Private Sub Timer1_Timer () Voucher1.BackColorBkg =QBColor(Rnd * 15) Voucher1.BackColorFixed =QBColor(Rnd * 10) Voucher1.BackColorSel =QBColor(Rnd * 10) Voucher1.BackColorSelTotal =QBColor(Rnd * 10) End Sub ? Col, Row,ColSel,RowSel 属性

返回或设置当前表体活动单元格的行列坐标,此属性在设计状态不可用。 语法:

voucher.Col [=number] voucher.Row [=number] 参数说明: 参数 Voucher number

备注: 明。

描述 单据控件名称 一个指定的指定活动单元行列的数值 使用Col、Row属性来指定活动单元格,Col>0,Row>0,Col

设置完Col,Row值后ColSel和RowSel将自动变更成Col,Row,更说细的说请参照MSDN

www.yonyou.com

U8知识库文档

示例 Public Sub Command_Click() Voucher.Col=50 Voucher.Row=20 Debug.Print Voucher1.Col Debug.Print Voucher1.Row Debug.Print Voucher1.ColSel Debug.Print Voucher1.RowSel End Sub ? TitleCaption,TitleFont,TitleForeColor,ToolTipText 返回或设置标题各项属性值

语法:

voucher. TitleCaption [=string] voucher. TitleFont [=font]

voucher. TitleForeColor [=color] voucher. ToolTipText [=string] 参数说明:

参数 Voucher Color string Font 描述 单据控件名称 一个指定的颜色值 字符串表达式 指定的字体对象 注: 这些属性的赋值操作必须在setTemplateData方法后,否则你的操作将会 得不到处理(因为你的这些操作会被setTemplateData方法覆盖)。

? Left,Top,Width,Height属性 返回或设置单据控件大小属性 语法:

voucher.Left [=value] voucher.Top[=value] voucher.Widht[=value] voucher.Height[=value]

参数说明:

参数 Voucher value

描述 单据控件名称 数值 www.yonyou.com

U8知识库文档

备注: 在执行完setTemplateData方法后,setTemplateData会按照单据设计设计的宽度和高度自动设置Width和Height属性。

? HeadText属性

设置或返回表头项目的值 语法:

voucher.HeadText(Index)= [=string]

参数 描述 Voucher 单据控件名称 Index下标,可以是数值,也可是关键字,用来标识表头项目 string 字符串或数值 Example:

示例 Public Sub Command1_Click() Voucher.headText(1)=‘用友软件公司’ Voucher.headText(‘cCusName’)= ‘用友软件公司’ cCusName= ‘客户名称’ End Sub 备注: 如果你要设置的项目(Index)不存在,单据控件将会产生一个错误,具体的错误信息可以通过GetLastError方法得到。

? BodyText属性 设置或返回表体项目的值 语法: voucher.HeadText(Row as Long,Col as Variant)= [=string] 参数 描述 Voucher 单据控件名称 Row数值,表示表体里的哪一行 Col 可变 体,可以是列,也可用关键值来表示表体里的哪一行。 String 字符串表达 式

示例 Public Sub Command1-_Click() Voucher.bodyText(1,1)=‘用友软件公司’ Voucher.bodyText(1,‘cCusName’)= ‘用友软件公司’ ‘ cCusName=‘客户名称’ End Sub ? BodyColWidth属性 设置表体指定行的宽度 语法: voucher. BodyColWidth (Col as Variant)= [=value] 参数 描述 Voucher 单据控件名称 Col 可变体,可以是列,也可用关键值来表 示表体里的哪一行。 value数值

www.yonyou.com

U8知识库文档

示例 Public Sub Command1-_Click() Voucher.bodyColWidth(1)=300 Voucher.bodyColWidth (‘cCusName’)= 300 ‘cCusName=‘客户名称’ End Sub 备注: 有些属性用来给程序员动态的控制单据表体的某一列显示。请在做具体的操 作时,考虑用户权限的问题。

? BodyMaxRows

返回或设置表体可输入的最大行数 语法: voucher. BodyMaxRows[=Value] 参数 描述 Public Sub Command1- _Click()

Voucher.bodymaxRows = 2

表体最多可以输入2行数据 End Sub

? BodyRows

返回当前表行数据行的总数(只包括有数据的行) 语法:

voucher. BodyRows [=Value] 参数 描述

Public Sub Command1-_Click() Debug.print voucher.bodyRows End Sub

? MultiLineSelect 返回或设置是否是多行选择 语法: voucher.MultiLineSelect = [Boolean] 备注: 在表体参照的时候如果你需要参照返回多条数据时,在你参照前请记得先把 该属性设置为TRUE,参照完成后记得一定要把改属性设置成FALSE (如果不进行处理,有可能会产生单据单据不能离开焦点的BUG)。

主要方法

? setTemplateData方法 功能:

设置单据控件的模版数据记录集,在第一次初始化单据控件时,必须设 置单据模版数据。

www.yonyou.com

U8知识库文档

语法: Public Sub setTemplateData(rstTemplate As Recordset) 参数: rstTemplate: 单据模版数据结果记录集 备注:

本操作是将单据设计好的结果集传递给单据控件进行显示界面初始化处理。包括定位、模版信息。

该数据结果集是能过调用单据控件后台服务来获得的

示例 Public Sub Command1_Click() Dim o as Object Dim rst as Recordset Set o = CreateObject(‘UFVoucherServer85.clsVoucherTemplate’) If o is nothing then Exit Sub ‘如果创建对象Fail,则退出 Set rst = o.GetTemplateData2(数据库连接(Connection),单据(CardNumber), 模版号(VT_ID)) Voucher.SetTemplateData(rst) ‘设置模版 End Sub ? setVoucherDataXML方法 功能:

设置单据数据到单据控件上。 语法: Public Function setVoucherDataXML(oDOmHead As Variant,oDomBody As Variant) As Boolean 参数: oDOmHead:单据表头Dom信息 oDomBody:单据表体Dom信息 备注:

本操作是将从后台获取的单据数据加载到单据界面上。

示例 Private Sub SetVoucherData() On Error Resume Next Dim DomHead As New DOMDocument Dim DomBody As New DOMDocument Dim rstHead As New Recordset Dim rstBody As New Recordset Dim sSql1 As String Dim sSql2 As String Screen.MousePointer = vbHourglass rstHead.CursorLocation = adUseClient rstBody.CursorLocation = adUseClient

www.yonyou.com

U8知识库文档

'Select * ,'' as editprop From SaleOrderSQ where id = 3 order by autoid 'Select * from SaleOrderQ where id=3 Debug.Print \从数据库加载数据...\ sSql1 = \top 1 *,'' as editprop From ctlVoucher1.GetVoucherState.sBtViewTable sSql2 = \top 3 *,'' as editprop From ctlVoucher1.GetVoucherState.sBwViewTable rstHead.Open sSql1, m_strConnect, adUseClient, adOpenStatic, adCmdText rstBody.Open sSql2, m_strConnect, adOpenStatic, adLockOptimistic rstHead.Save DomHead, adPersistXML rstBody.Save DomBody, adPersistXML DomHead.Save \ DomBody.Save \ 'domhead.Load \ 'dombody.Load \ 'dombody.Save \ Debug.Print \正在加载数据到单据控件中...\ ctlVoucher1.setVoucherDataXML DomHead, DomBody Debug.Print \操作完成\ Screen.MousePointer = vbDefault End Sub

? AddLine方法 功能: 在单据表体增加一行 语法: Public Sub AddLine(optional nRow as Long,Option sLine as String = ’‘,Option Relative as AddLineState = ALSLast)

? DelLine方法 功能: 单据表体删除指定的行,如果没指定行删除当前所在的行。 语法: Public Sub DelLine(Optional Byval nRow as Long) 参数: nRow 为单据表体的具体行号 返回值:无

? AddNew方法 功能:增加一张新单据

语法: Public Sub AddNew(Byval eMode as AddNewMode) 参数: eMode为新增时的增加模式 返回值:无

\\+ + www.yonyou.com

U8知识库文档

备注: 增加一张新单据,实际上就是将表头对象(Header)和表体对象(Body)中各项目的值据增加模式清空。在增加一张新的单据时,应先调用。

? GetVoucherDataXML方法 功能:得到单据数据DOM对象 语法: Public Sub getVoucherData(oDomhead As Variant,oDomBody As Variant) 参数: rstHeader: 表头数据DOM对象(MSXML.DOMDocument对象) rstBody: 表体数据DOM对象(MSXML.DOMDocument对象) 返回值:无

备注:更新数据(从控件生成DOMDocumetn对象)

? GetLineDom方法

功能:返回当前或指定行的Dom对象(得到表体一行的全部Dom数据对象) 语法: Public Function GetLineDom(Optional ByVal nRow As Long = 0) As DOMDocument 参数: nRow指定的行Index,缺省为0,即取当有Mouse所在行的数据 返回值:DOMDocument对象

? PrintVoucherEx方法 功能:打印单据数据 语法: Public Function PrintVoucherEx(ByVal rsTemplate As Variant, ByVal rsField As Variant, Optional ByVal bShowPrintDlg As Boolean = True) As Long 参数:

rsTemplate [IN]记录集 单据模版数据(必需通过单据后台服务提供) rsField [IN]记录集 固定文本数据(必需通过单据后台服务提供) bShowPrintViewDlg [IN] 布尔值 是否显示打印对话框 返回值: 如果打印成功返回0,否则返回非0,具体的错误信息请参考打印控件(Error Table)

示例 Public Sub Command1-_Click() Dim o as Object Dim rsTemplate as Recordset Dim rsField as Recordset Set o = CreateObject(‘UFVoucherServer85.clsVoucherTemplate’) If o is nothing then Exit Sub ‘如果创建对象Fail,则退出 Set rsTemplate = o.GetTemplateData2(数据库连接(Connection),单据 (CardNumber),模版号(VT_ID)) Set rsField = o.GetFixedData(数据库连接字符串(String),模版号(VT_ID))

www.yonyou.com

U8知识库文档

Call voucher.PrintVoucherEx(rsTemplate, rsField, True) ’显示打印对话框 End Sub ? ExportToFile方法

功能:导出单据单据数据到指定的文件 语法: Public Function ExportToFile(ByVal rsTemplate As Variant, ByVal rsField As Variant) As Boolean

示例 Public Sub Command1-_Click() Dim o as Object Dim rsTemplate as Recordset Dim rsField as Recordset Set o = CreateObject(‘UFVoucherServer85.clsVoucherTemplate’) If o is nothing then Exit Sub ’如果创建对象Fail,则退出 Set rsTemplate = o.GetTemplateData2(数据库连接(Connection),单据 (CardNumber),模版号(VT_ID)) Set rsField = o.GetFixedData(数据库连接字符串(String),模版号(VT_ID)) Call voucher. ExportToFile(rsTemplate, rsField) ‘导出文件 End Sub 参数:

rsTemplate [IN]记录集 单据模版数据(必需通过单据后台服务提供) rsField [IN]记录集 固定文本数据(必需通过单据后台服务提供) 返回值: 如果导出成功返回0,否则返回非0,具体的错误信息请参考打印控件(Error Table)。

主要事件

? HeadBrowUser 当用户单击表头参照时产生此事件 语法:

Private Sub voucher_headBrowUser(ByVal Index As Variant, sRet As Variant, ByRef referPara As ReferParameter) End Sub 参数说明: 参数 Voucher index sRet referPara

描述 单据控件名称 表头下标 返回值 参照参数对象 www.yonyou.com

U8知识库文档

? BodyBrowUser 当用户单击表体参照时产生此事件 语法:

Private Sub voucher_bodyBrowUser(ByVal row As Long, ByVal col As Long, sRet As variant) End Sub 参数说明: 参数 Voucher row col sRet

? BodyCellCheck BodyCellCheckWeb 表体数据发生该变,需要数据检查时发生此事

语法: Private Sub Voucher_bodyCellCheck(RetValue As String, bChanged As VoucherControl85.CheckRet, ByVal r As Long, ByVal c As Long)

End Sub

参数说明:

参数 Voucher RetValue bChanged row col

? Click 当用户在单据控件上单击时产生此事件

? DblClick 当用户在单据控件上双击时产生此事件

? KeyDown , KeyPress, KeyUp, MouseDown, MouseMove, MouseUp 鼠标及键盘响应事件

? BillNumberChecksucceed 在设置单据编号规则后,如果当前单据满足了编号规则

后,将会激活当前事件

? AddNewLineEvent 当调用AddLine方法时,该事件将会产生

描述 单据控件名称 返回当前单元的值 数据检测是否居功 下标 下标(可用关键字) 描述 单据控件名称 下标 下标(可用关键字) 返回值

www.yonyou.com

U8知识库文档

应用案例

表头附件

www.yonyou.com

U8知识库文档

示例 1) Toolbar 增加按钮 附件 按钮响应事件代码 Me.ctlVoucher1.SelectFile() 需要根据自己单据的状态设置按钮的状态 2) 单据保存部分 在原来的单据内容保存完成以后,事务提交以前增减保存附件的代码 Dim cnn As New ADODB.Connection cnn.Open m_strConnect Dim ErrDesc As String Dim blnsaveAcc As Boolean Dim strXml As String strXml = ctlVoucher1.GetAccessoriesInfo(ErrDesc) If ErrDesc <> \ MsgBox ErrDesc End If Dim m_oServer as UFVoucherServer85.clsVoucherTemplate Dim objDoc As New MSXML2.DOMDocument30 Call objDoc.loadXML(strXml) Call objDoc.documentElement.setAttribute(\ Call objDoc.documentElement.setAttribute(\ strXml = objDoc.xml set objDoc = nothing Call m_oServer.SaveAccessories(strXml, cnn, ErrDesc) If ErrDesc <> \ MsgBox ErrDesc End If 备注: 蓝字部分如果不是新增,则可以不写 VoucherTypeID 如果没有更改(即和单据模版一致)也可以不用设置 VoucherID 表示单据主键值的value,可以是组合 2005001{#}003 ,顺序和前面的vchtblPrimarykeyNames 顺序一致 如果是单据删除 , Call m_oServer.SaveAccessories(strXml, cnn, ErrDesc) 删除附件 strXML = \3) 初始化模版代码部分 '设置单据数据源对象 单据数据源对象是单据的数据访问组件,web版使用的时候需要自己实现这个接口 Dim m_oDataSource As Object Set m_oDataSource = CreateObject(\ If m_oDataSource Is Nothing Then MsgBox \设置单据数据源对象Fail!\渣昫\ End If m_oDataSource.SetLogin m_oLogin Set ctlVoucher1.SetDataSource = m_oDataSource www.yonyou.com

U8知识库文档

表体附件

1:870单据格式设计器中可以设置字段的参照类型,需要指定一个文本字段的参照类型为附件

2:需要配置应用服务器的文件服务器设置。

3:如果需要显示的支持该功能,需要在单据模板中增加一条文本类型,参

照类型为附件的记录

表体定位

1:Toolbar 增加按钮 定位 2:按钮响应事件代码 ctlVoucher1.ShowFindDlg 需要根据自己单据的状态设置按钮的状态

表体固定行 单据控件设计态时设置ShowFIxColer =true 表体排序 单据控件设计态时设置ShowSorter =true 表体汇总

1:Toolbar 增加按钮 汇总 2: 按钮响应事件代码

Call ctlVoucher1.SHowAggregateSetupDlg 需要根据自己单据的状态设置按钮的状态,只有在查看状态可用。 表体批改

Me.ctlVoucher1. ShowBatchModify ()

单据内容模板和草稿

单据内容模板和草稿主要有以下功能:

1:用户可以把已有的单据保存为模板,以利于下次内容差不多的情况下,可以快速使用模板,简单修改就可以了,类似于单据复制,但是单据复制一般是完整的单据表头、或者表体、或者整单,模板可以是任意的部分内容。类似于缺省值的功能。

2:用户可以把录入一部分的单据暂存为草稿,下次有时间的时候接着录入。

示例 1、声明模板助手对象 Private WithEvents m_oHelper As Helper '单据助手对象 2、响应打开模板或者草稿的事件 Private Sub m_oHelper_LoadFromTemplate(ByVal enumType As VoucherHelper.TemplateModes, ByVal TemplateID As String, oDomHead As Variant, oDomBody As Variant, oOtherDom As Variant) m_sCurrentDraftID = TemplateID ctlVoucher1.setVoucherDataXML oDomHead, oDomBody www.yonyou.com

U8知识库文档

End Sub 3、增加六个按钮 Case 5 '保存为草稿 SaveAsDraft DraftMode Case 6 '从草稿打开 OpenFromDraft DraftMode Case 7 m_oHelper.DeleteDraftByID DraftMode, m_sCurrentDraftID Case 8 '保存为模板 SaveAsDraft TemplateMode Case 9 '从模板打开 OpenFromDraft TemplateMode Case 10 删除草稿,用于草稿单据正式保存以后 m_oHelper.DeleteDraftByID TemplateMode, m_sCurrentDraftID Case 11 草稿或者模板管理 m_oHelper.DraftsManagement TemplateMode, m_bill(cboBill.ListIndex) Sub OpenFromDraft(ByVal nMode As TemplateModes) Dim sCardNum As String sCardNum = m_bill(cboBill.ListIndex) Call m_oHelper.GetDraftList(nMode, sCardNum) End Sub Sub SaveAsDraft(ByVal nMode As TemplateModes) Dim sCardNum As String sCardNum = m_bill(cboBill.ListIndex) Dim str As String Dim DomHead As DOMDocument Dim DomBody As DOMDocument Call ctlVoucher1.getVoucherDataXML(DomHead, DomBody) MsgBox \草稿编号:\& m_oHelper.SaveAsDraft(nMode, sCardNum, ctlVoucher1.GetVoucherState().sTitle, DomHead, DomBody) End Sub 单据应用状态图章 1、 状态图章是什么?

单据状态图章是指单据标题区左肩上用来表示单据当前状态的图标或文字。

www.yonyou.com

U8知识库文档

2、 状态图章包括哪些? 状态组(1、2、3) 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 3

状态名称 已复核 已审核 支付成功 支付失败 支付不明 开立 审核中 关闭 已记账 记账中 锁定 复核中 作废 变更 变更审批中 生效中 生效 结案 申报 未生效 生效态 自由态 结案态 核销 锁定开立 锁定审核中 提交成功 提交不明 提交失败 终审不同意 现付 现结 结算 Key值 Reviewed Approved 备注 PaySuccess PayFailed PayUnKnown Opening Approving Closed Charged Charging Locked Reviewing Invalid Changing ChangeAuditing Effecting Effected Cased Declare Noteffective Effectivestatus Freedomstatus Closedstatus Cancel Lockedopening Lockedapproving SubmitSuccess SubmitUnknow SubmitFailed disagreement CashPayment CashSettlement Settled 不可单独存在 改为“已申报” 改为“生效” 改为“开立” 改为“结案”

目前水印的代码支持两种方案,各业务组可根据情况自行选择:

方案一为业务组预置状态判断规则,需要改变水印时调用单据控件接口,由平台判断该显示哪个水印;

www.yonyou.com

U8知识库文档

方案二为不预置状态判断规则,由业务组调用单据控件接口,自行传入要显示的水印。 3、 状态图章如何设置(预置数据库方式)?

预置水印判断逻辑数据(预置脚本样例)

说明:描述每种状态对应的规则:一个规则由一个或多个字段决定,判断一个规则是否满足时要判断这个规则的所有字段条件。

示例: cRuleID

cRuleCode 关闭 变更审核中 变更审核中 变更审核中 审核中 审核中 已审核 已审核 记账中 记账中 已记账 cFieldName cConditiHaveCouionType nt notblanccloser string -1 k notblancverifier string -1 k notblanchanger string -1 k cchangervstring blank -1 erifer cverifier string blank -1 iswfctronint value -1 l notblancverifier string -1 k ccloser string blank -1 cbaccouteblank 1 r cbaccouteNotblan0 r k cbaccoutenotblan0 r k cFieldType value 1 ? iGroup是分组信息,标题后面显示最多三组图章,这里的iGroup代表要设置第几组图

章,从1开始,只能是1、2、3三个中的一个(因为只支持三个分组)

? cSection是代表这个分组中的规则是对表头起作用还是对表体起作用的,只能是T或者

? 设置脚本时,cPic这个字段只需要写Icons文件夹的文件名即可,不要加上扩展名,和

Toolbar上按钮预置图片一样,都没有图片扩展名,默认都是Icons文件夹里面的gif文件

? 一定要注意iPriority这个字段,开始设置时可以以10为单位,这样方便将来再在里面

扩展其他规则,然后从高到底设置:比如一个单据可能经过的状态是未审核、审核中、已审核、关闭,那么未审核可以设置100,审核中可以设置90,已审核可以80、这样往下排。因为平台取数据的顺序时会order by

www.yonyou.com

U8知识库文档

示例代码 ‘SetVoucherDataXML之后调用单据控件方法 组件接口 Public Function SetStampAll() As Boolean 示例: ctlVoucher.getVoucherDataXML domHeadDatas, domBodyDatas SetVoucherTemplate PrnV_ID(CboVtId.ListIndex) ctlVoucher.setVoucherDataXML domHeadDatas, domBodyDatas Call ctlVoucher.SetStampAll()

4、 状态图章如何设置(直接调用方式)?

示例代码 代码示例(红色部分为新增水印处理代码) ctlVoucher.getVoucherDataXML domHeadDatas, domBodyDatas SetVoucherTemplate PrnV_ID(CboVtId.ListIndex) ctlVoucher.setVoucherDataXML domHeadDatas, domBodyDatas Call ctlVoucher.SetStampEx(\ 参数传入规则: ? 模块号(如供应链为GXL)+“.”+要显示的水印(如审核为Approved) ? 如果要显示多个水印,则依据上述规则传入多个,中间用“,”(逗点)隔开,上述代码示例中为同时显示“审核”,“现付”,“结算”三个水印。注意传入的顺序,平台的水印只会在对应的分组中查找,若将“现付”传入第一组,则不会显示该水印 ‘SetVoucherDataXML之后调用单据控件方法 Public Function SetStampEx(ByVal StampStr As String) As Boolean

www.yonyou.com

U8知识库文档

状态描述 Dim GXL_cVoucherStatus_US As String, GXL_cVoucherStatus_CN As String, GXL_cVoucherStatus_IMG As String, GXL_cVoucherStatus_TW As String GXL_cVoucherStatus_US = \ting,Closed,Effecting,Effected,Cased,Declare,Noteffective,Effectivestatus,Freedomstatus,Closedstatus,Cancel,Lockedopening,Lockedapproving,disagreement\ GXL_cVoucherStatus_CN = \开立,锁定,复核中,已复核,审核中,已审核,作废,变更,变更审批中,已关闭,生效中,生效,结案,已申报,未生效,生效,开立,结案,核销,锁定开立,锁定审核中,终审不同意\ GXL_cVoucherStatus_TW = \開立,鎖定,覆核中,已覆核,審核中,已審核,作廢,變更,變更審批中,已關閉,生效中,生效,結案,已申報,未生效,生效,開立,結案,核銷,鎖定開立,鎖定審核中,終審不同意\ GXL_cVoucherStatus_IMG = \ting,Closed,Effecting,Effected,Cased,Declare,Noteffective,Effectivestatus,Freedomstatus,Closedstatus,Cancel,Lockedopening,Lockedapproving,disagreement\ Dim GXL_cBussinessStatus_US As String, GXL_cBussinessStatus_CN As String, GXL_cBussinessStatus_IMG As String, GXL_cBussinessStatus_TW As String GXL_cBussinessStatus_US = \ GXL_cBussinessStatus_CN = \现付,现结\ GXL_cBussinessStatus_TW = \現付,現結\ GXL_cBussinessStatus_IMG = \ Dim GXL_cSettledStaus_US As String, GXL_cSettledStaus_CN As String, GXL_cSettledStaus_ING As String, GXL_cSettledStaus_TW As String GXL_cSettledStaus_US = \ GXL_cSettledStaus_CN = \结算\ GXL_cSettledStaus_TW = \結算\ GXL_cSettledStaus_ING = \ Dim CW_cVoucherStatus_US As String, CW_cVoucherStatus_CN As String, CW_cVoucherStatus_IMG As String, CW_cVoucherStatus_TW As String CW_cVoucherStatus_US = \ged,Charging,SubmitSuccess,SubmitUnknow,SubmitFailed\ CW_cVoucherStatus_CN = \已复核,已审核,支付成功,支付失败,支付不明,开立,审核中,已关闭,已记账,记账中,提交成功,提交不明,提交失败\ CW_cVoucherStatus_TW = \已覆核,已審核,支付成功,支付失敗,支付不明,開立,審核中,已關閉,已記帳,記帳中,提交成功,提交不明,提交失敗\ CW_cVoucherStatus_IMG = \ged,Charging,SubmitSuccess,SubmitUnknow,SubmitFailed\ Dim FC_cVoucherStatus_US As String, FC_cVoucherStatus_CN As String, FC_cVoucherStatus_IMG As String, FC_cVoucherStatus_TW As String FC_cVoucherStatus_US = \ www.yonyou.com

U8知识库文档

FC_cVoucherStatus_CN = \开立,锁定,审核中,已审核,已关闭\ FC_cVoucherStatus_TW = \開立,鎖定,審核中,已審核,已關閉\ FC_cVoucherStatus_IMG = \ 示例 Public Function Init(ByVal oLogin As Object, ByVal sCardNum As String) As Boolean Set m_oLogin = oLogin m_sCardNum = sCardNum m_sSubID = m_oLogin.cSub_Id InitPlugin Init = m_bCreatePlugin End Function '''从这里开始为二次开发的接口函数 Public Sub headBrowUser(ByRef Voucher As Object, ByVal Index As Variant, sRet As Variant, ByRef referPara As ReferParameter, ByRef bCancel As Boolean) On Error Resume Next ‘参数设置见单据控件的事件描述 End Sub Public Sub bodyBrowUser(ByRef Voucher As Object, ByVal Row As Long, ByVal Col As Long, sRet As Variant, ByRef referPara As ReferParameter, ByRef bCancel As Boolean) On Error Resume Next ‘参数设置见单据控件的事件描述 End Sub Public Sub bodyCellCheck(ByRef Voucher As Object, RetValue As Variant, bChanged As Long, ByVal r As Long, ByVal c As Long, ByRef referPara As ReferParameter, ByRef bCancel As Boolean) On Error Resume Next ‘参数设置见单据控件的事件描述 End Sub Public Sub headCellCheck(ByRef Voucher As Object, Index As Variant, RetValue As String, bChanged As CheckRet, ByRef referPara As ReferParameter, ByRef bCancel As Boolean) On Error Resume Next ‘参数设置见单据控件的事件描述 End Sub Public Sub Click(ByRef Voucher As Object, section As SectionsConstants, ByVal Index As Long, ByRef bCancel As Boolean) On Error Resume Next ‘参数设置见单据控件的事件描述 End Sub Public Sub DblClick(ByRef Voucher As Object, section As On Error Resume Next SectionsConstants, ByVal Index As Long, ByRef bCancel As Boolean) www.yonyou.com U8知识库文档

End Sub Public Sub RowColChange(ByRef Voucher As Object) On Error Resume Next ‘参数设置见单据控件的事件描述 End Sub Public Sub ModifyAuthString(ByRef Voucher As Object, ByRef sAuthString As String) On Error Resume Next ‘参数设置见单据控件的事件描述 End Sub

单据二次开发

组件关系

单据控件 单据插件管理 销售订单插件 采购订单插件 采购入库单插件

插件配置文件的说明

位置: u8安装盘下的c:\%u8soft\\VoucherPlugin.config 格式:

注、配置文件最终放到数据库中,门户启动的时候生成文件

年度data 库select * from dbo.VoucherPlugins 支持接口

www.yonyou.com

U8知识库文档

bodyBrowUser headBrowUser bodyCellCheck headCellCheck Click DblClick 开发步骤

相关知识

列举与该组件或API有密切关联的其他知识

www.yonyou.com