U8开发之单据控件_第1页
U8开发之单据控件_第2页
U8开发之单据控件_第3页
U8开发之单据控件_第4页
U8开发之单据控件_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

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

文档简介

本文格式为Word版,下载可任意编辑——U8开发之单据控件U8知识库文档

U8开发之单据控件

摘要

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

什么是单据控件?

基本概念及其关系

单据[Voucher]1单据工具栏VoucherToolbar1标题拦[CaptionBand]0..n快速功能[Quickbutton]0..1单头[Header]0..10..n单体[Detail]单体工具栏[DetailToolbar]0..1单尾[Footer]1..n0..1助手视图[SidePanel]主题[SubjectPanel]

.

U8知识库文档

排版与布局规范

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

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

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

单尾在显示空间底对齐。

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

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

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

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

目标

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

单据控件特性(V11.0)

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

.

U8知识库文档

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

单据标题栏[CAPTIONBAND]

?单据名称居中显示。

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

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

左肩快速功能按钮

附件

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

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

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

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

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

.

U8知识库文档

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

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

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

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

右肩快速功能按钮

刷新

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

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

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

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

同。

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

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

可用。快速定位

?????

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

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

?单据列表联查进入单据时,快速探寻框显示“列表联查〞,单据定位的范围是

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

.

U8知识库文档

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

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

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

单头

总体规范

?自适应显示空间。

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

空间。

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

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

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

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

单体

总体规范

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

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

.

U8知识库文档

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

单体工具栏

总体规范

??????

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

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

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

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

分组规范

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

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

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

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

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

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

?都为普通小按钮。

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

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

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

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

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

.

U8知识库文档

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

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

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

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

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

留。

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

保存。

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

隐蔽。

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

单尾

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

.

U8知识库文档

关。

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

数据字典

a)数据字典

单据活动文本信息表(voucherfiexdlabel_lang)(UFData库)字段名AutoIdLocalidPrintIntervalnActionTextsColVT_IDFontStatenActionSourcePubuftsReserveSegTitlePosnRowXWidthTextHeightYPrintUcasenBorder字段类型IntNvarchar(32)Nvarchar(200)IntNvarchar(100)IntNvarchar(40)IntTimestampBitIntIntIntNvarchar(1000)IntIntBitInt说明自动编号语言ID,zh-CN(简体中文),zh-TW(繁体中文),en-US(英文)套打属性活动文本表体指定列单据模板号单据控件字体活动文本来源事件戳是否保存字段标题占位表体指定行数左坐标宽度文本内容高度顶位置打印成大写边框单据表体附件信息表,附件保存于文件服务器(VoucherBodyAccessories)(UFData库)字段名IDCellIDCardnumFileNameFileIDnOrder字段类型uniqueidentifieruniqueidentifierNvarchar(50)Nvarchar(50)Nvarchar(50)Int说明GUID表体单元格的ID单据类型号文件名文件ID,文件服务器有对应的值序号单据设置信息表(VoucherCustomerInfo)(UFData库)字段名fchrIDfchrXmlInfo字段类型Nvarchar(50)Ntext说明GUID使用者相关的信息.

U8知识库文档

