L5U8 111客开培训文档单据列表.docx
- 文档编号:18034621
- 上传时间:2023-08-07
- 格式:DOCX
- 页数:59
- 大小:262.41KB
L5U8 111客开培训文档单据列表.docx
《L5U8 111客开培训文档单据列表.docx》由会员分享,可在线阅读,更多相关《L5U8 111客开培训文档单据列表.docx(59页珍藏版)》请在冰点文库上搜索。
L5U8111客开培训文档单据列表
U8单据列表控件开发
培训部门:
U8平台及公共开发部U8版本号:
V11.1
讲师:
李亮定稿时间:
2013-11-11
0.变更记录
变更阶段
时间
变更原因
变更类型
内容
提出人
1.单据列表介绍
1.1单据列表发展历程
单据列表发展经历了如下几个重大里程碑:
1、U8V8.72
1)单据列表控件引用的UFSpGrid.ocx因代码超出VB工程“容量”,同时避免打破兼容性,更换为UFSpGrid2.ocx。
2)同时单据列表支持的编辑功能,具体如下:
单据列表对合并显示功能的支持:
要使单据列表支持合并显示的功能,主要要对栏目设置功能的进行设置,
单据列表对参照输入的支持
1、增加对事件BrowUser,FillList的支持,其用法与SuperGrid中的用法相同
2、要使单据列表具有参照输入的功能,须在栏目设置中进行如下设置:
a.AA_ColumnDic及AA_ColumnSet两个视图
b.BrowUserType,如果为NULL或为0,则单据列表状态保持原样,其它类型同SuperGrid中的类型定义,其定义如下:
'列参照类型
EnumBrowType
BrowNull=0
UserBrowButton
DblBrowButton
DateBrowButton
BrowCom
EndEnum
其值按1递增。
增加对超字段选择范围的支持,也就条件的字节数可以超过8k限制
增加对UAP结构下分页组件的调用方式,用法如下:
其大体调用方式与CS方式下的调用没有太大区别,与CS不同的地方在于要UAP的调用方式要声明一个算法变量,以支持UIP调用后结果集的导入,具体用法详见示例工程的Form2代码
增加对枚举类型的支持
在U8VouchList中增加分页的功能,用法如下:
1、请按原有使用VouchList的方式使用单据列表
2、将分页的按钮放在所使用的窗体中
3、在数据库中执行脚本,创建分页引擎的存储过程SPPagediv
2、U8V11.0
单据列表整合了翻页和快捷过滤功能,同时增强了交互和易用性。
如:
着色、布局等20多个功能,具体参考《新单据列表迁移指导说明.doc》
1.2单据列表示例代码及常用功能说明
具体代码示例工程参见:
《列表测试工程》
1.扩展:
PrivateWithEventsm_pagedivAsPagediv'分页引擎,配合实现单据列表自身的翻页功能。
CallobjU8Tbl.InitExternalButton(strCardNum,m_Login)
CallMe.UFToolbar1.SetFormInfo(VchLst,Me)‘单据列表及控件与toolbar绑定,以便后续二次开发功能拓展。
2.属性:
VchLst.SumStyle=vlGridSum'合计方式
'合计方式枚举
PublicEnumSumStyleEum
vlSumNone=0'没有合计
vlRecordsum=1'记录集合计
vlGridSum=2'Grid合计
vlRecordAndGridsum=3'记录集和Grid合计
EndEnum
VchLst.ReadOnly=NotCBool
(1)
VchLst.LoginObj=m_Login
VchLst.FltState=False
VchLst.ShiftUpDown=True‘是否支持shift+上下箭头连续选择行
VchLst.HiddenRefreshView=False
VchLst.FillMode=FillOverwrite'填充模式
'填充模式枚举
PublicEnumFillModeEnum
FillAppend=0'追加填充
FillOverwrite=1'覆盖填充
EndEnum
VchLst.Title=“列表的标题”
VouchList.TextMatrix(row,col)=“单元格值”
VouchList.LocateState‘定位状态True:
定位False:
取消定位
VouchList.TopRow‘纵向滚动后最顶上的当前行号
3.方法:
CallVchLst.InitFlt(m_Login,clsVoucherLst.objFilter,"","","",strErrorRes)‘初始化过滤对象
VchLst.InitHeadoColSet.getColInfo()‘初始化表头sHeadXml表头格式信息
VchLst.SetPrintOtherInfosXML‘设置打印其它信息-表尾
SetdomOption=VchLst.GetListDom(False)‘取得列表对应dom对象bSelecttrue-返回选中行dom对象false-返回整个列表dom对象
sXML=Me.VchLst.GetColumnWidthXML()‘获取被调整列宽或列序的栏目串
VchLst.SetFormatString"fdtrate","0.000000"、VchLst.DoFormat‘设置格式化信息
VchLst.ClearDataSource‘解除数据邦定
VchLst.SetVchLstRstvltable.DataRecordset‘设置表体记录集
VchLst.RecordCount=vltable.DataCount‘设置列表全部数据集记录数
VchLst.SetSumRstrstSum‘合计记录集
CallVchLst.BindPagediv(m_pagediv)‘分页引擎邦定
VchLst.AdJustGridWidth‘作废
VchLst.ProtectUnload()‘数据合法性检查。
当前对象状态安全检查,可在执行某些上层功能时调用。
如增加/删除功能、窗口Form_QueryUnload事件等地方
PrivateSubButtonClick(strButtonKeyAsString)
IfVchLst.ReadOnly=FalseThen
IfVchLst.ProtectUnload()<>2Then
ExitSub
EndIf
EndIf
CallVchLst.ShowVoucherDesign(strPrintCardnum,ipvtidStr,"SA")‘打印模板设计界面
VchLst.AddItem"",VchLst.rows‘增加项目
VchLst.ShowBatchModify‘调用这个方法显示批量修改窗口
//VchLst.AllSelect
//VchLst.AllNone
lngMainCol=VchLst.GridColIndex(strMainKey)‘根据关键字来获取所在列的索引
VchLst.Find‘查找:
在定位状态下,查找下一个
VchLst.InitPrintSetupstrPrnXml‘初始化打印设置
VouchList.VchLstPreview`'预览
VchLst.GetGridBody().XXX‘引用UFSpGrid2.ocx,用于直接操作UFSpGrid2控件
VchLst.GetGridBody().GetGridBody().XXX‘引用vsflexgrid.ocx,用于直接操作vsflexgrid控件
VouchList.Locate'定位
SetdomLine=VouchList.GetBodyLine(iRow)‘根据行索引取得表体行dom对象
4.事件:
PrivateSubVchLst_AfterColumnsDisplayRule()'着色后事件
PrivateSubVchLst_BatchModify(sItemXMLAsString)'批改窗口弹出前,对传入批改窗口的xml进行再构造,比如设置参照类型等
PrivateSubVchLst_BrowUser(RetValueAsVariant,rowAsLong,ColAsLong)‘单元格编辑参照事件
PrivateSubVchLst_CellValueChanged(ByValrowAsInteger,ByValColAsInteger,NewValueAsVariant,OldValueAsVariant,KeepFocusAsBoolean)‘单元格内容变化检查事件
PrivateSubVchLst_DblClick()‘双击
PrivateSubVchLst_FillList(ByValrAsLong,ByValcAsLong,pComAsObject)‘单元格编辑下拉事件
PrivateSubVchLst_MouseUp(ByValButtonAsInteger,ByValShiftAsInteger,ByValXAsSingle,ByValYAsSingle)
PrivateSubVchLst_PrintSettingChanged(ByValvarLocalSettingsAsVariant,ByValvarModuleSettingsAsVariant)‘打印信息改变时触发
PrivateSubVchLst_RowColChange()‘单据列表支持切换行功能
PrivateSubVchLst_SelectClick2(ByValSelectedAsBoolean,ByValrowAsLong)‘SelectClick和SelectClick2使用一个就可以了,而且SelectClick2要逐渐替代SelectClick
PrivateSubVchLst_CopySelect(bAutherAsBoolean)‘增加copytocliborad的功能,返回权限。
PrivateSubVouchList_BeforeSendCommand(cmdTypeAsU8VouchList.UFCommandType,pageSizeAsLong,pageCurrentAsLong)‘列表翻页事件
2.列表控件原有功能说明
2.1特性
列表控件的安装位置:
\U8SOFT\ufcomsql\U8VouchList.ocx
列表控件主要用于初报表外的表格样式的展示,包括单据列表、生单列表、个别档案列表等等。
列表控件主要和栏目控件配合使用,也可以单独使用。
列表控件具备编辑能力,支持文本、数字、下拉框、参照等输入方式。
下面介绍列表控件的属性、方法、事件。
2.2属性
BottomRow属性
说明:
获取当前显示区域最后一行的索引。
只读属性。
语法:
VouchList1.BottomRow
参数说明:
无
返回值:
当前显示区域最后一行的索引
ColPoint属性
说明:
获取与设置某列的小数位数。
语法:
VouchList1.ColPoint(cFld)=[valueaslong]
参数说明:
VouchList1:
控件名称
cFld:
列的字段名
Value:
小数位数
EditLocked属性
说明:
获取或设置控件是否被编辑锁定,锁定后将不能编辑。
语法:
VouchList1.EditLocked()=[valueasBoolean]
参数说明:
VouchList1:
控件名称
Value:
true—锁定,不能编辑,false—不锁定,可编辑。
FrozenCols属性
说明:
获取或设置列表控件冻结列的个数。
语法:
VouchList1.FrozenCols()=[valueasLong]
参数说明:
VouchList1:
控件名称
Value:
冻结列的个数
IsSumSelectedRows属性
说明:
获取和设置是否只对选中行进行合计。
语法:
VouchList1.IsSumSelectedRows()=[valueasBoolean]
参数说明:
VouchList1:
控件名称。
Value:
true--只对打上“Y”的行进行合计;false—对所有行进行合计。
LeftCol属性
说明:
获取和设置当前显示区域最左侧列的索引。
语法:
VouchList1.LeftCol=[valueasLong]
参数说明:
Value:
当前显示区域最左侧列的索引
LoginObj属性
说明:
获取和设置登录对象,在批改时需要登录对象。
如果使用批量替换必须设置该属性,而且在调用ShowBatchModify之前必须设置好,如果不使用批量替换,可以不设置。
语法:
VouchList1.LoginObj=[valueasObject]
参数说明:
Value:
当前U8的登录对象
ReadOnly属性
说明:
获取和设置控件是否只读。
语法:
VouchList1.ReadOnly=[valueasBoolean]
参数说明:
Value:
true—只读false—可编辑
RightCol属性
说明:
获取当前显示区域最右侧列的索引。
只读属性。
语法:
VouchList1.RightCol
参数说明:
无
ShiftUpDown属性
说明:
获取和设置是否支持shift+上下箭头连续选择行。
语法:
VouchList1.ShiftUpDown=[valueasBoolean]
参数说明:
VouchList1:
当前控件对象。
Value:
true—支持false—不支持。
ShowSelCol属性
说明:
获取和设置是否显示选择列。
语法:
VouchList1.ShowSelCol=[valueasBoolean]
参数说明:
VouchList1:
当前控件对象。
Value:
true—显示选择列false—不显示选择列。
SortASC属性
说明:
获取和设置当前排序是升序还是降序。
语法:
VouchList1.SortASC=[valueasBoolean]
参数说明:
VouchList1:
当前控件对象。
Value:
true表示升序false表示降序。
SortCol属性
说明:
获取当前排序列的列号,如果返回值为-1表示没有排序列(还没有使用过排序)。
语法:
VouchList1.SortCol
参数说明:
VouchList1:
当前控件对象。
SumRows属性
说明:
获取和设置合计(小计)行的行数。
有些合计行是业务组加进去的,不是用的SumStyle属性,这种情况处理选择行时就会把这样的行选中。
增加这个属性后,业务组代码就可以更改合计行的行数,从而在选择行时排除这些行。
注意:
合计行必须是在末尾
语法:
VouchList1.SumRows=[valueasLong]
参数说明:
VouchList1:
当前控件对象。
Value:
有多少个合计行。
SumStyle属性
说明:
如果需要连续使用addline增加行,将会频繁地调用GridAutoSum(addline内调用)导致效率下降。
解决办法:
程序员在连续调用addline之前,把sumstyle设置为sumnone,调用addline结束后,再赋回原来的合计方式。
示例代码如下:
dimOldSumStyleAsSumStyleEum
OldSumStyle=Vouchlist.SumStyle
VouchList.SumStyle=SumStyleEum.vlSumNone
........
VouchList.SumStyle=OldSumStyle
语法:
VouchList1.SumStyle=[valueasSumStyleEum]
参数说明:
VouchList1:
当前控件对象。
Value:
PublicEnumSumStyleEum
vlSumNone=0'没有合计
vlRecordsum=1'记录集合计
vlGridSum=2'Grid合计
vlRecordAndGridsum=3'记录集和Grid合计
EndEnum
TextMatrixName属性
说明:
返回表体中某一单元格的值,如果是枚举值,则返回枚举名称
语法:
VouchList1.TextMatrixName(rowaslong,colaslong)
参数说明:
VouchList1:
控件名称
Row:
行索引
Col:
列索引
TopRow属性
说明:
获取和设置当前显示区域最顶端行的索引。
语法:
VouchList1.TopRow=[valueasLong]
参数说明:
Value:
当前显示区域最顶端行的索引
2.3方法
AddLine方法
说明:
根据传入dom对象新增加一行,内部要调用AddItem方法。
语法:
FunctionAddLine(ByValrowAsLong,ByValoDomAsDOMDocument)AsBoolean
参数说明:
Row:
插入行索引,在该行后插入新增行
oDom:
行dom对象
返回值:
成功返回true,失败返回false。
AddSumLine方法
说明:
根据传入dom对象新增加一行合计行.
语法:
PublicFunctionAddSumLine(ByValrowAsLong,ByValoDomAsDOMDocument)AsBoolean
参数说明:
Row:
插入行索引,在该行后插入新增行
oDom:
行dom对象
返回值:
成功返回true,失败返回false。
CalcSum方法
说明:
重新计算合计行的数值。
语法:
PublicSubCalcSum()
参数说明:
无
返回值:
无
DisableTextMatrix方法
说明:
设置单元格是否可用,不可用后,既不能手工输入,也不能通过textmatrix赋值。
语法:
PublicSubDisableTextMatrix(ByValbDisableAsBoolean,ByValsIndexAsString,ByValrowAsLong)
参数说明:
bDisable:
true-disablefalse-enable
sIndex:
列索引(字符串)
row:
行索引(数值)
返回值:
无
GetBodyLine方法
说明:
根据行索引取得表体行dom对象。
语法:
PublicFunctionGetBodyLine(ByValrowAsLong)AsDOMDocument
参数说明:
row:
行索引(数值)
返回值:
行dom对象,其中包含行中的数据。
GetColIndex方法
说明:
根据列的字段名称取列的顺序号。
语法:
PublicFunctionGetColIndex(ByValColNameAsString)AsLong
参数说明:
ColName:
列的字段名称
返回值:
列的顺序号。
GetColName方法
说明:
根据列的顺序号取列的字段名称。
语法:
PublicFunctionGetColName(ByValColIndexAsLong)AsString
参数说明:
ColName:
列的顺序号
返回值:
列的字段名称 。
GetGridBody方法
说明:
获取列表控件封装的SuperGrid控件。
语法:
PublicFunctionGetGridBody()AsObject
参数说明:
无
返回值:
SuperGrid控件对象。
GetHeadLine方法
说明:
取得标题行的dom对象。
语法:
PublicFunctionGetHeadLine()AsDOMDocument
参数说明:
无
返回值:
标题行的dom对象。
GetListDom方法
说明:
取得列表数据的dom对象。
语法:
PublicFunctionGetListDom(ByValbSelectAsBoolean)AsDOMDocument
参数说明:
bSelect:
true-返回选中行dom对象false-返回整个列表dom对象
返回值:
列表数据的dom对象 。
HideCaption方法
说明:
隐藏列表的标题,如销售订单列表的标题“销售订单列表”。
语法:
PublicSubHideCaption()
参数说明:
无
返回值:
无
Locate方法
说明:
弹出定位窗口,根据输入的条件定位。
语法:
PublicSubLocate(ByValLocStateAsBoolean)
参数说明:
LocState:
true-定位false-取消定位
返回值:
无。
ProtectUnload方法
说明:
当前对象状态安全检查,可在执行某些上层功能时调用。
如增加/删除功能、窗口Form_QueryUnload事件等地方
语法:
PublicFunctionProtectUnload()AsOpType
参数说明:
无
返回值:
EnumOpType
dbCandel=0—取消操作
db
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- L5U8 111客开培训文档单据列表 111 培训 文档 单据 列表