U8开发之单据列表控件
- 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 用户编号,业务组预置用固定的system
itemName 用于快捷过滤的项的名称如:cDepName
2.集成【翻页】功能;取代原来各列表界面手工翻页或采用
平台翻页控件的功能。
【翻页】相关的业务组代码调整:
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 = FillOverwrite