fchrOperatorfchrTypefchrVoucherTemplateTypefchrVoucherTypeNvarchar(20)Nvarchar(50)Nvarchar(50)Nvarchar(50)操作员类型,譬如缺省打印模板信息单据模板ID单据ID说明GUID使用者相关的信息操作员类型,譬如缺省打印模板信息单据模板ID单据ID名称其他Dom信息帐套号数据类型:草稿(0),模板(1)操作员表体Dom年度信息语言信息单据草稿、模板信息表(VoucherHelper)(UFData库)(V11.0)字段名cPathcServercCreateOnsHeadDomcVoucherTypecIDcNamesOtherDomcAcc_IdiDataTypecUserIDsBodyDomcIYearcLocaleId字段类型Nvarchar(255)Nvarchar(255)DatatimetextNvarchar(100)Nvarchar(50)Nvarchar(255)TextNvarchar(3)IntNvarchar(20)TextSmallintNvarchar(32)单据模板明细信息基本表(voucheritems_base)(UFData库)字段名AutoIdIsFixedLenghtEnumTypebIMFld(V11)字段类型IntBitNvarchar(100)Tinyint说明自动编号是否定长枚举类型单据字段上显示UTU和业务通知图标的设置,0代表都不显示,1代表只显示业务通知,2代表都显示AutoFillRuleCOYFieldTypeCanDeletebsplitnBorderMaxLengthWidthBuildArchivesAliasNumPrintIntervalisSelfDefDataRuleEnumTypeStringNvarchar(1000)IntSmallintIntBitIntIntIntBitSmallintNvarchar(100)IntNvarchar(1000)Nvarchar(2000)自动填充规则顶坐标数据类型是否可删除是否支持行拆分边框最大长度单元控件宽度是否建档别名金额大写或日期单位间距是否为自定义项目数据公式枚举信息

.

U8知识库文档

VT_IDIsJoinQueryValidityCheckFieldNameLinkItCatalogbExtendedTableNameDefaultValueDataSourceReserveSegTitlePosCardItemNumcmemoEnterTypeLinkFieldPrintUpcaseShowItCanModifyFormatDataLinkTblIsNullCanNotSelectiFlagsTabIndexrefObjectNumPointIsMainReferTableUserPromptPrintCaptionHeightReferReturnFieldvValueDefaultCardNumbZeroAllowableFormatCharMaxShowLenUserCheckCardSectionpubuftsNeedSumCalcFieldIsEnumIntBitBitNvarchar(40)SmallintIntBitNvarchar(100)Nvarchar(20)IntBitNvarchar(3)Nvarchar(1000)IntNvarchar(20)BitBitBitNvarchar(20)Nvarchar(20)BitBitSmallintIntVarchar(50)IntBitNvarchar(100)Nvarchar(28)BitIntNvarchar(1000)Nvarchar(500)Nvarchar(20)BitNvarchar(1)IntNvarchar(50)Nvarchar(4)TimestampSmallintBitBit单据模版号是否关联查询是否合法性检测字段名称是否是连接域类型是否扩展字段数据表名默认值数据来源类型是否保存字段标题占位项目编码备注输入方式连接字段名是否打印成金额大写是否选择是否可修改数据项显示格式连接表名是否可空不可选标志是否启用日期时分秒响应TABLE键顺序参照ID小数位数是否为主表用户参照表名用户提醒是否打印项目标题单元控件高度参照返回字段缺省值所属单据编号是否可以为零数据分割符最大显示长度检查公式所在区域时间戳是否需要合计是否是计算得来字段是否枚举

.

U8知识库文档

COXbAutoComplete(V11.0)ReferTypeIntBitsmallint单元控件左坐标是否支持智能提醒功能是否有参照单据显示模板明细语言表(voucheritems_lang)(UFData库)字段名IDcardformula1fontstatecarditemnamecardsectioncardformula2uftscardnumfieldnamevt_idlocaleid字段类型Nvarchar(50)Nvarchar(500)Nvarchar(40)Nvarchar(500)Nvarchar(4)Nvarchar(500)timestampNvarchar(100)Nvarchar(40)intNvarchar(32)说明GUID显示名称单元控件字体项目名称所在区域工业用显示名称时间戳所属单据编号字段名称单据模版号语言ID,zh-CN(简体中文),zh-TW(繁体中文),en-US(英文)单据打印模板明细信息基本表(voucheritems_Prn_base)(UFData库)字段名AutoIdCanModifyValidityChecknBorderVT_IDCardNumReferReturnFieldFormatDataMaxLengthIsMainUserPromptBuildArchivesTabIndexIsFixedLenghtEnumTypebIMFld(V11)字段类型IntBitBitIntIntNvarchar(20)Nvarchar(1000)Nvarchar(20)IntBitNvarchar(28)BitIntBitNvarchar(100)Tinyint说明自动编号是否可修改是否合法性检测边框单据模版号所属单据编号参照返回字段数据项显示格式最大长度是否为主表用户提醒是否建档响应TABLE键顺序是否定长枚举类型单据字段上显示UTU和业务通知图标的设置,0代表都不显示,1代表只显示业务通知,2代表都显示AutoFillRuleCOYFieldTypeCanDeletebsplitNvarchar(1000)IntSmallintIntBit自动填充规则顶坐标数据类型是否可删除是否支持行拆分

