U8开发之单据列表控件
用友U8V11.0行业插件说明列表
公共 公共 公共 公共 公共 公共 公共 公共 公共 公共 公共 机械 机械 机械 电子 电子 电子 电子 电子 电子 交通运输
插件名称 运输管理 跨账套查询
领域
供应链 财务
机械
√ √ √
电子
√ √
交通运输
√
服装
√
化工
√ √
食品
√ √
生产订单、委 外订单子件调 供应链、 生产制造 整 生产规划
√ √
2013-1-28 2013-1-28 2013-1-28 2013-1-28 2013-1-28 2013-1-28 2013-1-30 2013-1-30 2013-1-30 2013-1-30 2013-1-30
√
2013-1-30
2013-1-30 2013-1-30 2013-1-30 2013-1-30 2013-1-30 2013-1-30 2013-1-30 2013-1-30 2013-1-30 2013-1-30 2013-1-30
供应链 供应链 供应链 供应链 供应链
生产计划通知 生产制造 车间管理 生产制造 计件工资 资质管理 渠道管理 结算管理 物料重计 GMP基础应用 GMP管理 文件管理 医药费用管理 GSP质量管理 第三方物流行 业 货代物流管理 公路零担解决 方案 项目管理
生产制造 供应链 供应链 供应链 生产制造 供应链 供应链、 生产制造 供应链 财务 供应链
食品 食品 服装 服装 服装 服装 服装 服装 服装 服装 服装 医药 医药 医药 医药 医药 医药 医药 医药 医药 服务 服务 服务 服务 箱包
农户收购
供应链 √ √ √ √ √ √ √ √ √
√ √
生产用料分摊 生产制造 二维表单 供应链 样品管理 销售业务 采购委外业务 库存业务 进程管理
U8 单据二次开发插件设计图
如果 cancel为 true,则 不调用业 务组件。
消息1 消息2 HeadbrowUser
消息4
VoucherPluginProxy::PluginProxy -m_oPlugin : Object -m_oLogin : Object -m_sSubID : String -m_sCardNum : String -m_colPlugins( ) : Collection -m_bCreatePlugin : Boolean +Init(in oLogin : Object, in sCardNum : String) : Boolean +headBrowUser(inout Voucher : Object, in Index : Variant, in sRet : Variant, inout referPara : ReferParameter, inout bCancel : Boolean) +bodyBrowUser(inout Voucher : Object, in Row : Long, in Col : Long, in sRet : Variant, inout referPara : ReferParameter, inout bCancel : Boolean) +bodyCellCheck(inout Voucher : Object, in RetValue : Variant, in bChanged : Long, in r : Long, in c : Long, inout referPara : ReferParameter, inout bCancel : Boolean) +headCellCheck(inout Voucher : Object, in Index : Variant, in RetValue : String, in bChanged : CheckRet, inout referPara : ReferParameter, inout bCancel : Boolean) +Click(inout Voucher : Object, in section : SectionsConstants, in Index : Long, inout bCancel : Boolean) +DblClick(inout Voucher : Object, in section : SectionsConstants, in Index : Long, inout bCancel : Boolean) -InitPlugin() -CreatePlugins() -Class_Initialize() -getAttribute(in nd : IXMLDOMElement, in name : Variant) : Variant -Class_Terminate()
U8_开发单据和单据列表总结_871
1、单据页面初始化:点击“部门费用拆分表”执行后台代码块:先定义变量icbc_deptfy,在类模块clsVoucher_CO (clsVoucher_co.cls)中Enum V oucherTypeSAicbc_deptfy ' ================jiang============== End Enum定义变量部门预算,在类模块clsVoucherLoad_BO(clsVoucherLoad_BO.cls)中Public Enum enuSA VType部门费用拆分表= "100016" '================jiang============== End Enum调用clsproductfacade模块中下面的callFunction方法Public Function CallFunction(ByV al cMenuId As String, ByV al cMenuName As String, ByV al cAuthId As String, ByV al cCmdLine As String) As ObjectSelect Case cMenuIdCase "MT0101", "MT0102", "MT0103", "MT0201", "MT0202"gd_frmMain.m_oMenu_OnCommand cMenuId, cMenuName, cAuthId, cCmdLineEnd Select调用frmMain(主窗体.frm)中下面的m_oMenu_OnCommand方法Public Sub m_oMenu_OnCommand(ByV al cMenuId As String, ByV al cMenuName As String, ByV al cAuthId As String, ByV al cCmdLine As String)添加代码:Select Case cMenuIdCase "MT0201" '部门费用拆分表miBJD_Click icbc_deptfy, cAuthId, , strV ouchID调用方法miBJD_ClickPublic Sub miBJD_Click(strV ouType As V oucherTypeSA, strTaskId As String, Optional iMode As Integer, Optional SBVID As String, Optional cSBVCode As String, Optional mDom As DOMDocument)添加代码:Select Case strV ouTypeCase icbc_deptfy '================jiang==============strFrmCaption = MLRsSvr.GetString("U8.ICBC.Mt.0299") '"部门费用拆分表"tmpTaskID = "MT020101" '权限IDsType = "100016" '模板编号调用frmVouchNew(单据模板.frm)中ShowVoucher方法Public Function ShowV oucher(V oucherType As V oucherTypeSA, Optional vV oucherId As V ariant, Optional iMode As Integer)添加代码:Select Case V oucherTypeCase icbc_deptfy '部门费用拆分表strV ouchType = "100016"strCardNum = "KM01"Me.caption = MLRsSvr.GetString("U8.ICBC.Mt.0299") '"部门费用拆分表"调用clsVoucher_CO (clsVoucher_CO.cls)中的GetVouchInf方法Public Function GetV ouchInf(m_enmV oucherType As V oucherTypeSA, _Select Case m_enmV oucherTypeCase icbc_deptfy '部门费用拆分表sV ouchType = "100016"sCardNum = "KM01"bV ouchFirst = FalsestrTable = "icbc_acv"调用frmVouchNew(单据模板.frm)中SetButtonStatus方法Private Sub SetButtonStatus(ButtonKey As String)Select Case LCase(ButtonKey)Case "modify"Select Case LCase(strVouchT ype)Case "100016"tbrvoucher.buttons("Modify").Enabled = Falsetbrvoucher.buttons("Cancel").Enabled = T ruetbrvoucher.buttons("AddRow").Enabled = T ruetbrvoucher.buttons("DelRow").Enabled = T ruetbrvoucher.buttons("Erase").Enabled = Falsetbrvoucher.buttons("Add").Enabled = Falsetbrvoucher.buttons("UnSure").Enabled = Falsetbrvoucher.buttons("Sure").Enabled = Falsetbrvoucher.buttons("T oFirst").Enabled = Falsetbrvoucher.buttons("T oPrevious").Enabled = Falsetbrvoucher.buttons("T oNext").Enabled = Falsetbrvoucher.buttons("T oLast").Enabled = FalseEnd SelectCase "add"Select Case LCase(strVouchT ype)Case "100016"tbrvoucher.buttons("Add").Enabled = Falsetbrvoucher.buttons("Save").Enabled = T ruetbrvoucher.buttons("Cancel").Enabled = T ruetbrvoucher.buttons("AddRow").Enabled = T ruetbrvoucher.buttons("DelRow").Enabled = T ruetbrvoucher.buttons("Modify").Enabled = Falsetbrvoucher.buttons("Erase").Enabled = Falsetbrvoucher.buttons("UnSure").Enabled = Falsetbrvoucher.buttons("Sure").Enabled = Falsetbrvoucher.buttons("T oFirst").Enabled = Falsetbrvoucher.buttons("T oPrevious").Enabled = Falsetbrvoucher.buttons("T oNext").Enabled = Falsetbrvoucher.buttons("T oLast").Enabled = FalseEnd SelectCase "cancel", "save"Select Case LCase(strVouchT ype)Case "100016"ComboVTID.Visible = T rueComboDJMB.Visible = T rueLabeldjmb.caption = MLRsSvr.GetString("U8.ICBC.Mt.0302") '"打印模版:"tbrvoucher.buttons("T oFirst").Visible = T ruetbrvoucher.buttons("T oPrevious").Visible = T ruetbrvoucher.buttons("T oNext").Visible = T ruetbrvoucher.buttons("T oLast").Visible = T ruetbrvoucher.buttons("Save").Visible = T ruetbrvoucher.buttons("Cancel").Visible = T ruetbrvoucher.buttons("DelRow").Visible = T ruetbrvoucher.buttons("Output").Visible = T rue '输出tbrvoucher.buttons("Modify").Visible = T rue '修改tbrvoucher.buttons("Save").Enabled = Falsetbrvoucher.buttons("Cancel").Enabled = Falsetbrvoucher.buttons("AddRow").Enabled = Falsetbrvoucher.buttons("DelRow").Enabled = Falsetbrvoucher.buttons("Modify").Enabled = T ruetbrvoucher.buttons("Erase").Enabled = T ruetbrvoucher.buttons("Add").Enabled = T ruetbrvoucher.buttons("Ordercode").Visible = Falsetbrvoucher.buttons("ImportPur").Visible = Falsetbrvoucher.buttons("ImportExcel").Visible = Falsetbrvoucher.buttons("MakeFACardNumber").Visible = Falsetbrvoucher.buttons("MakeFACard").Visible = Falsetbrvoucher.buttons("UnSure").Enabled = T ruetbrvoucher.buttons("Sure").Enabled = T ruetbrvoucher.buttons("T oFirst").Enabled = T ruetbrvoucher.buttons("T oPrevious").Enabled = T ruetbrvoucher.buttons("T oNext").Enabled = T ruetbrvoucher.buttons("T oLast").Enabled = T rueEnd Select调用ClsVoucher_CO (clsVoucher_ CO.cls)中的GetVoucherData方法Public Function GetV oucherData(DomHead As DOMDocument, DomBody As DOMDocument, Optional V ouchID As V ariant) As String添加代码:Select Case m_enmV oucherTypeCase icbc_deptfy '部门费用拆分表clsV ouchDMO.GetV oucherDataWEB domhead, dombody, m_Conn, 部门费用拆分表, False, strErrMsg, V ouchID调用clsVouchDMO(clsVouchDMO.cls)中的getkey方法Private Function getkey(ByV al uvdV ouchType As enuSA VType, ByV al bReturn As Boolean, CN As ADODB.Connection) As Boolean添加代码:Select Case uvdV ouchType'================jiang==============Case 部门费用拆分表strV ouchType = "100016"sKeyHead = "id"sKeyBody = "id"sMView Head = "icbc_acv"sMView Body = "icbc_acvs"sViewHead = "v_icbc_acv"sViewBody = "v_icbc_acvs"sBodyID = "autoid"调用ModVoucher(ModVoucher.bas)中的G etVouchInfo方法Public Function GetV ouchInfo(strV ouchType As String, strMainIDName As String, _ strSubIDName As String, Optional errMsg As String, Optional cMainTable As String, _ Optional cSubTable As String) As Boolean添加代码:Select Case strV ouchType'================jiang==============Case "100016" '部门费用拆分表strMainIDName = "id"strSubIDName = "id"cMainTable = "icbc_acv"cSubTable = "icbc_acvs"调用frmVouchNew(单据模板.frm)中ChangeButtonsState方法注:根据单据的要求,设置工具栏按钮的初始化时的状态''改变button的状态Private Sub ChangeButtonsState()添加代码:Select Case strV ouchType'================jiang==============Case "100016", "300016", "100018"'已审核If .headerText("auditinguser") <> "" ThenMe.tbrvoucher.buttons("UnSure").Visible = TrueMe.tbrvoucher.buttons("Sure").V isible = FalseMe.tbrvoucher.buttons("Modify").Enabled = FalseMe.tbrvoucher.buttons("Erase").Enabled = False'未审核ElseMe.tbrvoucher.buttons("Sure").V isible = TrueMe.tbrvoucher.buttons("UnSure").Visible = FalseMe.tbrvoucher.buttons("Modify").Enabled = TrueMe.tbrvoucher.buttons("Erase").Enabled = TrueEnd IfSelect Case strV ouchTypeCase "100016", "300016"If voucher.headerText("archiveno") = "" ThenMe.tbrvoucher.buttons("Modify").Enabled = FalseMe.tbrvoucher.buttons("Erase").Enabled = FalseMe.tbrvoucher.buttons("MakeFACard").Enabled = FalseEnd IfEnd Select调用ModVoucher(ModVoucher.bas)中的G etstrCardNum方法Public Function GetstrCardNum(strV ouchType As String, Optional bRed As Boolean = False, Optional bGetTrue As Boolean = False) As String添加代码:Select Case strV ouchType'================jiang==============Case "100016" '部门费用拆分表GetstrCardNum = "KM01"End Select2、点击“新增”按钮调用frmVouchNew(单据模板.frm)中的VoucherT ask方法Private Function VoucherT ask(sKey As String) As BooleanSelect Case strVouchT ype'部门费用拆分表Case "100016"Select Case sKeyCase MLRsSvr.GetString("U8.ICBC.Mt.0013")strID = "MT020102"Case MLRsSvr.GetString("U8.ICBC.Mt.0014")strID = "MT020103"Case MLRsSvr.GetString("U8.ICBC.Mt.0018")strID = "MT020104"Case MLRsSvr.GetString("U8.ICBC.Mt.0026"), MLRsSvr.GetS tring("U8.ICBC.Mt.0027")strID = "MT020105"End SelectEnd Select调用clsSystem(clsSystem.cls)中的G etVoucherT askID方法Public Function GetV oucherTaskID(sKey As String, sV ouchType As String, Optional bRed As Boolean) As String添加代码:Select Case sV ouchType'================jiang==============start'20061230'部门费用拆分表Case "100016"Select Case sKeyCase GetResString("U8.ICBC.Mt.0013")strID = "MT020102"Case GetResString("U8.ICBC.Mt.0014")strID = "MT020103"Case GetResString("U8.ICBC.Mt.0018")strID = "MT020104"Case GetResString("U8.ICBC.Mt.0026"),GetResString("U8.ICBC.Mt.0027")strID = "MT020105"End Select调用frmVouchNew(单据模板.frm)中getVoucherCodeName方法Private Function getV oucherCodeName() As String添加代码:Select Case strV ouchTypeCase "100016", "300016"KeyCode = "archiveno"3、录入数据,点击“保存”按钮,保存单据调用ClsVoucher_CO (clsVoucher_CO.cls)中的Save方法Public Function Save(ByV al DomHead As DOMDocument, ByV al DomBody As DOMDocument, ByV al V oucherState As Integer, Optional vNewID As V ariant, Optional DomConfig As DOMDocument) As String添加代码:‘================jiang==============验证单据表体记录是否为0Select Case m_enmV oucherTypeCase icbc_deptfyclsV ouchLoad.V ouchSave m_Conn, 部门费用拆分表, domhead, dombody, V oucherState, strError, vNewID, DomConfigEnd Select调用ClsVouchLoad_BO(clsVouchLoad_BO.cls)中VouchSave的方法Public Function V ouchSave(m_Conn As Connection, ByV al uvdV ouchType As enuSA VType, _ByV al DomHead As DOMDocument, ByV al domBody As DOMDocument, _ByV al V oucherState As Integer, sErrMsg As String, Optional vNewID As V ariant, Optional DomConfig As DOMDocument) As Boolean添加代码:Select Case uvdV ouchType'================jiang==============Case "100016"bSuccess = TruestrMTblName = "icbc_acv"strSTblName = "icbc_acvs"4、单据的删除功能点击“删除”按钮调用clsVouchload_bo(clsVouchload_bo.cls)中的VouchDelete方法Public Function V ouchDelete(strV ouchType As String, ByV al DBConn As ADODB.Connection, sTableName As String, DomHead As DOMDocument) As String 添加代码:Select Case strV ouchType'================jiang==============Case "100016" '部门费用拆分表sTableName = "icbc_acvs"V ouchDelete = clsCommSave.DeleteV oucher(strV ouchType, DBConn, sTableName, DomHead)5、单据的修改功能点击“修该”按钮,录入数据,点击“保存”按钮,保存单据调用frmVouchNew(单据模板.frm)中ButtonClick方法Case "save" '保存Screen.MousePointer = vbHourglassvoucher.ProtectUnload2bClickCancel = FalsebClickSave = True'删除空白行Select Case strV ouchTypeCase "100016"'部门和所占比例为空For i = voucher.BodyRows To 1 Step -1If (voucher.bodyText(i, "cdepcode") = "" And voucher.bodyText(i, "rate") = "") Or _voucher.bodyText(i, "rate") = 0 ThenMe.voucher.DelLine iEnd IfNextEnd Select6单据的审核功能调用clsVouchload_bo(clsVouchload_bo.cls)中的VouchVerify方法Public Function VouchV erify(CN As ADODB.Connection, sflag As Boolean, sT ype As String, DomHead As DOMDocument, T otalMsg As S tring) As BooleanSelect Case strVouchT ypeCase "100016"sqltemp = "select isnull(auditinguser,'') as auditinguser from icbc_acv where id = " & tmpId二、单据列表总结打开“单据列表工具”填写sheet:Rpt_GlbDEF_BASE,AA_ColumnDic_BASE,aa_busobject 对应单据列表的内容,具体字段意思可以参考数据字典。
L5--U8-11.1客开培训文档--单据列表
U8单据列表控件开发培训部门:U8平台及公共开发部 U8版本号:讲师:李亮定稿时间:2013-11-11 0.变更记录1.单据列表介绍1.1单据列表发展历程单据列表发展经历了如下几个重大里程碑:1、1)单据列表控件引用的因代码超出VB工程“容量”,同时避免打破兼容性,更换为。
2)同时单据列表支持的编辑功能,具体如下:(单据列表对合并显示功能的支持:要使单据列表支持合并显示的功能,主要要对栏目设置功能的进行设置,单据列表对参照输入的支持1、增加对事件BrowUser,FillList的支持,其用法与SuperGrid中的用法相同2、要使单据列表具有参照输入的功能,须在栏目设置中进行如下设置:及AA_ColumnSet两个视图,如果为NULL或为0,则单据列表状态保持原样,其它类型同SuperGrid中的类型定义,其定义如下:'列参照类型—Enum BrowTypeBrowNull = 0UserBrowButtonDblBrowButtonDateBrowButtonBrowComEnd Enum其值按1递增。
^增加对超字段选择范围的支持,也就条件的字节数可以超过8k限制增加对UAP结构下分页组件的调用方式,用法如下:其大体调用方式与CS方式下的调用没有太大区别,与CS不同的地方在于要UAP 的调用方式要声明一个算法变量,以支持UIP调用后结果集的导入,具体用法详见示例工程的Form2代码增加对枚举类型的支持在U8VouchList中增加分页的功能,用法如下:1、请按原有使用VouchList的方式使用单据列表2、将分页的按钮放在所使用的窗体中3、在数据库中执行脚本,创建分页引擎的存储过程SPPagediv2、单据列表整合了翻页和快捷过滤功能,同时增强了交互和易用性。
如:着色、布局等20多个功能,具体参考1.2单据列表示例代码及常用功能说明具体代码示例工程参见:1.扩展:Private WithEvents m_pagediv As Pagediv '分页引擎,配合实现单据列表自身的翻页功能。
【用友】U8开发之报表控件
U8开发之UAP报表控件知识库属性适用产品只适用于UAP报表,不适用于UFO报表,老版本vb报表支持版本V11.0 ; V890; V10.0; V10.1;行业通用关键字最后更新时间作者1.报表描述1.1.摘要报表能集中反映企业、事业等单位的资金状况、财务收支和财务成果等重要的会计信息,能够提供企业生产、库存等情况,防止呆滞料和库存积压,减低库存成本,为企业决策提供相关数据支持。
UAP报表是指在UAP平台开发的报表,即数据的描述信息以UAP开发的报表所形成的xml组织格式的报表,至于非UAP报表,如果转化成该标准的描述形式,仍然可用,比如以前的vb报表。
本文主要介绍UAP报表的开发过程(设计时),包括过滤条件,数据源组织,样式设置等以及部分运行时内容,为在UAP平台上进行报表开发和扩展做参考11.2.UAP报表分类按照报表的内容,报表可以分为➢统计类报表➢预警类报表➢明细类报表➢费用类分析➢客户分析➢综合分析➢……按照报表的运行方式分类,报表可分为➢表格视图普通的表格类型展现的视图➢交叉视图类似表格视图中的交叉,数据组织形式以矩阵的形式进行展现1➢监控视图主要一些用于提示累的预警类报表,一般放在桌面上,进行实时提示➢自由视图开发着灵活组织的报表11➢ 静态报表是已有的报表的某一个固定时间的选择查询条件的查询数据,该时间可以是 数据的生成可以立即生成,固定周期等,接受方式可以消息提示,邮件接受等。
1.3.V11特性1.3.1.支持BS报表的制作和发布(不支持COM类型的数据源)开发过程没变,都是在UAP开发平台上,只不过如下内容不支持➢视图类型是自由视图和监控视图的➢数据源是COM类型的➢具体发布界面如下1.3.2.支持条件格式(CS)条件格式模块包括两个部分:设计时通过UAP设计器完成条件格式的定义运行时将条件格式解析成动态的程序集,供给报表调用息1其中大于,小于,等于,介于支持数值类型和日期类型的数据,等于额外支持字符串类型自定义规则管理报表视图上的条件格式,可以修改条件格式的顺序(视图允许定义多个条件格式)和设置更复杂的条件格式11.3.3.分组和交叉的变更1.分组项支持显示小计功能2.展现样式中的合并分组格变成平面展现+属性合并分组3.想要实现行元素的多级效果,在行元素上再定义一个分组4.交叉方案增加属性是否支持横向合计,作用于所用交叉元素11.3.4.增加占比列功能报表组件中增加了占比列功能,该类型只针对数值型:即每一行的数据/该数据总计行的值得出具体的占比数据,总计行的类型即汇总方式可以选择1.3.5.支持快捷条件查询1.首先在工具栏勾选快捷条件2.打开查询界面,选择快捷条件设置,并选择查询项11.3.6.支持报表和查询方案收藏到桌面功能11.4.数据字典1.4.1.V11.0以前的数据字典报表基本元数据表(UAP_Report)(UFMeta库)字段名字段类型说明ID nvarchar(100) 报表IDFilterID nvarchar(100) 过滤IDDataSourceID Nvarchar(100) 数据源IDFunctionName Nvarchar(50) 函数名称Description Nvarchar(256) 描述信息,如果要不在报表中心中显示,则该字段预置为NotShowInReportCenterProjectID ProjectID 项目类型(U870,U8CUSTDEF等)SubID Nvarchar(50) 子产品IDModifyTime timestamp 更改时间ClassName nvarchar(100) 自定义数据源的类名字FilterClass Nvarchar(100) 自定义过滤名字bVB bit 是否vb报表1bSystem bit 分组信息(cGroup=Hidden则代表该组按钮隐藏不显示)Creator Nvarchar(100) 创建人bPublished bit 是否已经发布HelpFileName Nvarchar(200) 帮助文件名称HelpIndex nvarchar(30) 帮助位置索引HelpKeyWord nvarchar(30) 热键信息bHadUpgradedFrom861 bit 是否已经从报表进行格式转换了,如果预置为1,则不会走升级操作的MappingMenuId Nvarchar(100) 对应的菜单查询权限RootReportId nvarchar(100) 多报表的情况下选择一个做为主报表bUsingReport4MenuId bit 是否用报表ID做菜单IDNe pdateDataSource int 是否需要进行数据源升级IsNeedBak int 是否需要进行备份报表视图表(UAP_Reportview)(UFMeta库)字段名字段类型说明ID Nvarchar(100) 视图IDReportID Nvarchar(100) 按钮标题ViewType INT 1表格视图2监控视图3交叉视图4自由视图PageMargins nvarchar(50) 打印保存的页面设置信息PaperType 打印纸张类型该功能报表没用,可能打印那里用的Format ntext 视图格式信ModifyTime timestamp 更改时间bSystem bit 是否系统报表ViewClass nvarchar(50) 业务组自己预置的,如果该字段预置值,则在运行的视图列表中,只能切换相同ViewClass的视图RowsCount INT 默认查询的行数1bShowDetail bit 默认是否显示明细Assemblystring ntext 预置的程序集Chartstring ntext 保存的图标信息Columns nvarchar(100) 列信息T ag ntext 附加信息RuntimeFormat ntext 运行时样式bMustShowDetail bit 是否一定显示明细PageSetting ntext 页面设置信息Selfaction ntext 自定义事件PreservedField ntext 交叉信息CanSaveDefaultFormat bit 是否可以另存视图FontColorStyleId nvarchar(100) 颜色格式,只存放对应的ID1.4.2.V11.0数据字典报表几本元数据表(UAP_Report)(UFMeta库)字段名字段类型说明MappingBsMenuId nvarchar(64) 该报表所对应的查询权限,即菜单的查询权限号2.UAP报表开发2.1.数据源定义报表数据源可分为实体关系查询,SQL脚本查询和自定义查询三个类型,如下图所示:1其中数据源名称和数据源描述是为了标识数据源以及说明数据源的功能。
u8财务功能介绍
U8财务模块功能介绍一、U8管理软件平台U8平台 U8平台是U8应用产品的基础,完整的平台功能将会有力地保证U8各产品的顺利开发和应用,保证各种不同的产品在数据、流程和应用上可以无缝集成,界面与操作完全一致。
U890产品的平台功能非常丰富和强大,涉及的范围和内容也相当广泛,她能灵活地帮助使用者实现ERP系统集中协作管理和高度的个性化定制,平台的架构主要包括企业应用门户、系统管理和服务、公共控件及权限管理、EAI(企业应用集成),以及U8工作流系统和应用开发平台UAP。
门户 Portal【门户(Portal)】适用于所有使用ERP-U8的业务人员,以及企业的IT管理人员。
门户是操作员登录后首先看到的界面,通过该界面可以操作有权限的产品模块进行业务处理,可以快速获取ERP系统的消息和任务通知以及各个业务相关的预警信息等内容,门户既是统一的管理入口,也是每个操作员个性化的工作场景。
主要功能特点●业务:依据用户所购买的产品模块,以及操作员的功能权限,显示所有可操作的业务点,点击进入相应的管理界面,如财务会计节点下实现凭证的录入和维护等。
●统一参数设置:包括了应用服务器配置、远程配置、多语言配置,以及财务、决策支持、OA产品的配置和管理。
提供了数据复制管理器用以进行系统数据的快速复制,数据下发、数据接受和数据对照功能将满足有集团应用需求的用户,并提供了相关的接口实现与NC产品的凭证互通。
●统一工具管理,主要包括了5大方面的管理工具:1、基本信息维护的工具,如系统的启用以及编码方案的设置,还有数据精度的管理。
2、数据权限设置工具,通过此工具可以设置操作者对仓库、科目、工资权限、用户之类的数据记录权限,也可以按照不同的管理角色分配诸如参照发货单、存货等业务对象的字段权限;以及金额权限分配和权限转授等。
3、单据格式和编号的设置,单据的打印控制。
4、业务设置,如零售接口,工作流以及预警定义和任务的定时安排等。
5、变更管理。
U8单据控件开发手册
单据开发1. 功能介绍:单据控件为实现各业务产品组中各种单据的数据处理,该控件实现数据分层处理。
单据控件以OCX提供给各个业务模块使用(包括WEB组)业务组在使用前初始化单据控件,最终业务模块从单据控件取得数据按各自的业务规则检查合法后保存。
U870版本的单据控件有以下新特性:✓支持Web✓对后台数据实现分层处理✓支持各种模版样式✓支持无表体单据样式✓支持无表头单据样式✓数据更新状态智能标记✓支持表头、表体附件✓表体汇总✓表体批量修改✓单据二次开发接口支持,详见单据支持二次开发的方案(872以上支持)new✓新增模拟输入和模拟参照功能2. 使用环境:支持环境为U870以上版本3. 使用说明:在VB中引用单据控件在VB中点击主菜单中的“工程->部件”或者直接按Ctrl+T热键,随后出现的“部件”对话框中选中“UAPV oucherControl85”,然后点击“确定”,左侧的工具条中将出现该控件的图标,如下图所示:OCX文件的方法函数图例如下:单据控件的主要属性•BackColor,BackColorBkg,BackColorFixed,BackColorSel,BackColorT otal属性:返回或设置单据控件不同的背景颜色语法:voucher.BackColor [=color]voucher.BackColorBkg [=color]voucher.BackColorFixed [=color]voucher.BackColorSel [=color]voucher.BackColorT otal [=color]参数说明:备注:下图为V oucher属性设置效果Example:Note:如要设置这些属性值,必需在设置完模板数据后再设置才能起作用。
•Col, Row,ColSel,RowSel 属性返回或设置当前表体活动单元格的行列坐标,此属性在设计状态不可用。
语法:voucher.Col [=number]voucher.Row [=number]参数说明:备注:使用Col、Row属性来指定活动单元格,Col>0,Row>0,Col<Cols,Row<Rows。
用友u8采购管理的单据列表
用友U8采购管理的单据列表1. 引言用友U8是一款广泛应用于企业管理系统的软件,提供了多种管理功能和模块。
其中,采购管理是U8系统的核心功能之一,包括了一系列与采购流程相关的单据和操作。
本文将详细介绍用友U8采购管理的单据列表及其功能。
2. 单据列表用友U8采购管理的单据列表包括了以下主要单据:2.1 采购订单采购订单是企业向供应商发出的采购需求单,用于明确采购品种、数量、价格、供货时间等相关信息。
通过采购订单,企业可以与供应商达成一致,确保采购流程的顺利进行。
2.2 采购合同采购合同是在采购订单基础上生成的正式合同文件,用于约定采购双方的权益和责任。
采购合同通常包括合同编号、供货日期、交货地点、价格条款、质量要求、付款方式等内容,以确保双方权益的平衡和合作的顺利进行。
2.3 采购入库单采购入库单是用于记录采购商品入库的单据。
在采购订单和采购合同得到供应商确认后,当商品到达企业仓库时,相关人员需要通过采购入库单对商品进行验收和入库操作,并记录相关信息,如入库数量、质量状况、供应商等。
2.4 采购退货单采购退货单用于记录企业向供应商退货的单据。
当企业因为商品质量问题、数量差异等原因需要向供应商退货时,可通过采购退货单完成退货流程,并记录退货原因、退货数量等相关信息。
2.5 采购付款单采购付款单是记录企业向供应商付款的单据。
在采购合同约定的付款条件下,当企业需要向供应商付款时,会生成采购付款单,并记录付款金额、付款方式、付款日期等信息。
2.6 采购发票采购发票用于记录供应商向企业开具的发票。
在采购付款流程中,当企业完成对供应商的付款后,供应商会开具相应的采购发票,企业需要将发票信息记录在系统中以便后续对账和报税。
3. 功能及应用用友U8采购管理的单据列表提供了一系列功能来支持企业的采购管理:•采购订单可以帮助企业明确采购需求,与供应商进行有效的沟通,并确保订单的准确性。
•采购合同可以规范采购过程,保护企业的权益,同时也为供应商提供了明确的交付要求。
U8开发之UAP表单
UAP表单一、功能概述UAP表单为U8产品增加了自定义单据和档案的能力。
并为单据和档案提供了全方位的功能支持,包括:增、删、改、查、打、审、格式设计。
在实施过程中,可以为用户定制个性化的单据和档案。
1、UAP表单据包括BS表单和CS表单。
两者的区别只是在客户端的展现形式不同。
CS表单适用于局域网,BS表单适用于局域网和互联网。
2、使用UAP定义的单据,可以实现多子表、多布局视图。
3、使用UAP定义的档案,支持复杂档案、列表档案、树型编辑档案(形如部门档案)、树形导航档案(形如人员档案)4、使用UAP定义的档案可以在U8单据格式设置中引用5、UAP提供了完善的插件机制,用于个性化开发。
UAP表单允许开发人员进行扩展性和取代性的开发工作。
二、核心特性1.支持树形结构的业务实体。
2.支持业务模型的一个实体对应多个视图,一个视图只能对应一个业务实体。
3.支持一个业务实体属性对应多个视图控件。
4.丰富的客户端展现:多子表、分组、页签。
5.表单和业务模型是一对一的关系。
6.与门户集成。
7.视图在表单上支持自由布局。
8.业务逻辑层(M)、界面层(V)、业务逻辑和界面之间的控制层(C)互相分离。
9.支持运行时多语。
10.支持用户自定义控件。
三、集成的开发工具及案例1、开发工具概述a)用户通过开发工具实现单据的通用性定制,如单据名称,主子表名称,主子表列的名称、类型等属性,单据的格式设置等。
b)集成开发环境中BS单据和CS单据的开发步骤和过程都是相同的。
2、操作步骤1、UAP登录2、建立项目3、建立表单4、建立实体关系5、增加实体属性6、设计单据布局7、单据发布8、在U8中显示表单四、二次开发接口说明4.1开发接口概述在集成开发环境中已经可以实现自定义单据和档案的增、删、改、查等通用操作,但更加个性化的操作和业务逻辑,就需要通过代码调用接口,可以在下面操作的接口中实现。
4.1二次开发流程1)安装Microsoft Visual Studio2)创建一个C# 类库(.dll)项目3)为项目添加引用:⏹UFIDA.U8.Framework.Error⏹UFIDA.U8.UAP.UI.Runtime.Model⏹mon4)添加一个类,并实现接口IReceipt⏹public class PurchaseOrder : IReceipt5)实现业务逻辑6)编译工程,得到一个dll7)在UAP设计时中注册dll。
U8V8.90行业插件说明列表
U8V8.90行业插件说明列表
最新更新时间:2009-07-27
一、U8公共应用插件报价
单位:元
单位:元
单位:元
三、汽配行业
五、服装行业
六、医药行业
七、化工行业
八、食品行业
九、服务行业
十、购买约束
说明1:此报价为提供给客户的建议报价,本版暂不对总部进行结算,安装插件产品后即可使用。
说明2:不纳入总并发的插件如下:模具管理、客户协同平台、供应商协同平台、PDM接口、运输管理、跨账套查询、看板方式、计量管理、GMP管理
说明3:目前为止除服装插件支持繁体版外,其他插件均不支持繁体、英文版。
说明4:行业插件购买约束。
用友U8全产品功能介绍
用友U8产品功能介绍目录一、财务管理…………………………………………………………………………… (3)二、供应链管理…………………………………………………………………………… (8)三、生产制造管理…………………………………………………………………………… (10)四、人力资源管理…………………………………………………………………………… (12)五、分销管理…………………………………………………………………………… (17)六、连锁零售…………………………………………………………………………… (17)七、决策管理…………………………………………………………………………… (17)八、内部控制…………………………………………………………………………… (19)九、平台…………………………………………………………………………… (19)十、公共插件…………………………………………………………………………… (23)十一、其他个性化功能介绍…………………………………………………………………………… (25)一、财务管理1.1、总账总账产品适用于各类企事业单位进行凭证管理、账簿处理、个人往来款管理、部门管理可根据需要增加、删除或修改会计科目或选用行业标准科目,通过严密的制单控制保证填制凭证的正确性。
提供资金赤字控制、支票控制、预算控制、外币折算误差控制以及查看科目最新余额等功能制单赤字控制可控制出纳科目、个人往来科目、客户往来科目、供应商往来审核权限可控制到操作员。
自动完成月末分摊、计提、对应转账、销售成本、汇兑损益、期间损益结转等业务,可进行行试算平衡、对账、结账、生成月末工作报告。
为出纳人员提供一个集成办公环境,加强对现金及银行存款的管理。
提供支票登记簿功能,用来登记支票的领用情况;并可完成银行日记账、现金日记账,随时出最新资金日报表,余额调节表以及进行银行对账。
支持财务数据跨年度查询。
1.2、应收款管理应收款管理系统,通过发票、其它应收单、收款单等单据的录入,对企业的往来账款进行综合管理,及时、准确地提供客户的往来账款余额资料,提供各种分析报表,如账龄分析表,周转分析、欠款分析、坏账分析、回款分析情况分析等,通过各种分析报表,帮助企业合理地进行资金的调配,提高资金的利用效率。
U8 操作手册-单据设置
U8 操作手册
一,基础档案-单据设置
进入服务器---登陆用友系统如下:在基础设置里面找到单据设置,右侧窗口即显示出所有的单据的格式,包括采购,库存,存货等。
下面我们以一张采购订单为例:依次点开采购管理下面的采购订单,下面出现显示和打印两个子项。
显示为我们在系统操作采购订单时界面所显示的图形格式,打印为打印出来的格式。
、
点击采购订单显示模板,右侧即显示出对应的格式,我们可以根据各自公司的需求进行调整,如下图所示,每一个字段都是可以拖动和修改的,当格式满足我们的需求后保存即可。
同样如下采购订单的打印,点开后同样可以根据各自的需要进行相应的调整,包括位置,大小等等,修改完成后保存即可。
U8销售订单列表的字段
U8销售订单列表的字段许多人都会有这样的疑问:销售订单列表中的字段应该怎么写?销售订单列表包括公司名称、电子邮件地址、联系人号码、电话号码以及公司地址。
您可以使用它们中的任何一种来使用销售订单列表,但也可以使用不同的方法来调整它们之间的关系。
我们都知道有许多字段可以用于管理企业名称和电子邮件地址,但它们中的任何一个都是需要单独开发才能使用的。
如果您不知道如何将这些字段组合起来以进行管理时,那么在工作中使用它们可能会更有效率:它使您可以随时更新所有信息。
那么今天就让我们来了解一下什么是U8销售订单列表吧!U8列表中涉及到多个字段(“字段”或“类型”),在每个页面上提供了一个完整列表。
该列表将显示当前客户和产品名称以及当前付款方式,并确保您所需检查之处的准确性。
接下来我们将介绍该功能及它应如何使用,以帮助您了解相关信息、并使其工作高效、易于使用!一、创建一个列表选择“销售订单列表”。
根据您的业务需求创建列表。
您还可以选择“销售订单列表-产品”和“销售订单列表-电子邮件地址”之间的每个字段。
如果您是第一次使用或对其有兴趣,请确保您完全了解它。
它不需要任何额外的信息或代码,只需简单地将其添加到您的产品目录即可实现这一目标。
U8列表具有一个独立的标题和文本编辑器旨在创建一个完整的列表以及显示任何文本内容。
这将使您可以对整个列表进行编辑和处理。
您可以使用以下功能:在创建位置之前:使用 Ctrl+ D来标记您想显示哪种类型的列表;如果可能的话,请添加每个字段的标题;点击右上角的“标签”;选择“使用标签进行自定义排列”。
创建完成后:通过使用U8来创建一个完整的列表——销售订单列表中的所有字段都需要单独编写一次以获得最佳效果。
____销售订单列表中出现任何信息并不意味着它结束了:相反地,该列表将成为您所做决策最终需要使用的关键字段。
____二、创建包含多个字段的列表一旦您将其添加到U8销售订单列表中,它们将在各页面上显示列表中存在的所有信息,并帮助客户了解其对他们所拥有的信息以及公司名称和电子邮件地址之间的关系。
U8开发之单据控件
U8开发之单据控件摘要单据控件是U8ERP 业务单据不可或缺的功能组件。
是一个标准的OCX 控件,使用符合OCX 控件规范。
方便业务组快速开发应用单据。
什么是单据控件?基本概念及其关系单据[Voucher]单据工具栏Voucher Toolbar标题拦[Caption Band]单头[Header]单体[Detail]单尾[Footer]助手视图[Side Panel] 快速功能[Quick button]单体工具栏[Detail Toolbar]主题[Subject Panel]1..n0..10..n10..10..10..n0..11排版与布局规范➢单据工具栏作为单据界面的一部分,放置在顶部,用R IBBON工具栏风格。
➢单据C APTION B AND紧邻单据工具栏下方,单据C APTION水平居中。
➢单据定位搜索等快速功能放在单据C APTION B AND有侧。
(V11特性)➢单据内容显示空间自C APTION B AND之下开始。
➢单头自动紧贴单据内容空间左上角开始显示。
➢单头栏目列数=可用空间宽度/默认列宽(取整),各列自动缩放适应显示空间。
➢单尾在显示空间底对齐。
➢单尾栏目列数和自适应与单头相同。
➢单体自动填充剩余空间。
➢单体自适应空间时,各列优先按照默认宽度显示,尽量显示更多列。
(V11特性)➢单体支持最大化功能,此时单体占据整个单据内容显示空间。
(V11特性)➢单体相关功能按钮直接放在单体表格上方,用单行W INDOW T OOLBAR风格。
(V11特性)➢助手视图右侧,可停靠或者悬浮。
助手在单据内容空间内显示。
目标本文主要介绍单据控件的基础知识,应用过程及相关注意事项,方便各类U8产品开发人员更好的使用单据控件,更高效的开发产品。
单据控件特性(V11.0)单据控件实现各业务产品组中各种单据的分层处理。
单据控件以OCX提供给各个业务模块使用(包括WEB组)业务组在使用前初始化单据控件,最终业务模块从单据控件取得数据按各自的业务规则检查合法后保存。
用友U8Cloud-U8C财务管理-应收应付单据列表显示调整
U8C财务管理-应收应付单据列表显示调整
一、应用背景:
客户在公司查询单据的时候列表显示的字段满足不了查看客户的查看需求,好多用户反映单据模板上我已经勾选了某字段列表显示了但是还是没有显示出来,这种情况非常多。
二、解决思路:
单据列表显示有单独的一个模板,模板编码是DW,调整DW模板并分配即可,注意DW 模板分配的时候需要对应节点标识,该模板对应收应付单据查询、单据管理、应收录入、应付录入、付款录入、收款录入等节点都好使。
【实现步骤】
步骤1:集团—企业建模平台—模板管理—模板设置-单据模板设置;
操作说明1:找到要修改的DW单据模板,复制系统自带的DW模板。
注意:系统自带的DW是不能修改的所以要复制一个。
操作说明2:选中复制好的DW模板,例如想把客商字段列表显示出来。
调整完后保存一下。
操作说明3:保存完后返回一下,点击右下角的分配模板按钮。
操作说明4:保存完后返回一下,点击右下角的分配模板按钮。
分配的时候需要选择节点,2004打头的是现金管理模块的节点,2006是应收管理,2008是应付管理的。
选中要分配的节点、公司、节点标识选择DW,选择要分配的用户或者角色即可。
单据控件
www . ufsoft . com
Demo
Public Sub Command1_Click() Dim o as Object ‘ 单据后台服务对象 Dim rst Recordset ‘ 数据记录集对象 Dim clr1 as Long, clr2 as Long ‘ 提醍颜色 Dim sAuth as String ‘ 字段权限字符串 set o = CreateObject(“UFVoucherServer85.clsVoucherTemplate”) if o Is Nothing then Exit Sub set rst = o.GetTemplateData2(连接对象 连接对象[ADODB.Connection], _ 连接对象 单据ID[CardNumber], _ 单据 模板号[ID]) ‘ 通过服务取得模版数据 模板号 sAuth = o.GetAuthString(Login对象 单据 对象, ‘ 通过服务取得权限 对象 单据ID) ctlVoucher1.Visible = False ‘ Tip: 在初始模版数据前先置 ctlVoucher1.SetVoucherAuth sAuth ‘ 控件不可见,消除flash 控件不可见,消除 ctlVoucher1.SetRuleColor clr1, clr2 ‘ Note:必须在初始化前使用 必须在初始化前使用 ctlVoucher1.SetTemplateData rst ‘ 初始化 ctlVoucher1.Visible =True End Sub
www . ufsoft . com
控件使用流程
初始化工作 数据加载机制 用户参与和属性、方法、事件 数据结果处理
www . ufsoft . com
初始化作
U8开发之工具栏控件
U8工具栏控件摘要工具栏(Toolbar)是U8应用程序常用的界面元素。
把菜单中常用的命令做成按钮安排在工具条中,配上适当的图标符号和文本提示,能够极大地方便用户。
U8产品开发尤其是前台UI开发中,工具栏控件和窗体一样是系统展现不可缺少的一部分。
在早期U8产品开发过程中大量使用了微软的MSToolbar,但是随着U8ERP产品开发的精细化、专业化,微软的MSToolbar在界面设计和程序开发中暴露出了诸如界面图标配置不灵活、不支持多级菜单、不适应复杂应用场景、对多语的支持不够完善等开发问题。
为了弥补这些不足,并且兼容之前的产品,U8平台提供了工具栏控件。
在V11版本中,又对工具栏在UE效果上做了进一步改进,采用Ribbon工具栏风格,形成了现在U8产品的工具栏效果。
什么是工具栏?Ribbon风格:Ribbon是一种以皮肤及标签页为架构的用户界面(User Interface),原先出现在Microsoft Office 2007 及2010 的Word、Excel和Powerpoint 等组件中,后来也被运用到Windows 7 的一些附加组件等其它软件中,如画图和写字板,以及Windows 8 中的资源管理器。
它是一个收藏了命令按钮和图标的皮肤。
它把命令组织成一组"标签",每一组包含了相关的命令。
每一个应用程序都有一个不同的标签组,展示了程序所提供的功能。
在每个标签里,各种的相关的选项被组在一起。
设计Ribbon的目的是为了使应用程序的功能更加易于发现和使用,减少了点击鼠标的次数。
门户Toolbar:从门户树形菜单或全景式菜单打开的选项卡式窗体(即嵌入门户的窗体)中包含的工具栏称为门户Toolbar。
如下图所示:图门户Toolbar示意图由于门户工具栏是U8各产品较常见且核心的内容,所以有必要介绍门户工具栏内部的一些概念,包括排版组、分组、按钮样式等。
以下分别介绍:按钮分组:在门户Toolbar上,两个分割线之间的区域即为一个按钮分组。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
U8单据列表控件摘要单据列表控件是供业务单据展示列表数据以及编辑处理的,并且集成了部分单据列表公共按钮、快捷过滤、翻页功能。
同时也支持直接通过单据列表编辑录入数据。
概念说明公共按钮是指单据列表固有的一些操作,如:查询、条件格式设置、布局等等;快捷过滤是一种更加直接快速的常用查询项目过滤,主要区别在于可以直接在列表主界面录入常用过滤项目内容进行查询;翻页功能集成则是指列表控件自带了翻页处理,业务模块使用时可以不用专门处理翻页的逻辑。
目标本文主要介绍单据列表控件的业务应用及相关注意事项,方便各类U8产品开发人员更好的使用高效开发产品。
文档内容一、列表控件(V11.0)增加的特性:1.集成【快捷过滤】功能;类似原来各列表界面里toolbar上的查询\刷新\[滤设]功能。
查询按钮下拉查询方案:默认操作兼容原有功能。
查询支持方案和快捷条件详细设置:【快捷过滤】相关的业务组代码调整:调整过滤对象的查询方法(UFGeneralFilter.FilterSrv.OpenFilter)调用,修改为调用过滤对象初始化方法(UFGeneralFilter.FilterSrv. InitBaseVarValue),参数传递与过滤对象查询原来的方法(UFGeneralFilter.FilterSrv.OpenFilter)兼容。
然后调用新单据列表控件的快捷过滤初始化方法(VouchList.InitFlt),把初始化好的过滤对象传入(如果没有过滤对象,也可以直接传入过滤对象ID或过滤对象名称+子系统号)。
代码修改前后对比示例如下(灰色字体部分是已经被注释的修改前的代码,下同):…(引用的是服务协议列表代码修改模型)Set m_opub = CreateObject("UFGeneralFilter.FilterSrv")' bSuccess = m_opub.OpenFilter(g_Login,"6729D410-233A-4674-A48A-2C34C17B82F6", "", "", ErrInfo)'lliang_2011-11-22_[单据列表]:快捷过滤bSuccess = m_opub.InitBaseVarValue(g_Login,"6729D410-233A-4674-A48A-2C34C17B82F6", "", "", ErrInfo)…Call VouchList.InitFlt (g_Login, m_opub, "", "", "", "", Err)参数1:Login对象参数2:过滤对象参数3:条件的Key参数4:过滤的名称参数5:子产品号参数6:返回的错误信息返回值:如果返回为False表明出现失败说明:你可以用参数2,忽略参数3、4、5或用参数3而忽略参数2和4、5或用参数4、5而忽略2和3.注意事项:调用此初始化方法的时机要求在Form_Load事件里,目前大部分产品的过滤对象调用(m_opub.OpenFilter)都是在相应的类模块或其他非窗体模块处理,所以需要各模块根据实际情况把过滤对象变量有效传递到窗体然后在Form_Load事件里调用。
推荐的方法是事前在窗体模块声明全局变量,然后在调用过滤对象的地方把已经初始化好的过滤对象暂时赋值给窗体的全局变量,最后在Form_Unload事件里即时的释放该全局变量。
…// 直接在列表控件(V11.0)新增的查询事件中(FilterClick)调用原来的“查询”功能即可,同时把此事件返回的过滤对象参数一并传递到原查询功能。
…Private Sub VouchList_FilterClick(fldsrv As Object)Operating ("filter",fldsrv)End Sub…注:是否显示快捷过滤依据的是原列表是否支持查询功能。
附:快捷过滤预置表:Data库的flt_quickconditionset表对应字段说明:filterid 过滤编号userid 用户编号,业务组预置用固定的systemitemName 用于快捷过滤的项的名称如:cDepName2.集成【翻页】功能;取代原来各列表界面手工翻页或采用平台翻页控件的功能。
【翻页】相关的业务组代码调整:1)业务代码原列表界面中使用平台的翻页控件(PagedivCtl)的情况:在调用平台翻页控件绑定分页引擎的地方直接修改为用列表控件(V11.0)绑定分页引擎,接口方法和传递参数完全兼容,同时删除原平台翻页控件并把相关的代码注释(包括原翻页控件涉及的事件),同时把原翻页控件对应的事件实现在列表控件对应的事件中实现(事件兼容)。
…(引用的是销售订单列表代码修改模型)'Call PagedivCtl1.BindPagediv(m_pagediv)'lliang_2011-11-22_[单据列表]: 翻页Call VchLst.BindPagediv(m_pagediv)…'Private Sub PagedivCtl1_BeforeSendCommand(cmdType As U8VouchList.UFCommandType, pageSize As Long, pageCurrent As Long)' Me.VchLst.SetVchLstRst Nothing' Me.VchLst.FillMode = FillOverwritePrivate Sub VchLst_BeforeSendCommand(cmdType As U8VouchList.UFCommandType, pageSize As Long, pageCurrent As Long)Me.VchLst.SetVchLstRst NothingMe.VchLst.FillMode = FillOverwriteEnd Sub…2)业务代码原列表界面没有采用平台的翻页控件,是自己处理的翻页功能的情况,时还不想采用先前到翻页控件的方式(原因:代码改动太大,可能出错的情况也多,而且直接影响由列表导航出的单据卡片翻页的界定范围),只是希望直接借用列表控件(V11.0)的翻页框架,而列表数据的获取保持不变(还是由业务组直接获取传递给列表控件)。
就此方案代码模板示例如下://1、申明分页引擎变量…(引用的是库存所有单据列表代码修改模型)'lliang_2011-12-02_[新单据列表]:Private WithEvents m_pagediv As Pagediv '分页引擎…//2、FormLoad事件里初始化分页引擎并绑定到列表控件(V11.0)上(列表数据的加载过程保持不变,并且此必须放到列表数据加载之前执行,并且确认列表数据加载后给原有的列表属性RecordCount正确赋值了-应该是总记录数,而不是当前页显示的记录数)Set m_pagediv = New Pagedivm_pagediv.PageInfo.CurrentPage = txtPage.Textm_pagediv.PageInfo.pageSize = txtSize.Text‘注:此两处代码赋值逻辑需要在运行期检查原控件值是否存在Call VouchList1.BindPagediv(m_pagediv)…//3、在列表控件新增的翻页相关的事件中实现原来的手工翻页逻辑。
Private Sub VouchList1_BeforeSendCommand(cmdType As U8VouchList.UFCommandType, pageSize As Long, pageCurrent As Long)txtSize.Text = pageSizeSelect Case cmdTypeCase UFFirstcmdFirst_ClickCase UFPreviouscmdPer_ClickCase UFNextcmdNext_ClickCase UFLastcmdLast_ClickCase UFOKcmdOK_ClickCase Else'End Select注:是否显示翻页依据的是原列表是否支持翻页功能。
3)业务代码原列表界面没有采用平台的翻页控件,而是自己处理的翻页功能的情况:这种情况需要首先把业务组手工增加的列表翻页功能到平台翻页控件,然后再根据第1)种情况对应的方法到列表控件(V11.0),也可由手工的列表翻页功能直接到列表控件(V11.0)的翻页。
至于如何从手工翻页功能到平台的翻页控件,这个可以咨询目前已经采用平台翻页控件的业务组成员处理(其中由列表导航出的单据卡片翻页的界定范围需要通过列表过滤条件串约束),在此也简单就代码修改过程示例说明一下:(新作单据列表时必须使用)…(引用的是库存的其他入库单列表代码修改模型)Private WithEvents m_pagediv As Pagediv '分页引擎Private m_coni As IPagedivConi '条件,基本上都是从U8Colset中进行初始化…//增加如下列表分页初始化方法,一个分页引擎事件。
Private Sub InitPagedivCtl(oColSet As Object, mCnn As Connection, VouchList As Object, strWhere As String)‘初始化分页控件Call InitConi(oColSet, strWhere , m_coni)Set m_pagediv = New PagedivCall m_pagediv.Initialize(mCnn, m_coni)‘Call PagedivCtl1.BindPagediv(m_pagediv)Call VouchList.BindPagediv(m_pagediv)Call m_pagediv.LoadDataEnd Sub…'初始化分页条件Public Sub InitConi(ByVal oColSet As Object, strWhere As String, m_coni As IPagedivConi) On Error GoTo ErrHandlerIf m_coni Is Nothing ThenSet m_coni = New DefaultPagedivConiEnd Ifm_coni.From = "KCOtherInList" '此处需要通过一个专门的方法获取列表对应的数据源(视图)名称If bGroupBy Then '是否查看汇总信息m_coni.SelectConi = Replace(oColSet.GetSqlSumString, "''", "' '")If strWhere = "" Then strWhere = "1=1"m_coni.Where = strWherem_coni.GroupBy = oColSet.GetSqlGroupStringm_coni.OrderID = oColSet.GetOrderStringEx' m_coni.RealTableName = clsVoucherLst.GetVoucherListSet("maintbl")' m_coni.RealPrimaryKey = clsVoucherLst.GetVoucherListSet("mainkey") Elsem_coni.SelectConi = oColSet.GetSqlStringm_coni.OrderID = oColSet.GetOrderStringExm_coni.Where = strWhere '相当于where部分m_coni.GroupBy = ""m_coni.RealTableName = "" ' clsVoucherLst.GetVoucherListSet("detailtbl")m_coni.RealPrimaryKey = "" 'clsVoucherLst.GetVoucherListSet("detailkey")m_coni.SumConi = ""End IfExitFnc:Exit SubErrHandler:End Sub…Private Sub m_pagediv_AfterGetData(rst As ADODB.Recordset, cnt As Long)VouchList1.SetVchLstRst NothingVouchList1.FillMode = FillOverwriteST_SetFormat VouchList1, CvouTypeVouchList1.DoFormatVouchList1.SumStyle = vlRecordAndGridsumVouchList1.SetVchLstRst rstIf Not IsNull(ColSet) ThenVouchList1.InitHead ColSet.getColInfoEnd IfVouchList1.RecordCount = cntEnd Sub…//在所有以前手工调用查询列表数据的地方修改为调用此列表初始化方法:InitPagedivCtl ' getListData VouchList1, ClsBill, CvouType, nPages, 1, txtSize.Text, sWhere, True, , , , bGroupBy, m_strGUID' VouchList1.RecordCount = ClsBill.ListCountCall InitPagedivCtl(ColSet, moLogin.AccountConnection, VouchList1, sWhere)…3.改变【行选择】功能;取代原来各列表界面里toolbar上的全选/全消功能,同时取代以前双击列表选择列打”Y”的功能。