.

U8知识库文档

WidthAliasNumPrintIntervalisSelfDefDataRuleEnumTypeStringIsJoinQueryFieldNameLinkItCatalogbExtendedTableNameDefaultValueDataSourceReserveSegTitlePosCardItemNumcmemoEnterTypeLinkFieldPrintUpcaseShowItLinkTblIsNullCanNotSelectiFlagsrefObjectNumPointReferTablePrintCaptionHeightvValueDefaultbZeroAllowableFormatCharMaxShowLenUserCheckCardSectionpubuftsNeedSumCalcFieldIsEnumCOXbAutoComplete(V11.0)ReferTypeIntSmallintNvarchar(100)IntNvarchar(1000)Nvarchar(2000)BitNvarchar(40)SmallintIntBitNvarchar(100)Nvarchar(20)IntBitNvarchar(3)Nvarchar(1000)IntNvarchar(20)BitBitNvarchar(20)BitBitSmallintVarchar(50)IntNvarchar(100)BitIntNvarchar(500)BitNvarchar(1)IntNvarchar(50)Nvarchar(4)TimestampSmallintBitBitIntBitsmallint单元控件宽度别名金额大写或日期单位间距是否为自定义项目数据公式枚举信息是否关联查询字段名称是否是连接域类型是否扩展字段数据表名默认值数据来源类型是否保存字段标题占位项目编码备注输入方式连接字段名是否打印成金额大写是否选择连接表名是否可空不可选标志是否启用日期时分秒参照ID小数位数用户参照表名是否打印项目标题单元控件高度缺省值是否可以为零数据分割符最大显示长度检查公式所在区域时间戳是否需要合计是否是计算得来字段是否枚举单元控件左坐标是否支持智能提醒功能是否有参照

.

U8知识库文档

单据显示模板明细语言表(voucheritems_Prn_lang)(UFData库)字段名IDcardformula1fontstatecarditemnamecardsectioncardformula2uftscardnumfieldnamevt_idlocaleid字段类型Nvarchar(50)Nvarchar(500)Nvarchar(40)Nvarchar(500)Nvarchar(4)Nvarchar(500)timestampNvarchar(100)Nvarchar(40)intNvarchar(32)说明GUID显示名称单元控件字体项目名称所在区域工业用显示名称时间戳所属单据编号字段名称单据模版号语言ID,zh-CN(简体中文),zh-TW(繁体中文),en-US(英文)单据批注信息表(VoucherNotes)(UFData库)(V11.0)字段名dCreateOncNoteIDdModifyOncVchUniqueIDcUserIDcVchTableNamecNoteContent字段类型datetimeNvarchar(50)datetimeNvarchar(64)Nvarchar(20)Nvarchar(50)Nvarchar(4000)说明创立时间主键GUID修改时间单据ID操作员业务单据存储位置信息批注内容单据信息表(vouchers_base)(UFData库)字段名CardNumberBodyWidthBodyLeftDEF_ID_PRNInventoryFieldNameBodyFKNameCardTypecHeadFuncNameNameVchListQNamepubuftsBodyHeightAuditFieldNamecBodyBusObjectIdcBodyFuncNameDEF_IDAlertAuditFieldName字段类型Varchar(100)IntintintNvarchar(40)Nvarchar(20)Nvarchar(10)Nvarchar(100)Nvarchar(20)Nvarchar(255)TimestampIntNvarchar(40)Nvarchar(100)Nvarchar(100)IntNvarchar(40)说明单据类型编码表体宽度表体左坐标默认打印单据模板号存货字段名表体主键字段名单据类型UAPUsed单据名称单据列表视图时间戳表体高度审批人字段名表体业务对象的ID,UAPUsed表体函数名,用于数据引擎表体函数名,用于数据引擎变更审批字段名

.

U8知识库文档

SelfDef1AlertFieldNamecSub_IdLocationBodyModifyBodyDefaultConditionFieldNameVoucherHeightHaveBodyGridiVT_IDFieldNameMemoBTQNameAllowDateTimeFormatiOrderIsPrintLimitedcHeadBusObjectIdSelfDef3PrintCountFieldNamecFieldAuthidvchtblPrimarykeyNamesIsAlertAuditedPrintBodyTopcIndustryBWQNameShieldReceiptNoFieldNamebAllowMulTempIsAuditedPrintVoucherWidthUpdateTimeNotAppiesAuthItemTblNamecSub_IdSelfDef2itemColvchBodyPKNameBWTblNamecDefWhereBTTblNameNvarchar(20)Nvarchar(40)Nvarchar(200)BitNvarchar(40)IntBitNvarchar(40)Nvarchar(20)Nvarchar(40)BitIntBitNvarchar(100)Nvarchar(20)Nvarchar(40)Nvarchar(100)Nvarchar(100)bitIntNvarchar(20)Nvarchar(40)BitNvarchar(30)BitBitIntDatetimeBitNvarchar(20)Nvarchar(100)Nvarchar(20)intVarchar(20)Nvarchar(100)Nvarchar(100)Nvarchar(100)自定义1变更人字段名单据模版所在的子产品表体是否可修改表体排序默认条件字段名单据高度是否有表体业务组物理表中存储单据模版编号的字段名称备注单据表头视图是否手工录入日期是否手工录入日期是否打印控制表头业务对象的ID,UAPUsed自定义3打印计数对应的字段名对应的权限ID对应的权限ID是否支持审批后打印表体顶坐标工商业标志单据表体视图是否屏蔽单据编号字段名是否多模板是否支持审批打印单据宽度更新时间是否受权限控制,用于单据模板设计器项目定义表所属模块标识串自定义2表头列数表体主键字段名单据表体表单据识别条件单据表头表单据信息语言表(vouchers_lang)(UFData库)字段名localeidcardnumber字段类型Nvarchar(32)Varchar(100)说明语言ID,zh-CN(简体中文),zh-TW(繁体中文),en-US(英文)单据类型编码.

U8知识库文档

appnameccardnameuftsNvarchar(100)Nvarchar(500)Timestamp所属模块名称所属模块名称时间戳单据水印规则对照表(VoucherStatusRuleContrapose)(UFData库)(V11.0)字段名cContraposeAutoIDcCardNumbercRuleCode字段类型intVarchar(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代表有值cConditionTypecValuecRuleIDiNOcFieldNamecRuleCodecFieldTypenVarchar(20)Nvarchar(100)Nvarchar(50)IntNvarchar(50)Nvarchar(50)Nvarchar(20)条件类型,=,,value字段对应值cConditionType为Value时考虑cValue的值规则明细索引,主键GUID一般的用不上,财务采用字段名对应规则编码字段类型单据水印规则主表(VoucherStatusRules)(UFData库)(V11.0)字段名cRuleCodeiGroup字段类型intnVarchar(20)说明规则编码--唯一值规则分组状态分组,代表不同的业务状态组(即此规则判断的状态水印是属于1单据状态,2业务状态还是3结算状态)cSectioncRuleDescriptioncPiciPriorityNvarchar(10)Nvarchar(100)Nvarchar(20)int所适用区域:表头或表体T,B规则描述状态对应图片规则级次(优先级)从高到底的优先级顺序,通用的预置以10为单位,如90,80,70,单据模板表(vouchertemplates_base)(UFData库)字段名VT_IDVT_LockVT_PageTotalVT_SelfDef2VT_BodyTopVT_ControlStyle字段类型IntBitIntNvarchar(20)IntInt说明单据模版号模板是否处于锁定状态是否打印表体合计单据自定义2表体顶坐标界面样式

.

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

.

U8知识库文档

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

主要属性

.

U8知识库文档

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

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

参数说明:参数VoucherColor备注:

下图为Voucher属性设置效果

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

Example:

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

.

U8知识库文档

参考代码PrivateSubForm_Load()Timer1.Interval=500EndSubPrivateSubTimer1_Timer()Voucher1.BackColorBkg=QBColor(Rnd*15)Voucher1.BackColorFixed=QBColor(Rnd*10)Voucher1.BackColorSel=QBColor(Rnd*10)Voucher1.BackColorSelTotal=QBColor(Rnd*10)EndSub?Col,Row,ColSel,RowSel属性

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

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

备注:明。

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

例如PublicSubCommand_Click()Voucher.Col=50Voucher.Row=20Debug.PrintVoucher1.ColDebug.PrintVoucher1.RowDebug.PrintVoucher1.ColSelDebug.PrintVoucher1.RowSelEndSub?TitleCaption,TitleFont,TitleForeColor,ToolTipText返回或设置标题各项属性值

语法:

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

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

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

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

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

参数说明:

参数Vouchervalue

描述单据控件名称数值.

U8知识库文档

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

?HeadText属性

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

voucher.HeadText(Index)=[=string]

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

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

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

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

.

U8知识库文档

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

?BodyMaxRows

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

Voucher.bodymaxRows=2

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

?BodyRows

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

voucher.BodyRows[=Value]参数描述

PublicSubCommand1-_Click()Debug.printvoucher.bodyRowsEndSub

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

主要方法

?setTemplateData方法功能:

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

.

U8知识库文档

语法:PublicSubsetTemplateData(rstTemplateAsRecordset)参数:rstTemplate:单据模版数据结果记录集备注:

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

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

例如PublicSubCommand1_Click()DimoasObjectDimrstasRecordsetSeto=CreateObject(‘UFVoucherServer85.clsVoucherTemplate’)IfoisnothingthenExitSub‘假使创立对象Fail,则退出Setrst=o.GetTemplateData2(数据库连接(Connection),单据(CardNumber),模版号(VT_ID))Voucher.SetTemplateData(rst)‘设置模版EndSub?setVoucherDataXML方法功能:

设置单据数据到单据控件上。语法:PublicFunctionsetVoucherDataXML(oDOmHeadAsVariant,oDomBodyAsVariant)AsBoolean参数:oDOmHead:单据表头Dom信息oDomBody:单据表体Dom信息备注:

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

例如PrivateSubSetVoucherData()OnErrorResumeNextDimDomHeadAsNewDOMDocumentDimDomBodyAsNewDOMDocumentDimrstHeadAsNewRecordsetDimrstBodyAsNewRecordsetDimsSql1AsStringDimsSql2AsStringScreen.MousePointer=vbHourglassrstHead.CursorLocation=adUseClientrstBody.CursorLocation=adUseClient

.

U8知识库文档

'Select*,''aseditpropFromSaleOrderSQwhereid=3orderbyautoid'Select*fromSaleOrderQwhereid=3Debug.Print\从数据库加载数据...\sSql1=\top1*,''aseditpropFromctlVoucher1.GetVoucherState.sBtViewTablesSql2=\top3*,''aseditpropFromctlVoucher1.GetVoucherState.sBwViewTablerstHead.OpensSql1,m_strConnect,adUseClient,adOpenStatic,adCmdTextrstBody.OpensSql2,m_strConnect,adOpenStatic,adLockOptimisticrstHead.SaveDomHead,adPersistXMLrstBody.SaveDomBody,adPersistXMLDomHead.Save\DomBody.Save\'domhead.Load\'dombody.Load\'dombody.Save\Debug.Print\正在加载数据到单据控件中...\ctlVoucher1.setVoucherDataXMLDomHead,DomBodyDebug.Print\操作完成\Screen.MousePointer=vbDefaultEndSub

?AddLine方法功能:在单据表体增加一行语法:PublicSubAddLine(optionalnRowasLong,OptionsLineasString=’‘,OptionRelativeasAddLineState=ALSLast)

?DelLine方法功能:单据表体删除指定的行,假使没指定行删除当前所在的行。语法:PublicSubDelLine(OptionalByvalnRowasLong)参数:nRow为单据表体的具体行号返回值:无

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

语法:PublicSubAddNew(ByvaleModeasAddNewMode)参数:eMode为新增时的增加模式返回值:无

\\++.

U8知识库文档

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

?GetVoucherDataXML方法功能:得到单据数据DOM对象语法:PublicSubgetVoucherData(oDomheadAsVariant,oDomBodyAsVariant)参数:rstHeader:表头数据DOM对象(MSXML.DOMDocument对象)rstBody:表体数据DOM对象(MSXML.DOMDocument对象)返回值:无

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

?GetLineDom方法

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

?PrintVoucherEx方法功能:打印单据数据语法:PublicFunctionPrintVoucherEx(ByValrsTemplateAsVariant,ByValrsFieldAsVariant,OptionalByValbShowPrintDlgAsBoolean=True)AsLong参数:

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

例如PublicSubCommand1-_Click()DimoasObjectDimrsTemplateasRecordsetDimrsFieldasRecordsetSeto=CreateObject(‘UFVoucherServer85.clsVoucherTemplate’)IfoisnothingthenExitSub‘假使创立对象Fail,则退出SetrsTemplate=o.GetTemplateData2(数据库连接(Connection),单据(CardNumber),模版号(VT_ID))SetrsField=o.GetFixedData(数据库连接字符串(String),模版号(VT_ID))

.

U8知识库文档

Callvoucher.PrintVoucherEx(rsTemplate,rsField,True)’显示打印对话框EndSub?ExportToFile方法

功能:导出单据单据数据到指定的文件语法:PublicFunctionExportToFile(ByValrsTemplateAsVariant,ByValrsFieldAsVariant)AsBoolean

例如PublicSubCommand1-_Click()DimoasObjectDimrsTemplateasRecordsetDimrsFieldasRecordsetSeto=CreateObject(‘UFVoucherServer85.clsVoucherTemplate’)IfoisnothingthenExitSub’假使创立对象Fail,则退出SetrsTemplate=o.GetTemplateData2(数据库连接(Connection),单据(CardNumber),模版号(VT_ID))SetrsField=o.GetFixedData(数据库连接字符串(String),模版号(VT_ID))Callvoucher.ExportToFile(rsTemplate,rsField)‘导出文件EndSub参数:

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

主要事件

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

PrivateSubvoucher_headBrowUser(ByValIndexAsVariant,sRetAsVariant,ByRefreferParaAsReferParameter)EndSub参数说明:参数VoucherindexsRetreferPara

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

U8知识库文档

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

PrivateSubvoucher_bodyBrowUser(ByValrowAsLong,ByValcolAsLong,sRetAsvariant)EndSub参数说明:参数VoucherrowcolsRet

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

语法:PrivateSubVoucher_bodyCellCheck(RetValueAsString,bChangedAsVoucherControl85.CheckRet,ByValrAsLong,ByValcAsLong)

EndSub

参数说明:

参数VoucherRetValuebChangedrowcol

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

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

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

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

后,将会激活当前事件

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

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

.

U8知识库文档

应用案例

表头附件

.

U8知识库文档

例如1)Toolbar增加按钮附件按钮响应事件代码Me.ctlVoucher1.SelectFile()需要根据自己单据的状态设置按钮的状态2)单据保存部分在原来的单据内容保存完成以后,事务提交以前增减保存附件的代码DimcnnAsNewADODB.Connectioncnn.Openm_strConnectDimErrDescAsStringDimblnsaveAccAsBooleanDimstrXmlAsStringstrXml=ctlVoucher1.GetAccessoriesInfo(ErrDesc)IfErrDesc\MsgBoxErrDescEndIfDimm_oServerasUFVoucherServer85.clsVoucherTemplateDimobjDocAsNewMSXML2.DOMDocument30CallobjDoc.loadXML(strXml)CallobjDoc.documentElement.setAttribute(\CallobjDoc.documentElement.setAttribute(\strXml=objDoc.xmlsetobjDoc=nothingCallm_oServer.SaveAccessories(strXml,cnn,ErrDesc)IfErrDesc\MsgBoxErrDescEndIf备注:蓝字部分假使不是新增,则可以不写VoucherTypeID假使没有更改(即和单据模版一致)也可以不用设置VoucherID表示单据主键值的value,可以是组合2023001{#}003,顺序和前面的vchtblPrimarykeyNames顺序一致假使是单据删除,Callm_oServer.SaveAccessories(strXml,cnn,ErrDesc)删除附件strXML=\3)初始化模版代码部分'设置单据数据源对象单据数据源对象是单据的数据访问组件,web版使用的时候需要自己实现这个接口Dimm_oDataSourceAsObjectSetm_oDataSource=CreateObject(\Ifm_oDataSourceIsNothingThenMsgBox\设置单据数据源对象Fail!\渣昫\EndIfm_oDataSource.SetLoginm_oLoginSetctlVoucher1.SetDataSource=m_oDataSource.

U8知识库文档

表体附件

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

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

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

照类型为附件的记录

表体定位

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

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

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

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

Me.ctlVoucher1.ShowBatchModify()

单据内容模板和草稿

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

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

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

例如1、声明模板助手对象PrivateWithEventsm_oHelperAsHelper'单据助手对象2、响应开启模板或者草稿的事件PrivateSubm_oHelper_LoadFromTemplate(ByValenumTypeAsVoucherHelper.TemplateModes,ByValTemplateIDAsString,oDomHeadAsVariant,oDomBodyAsVariant,oOtherDomAsVariant)m_sCurrentDraftID=TemplateIDctlVoucher1.setVoucherDataXMLoDomHead,oDomBody.

U8知识库文档

EndSub3、增加六个按钮Case5'保存为草稿SaveAsDraftDraftModeCase6'从草稿开启OpenFromDraftDraftModeCase7m_oHelper.DeleteDraftByIDDraftMode,m_sCurrentDraftIDCase8'保存为模板SaveAsDraftTemplateModeCase9'从模板开启OpenFromDraftTemplateModeCase10删除草稿,用于草稿单据正式保存以后m_oHelper.DeleteDraftByIDTemplateMode,m_sCurrentDraftIDCase11草稿或者模板管理m_oHelper.DraftsManagementTemplateMode,m_bill(cboBill.ListIndex)SubOpenFromDraft(ByValnModeAsTemplateModes)DimsCardNumAsStringsCardNum=m_bill(cboBill.ListIndex)Callm_oHelper.GetDraftList(nMode,sCardNum)EndSubSubSaveAsDraft(ByValnModeAsTemplateModes)DimsCardNumAsStringsCardNum=m_bill(cboBill.ListIndex)DimstrAsStringDimDomHeadAsDOMDocumentDimDomBodyAsDOMDocumentCallctlVoucher1.getVoucherDataXML(DomHead,DomBody)MsgBox\草稿编号:\&m_oHelper.SaveAsDraft(nMode,sCardNum,ctlVoucher1.GetVoucherState().sTitle,DomHead,DomBody)EndSub单据应用状态图章1、状态图章是什么?

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

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论