版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
U8单据列表控件开发
培训部门:U8平台及公共开发部U8版本号:
V11.1
讲师:李亮定稿时间:2023-11-11
0.变更记录
变更阶段时间变更因素变更内容提出人
类型
1.单据列表介绍
1.1单据列表发展历程
单据列表发展经历了如下几个重大里程碑:
1.U8V8.72
1)单据列表控件弓|用的UFSpGrid.ocx因代码超过VB工程"容量",同时避免打破
兼容性更换为
UFSpGrid2.ocxo
2)同时单据列表支持的编辑功能,具体如下:
单据列表对合并显示功能的支持:
要使单据列表支持合并显示的功能,重要要对栏目设立功能的进行设立,
单据列表对参照输入的支持
1.增长对事件BrowUsecFillList的支持,其用法与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中增长分页的功能,用法如下:
L请按原有使用VouchList的方式使用单据列表
2.将分页的按钮放在所使用的窗体中
3.在数据库中执行脚本创建分页引擎的存储过程SPPagediv
2.U8V11.0
1.2单据列表整合了翻页和快捷过滤功能,同时增强了交
互和易用性。如着色、布局等20多个功能,具体参考《新
单据列表迁移指导说明,doc》
13单据列表达例代码及常用功能说明
1.具体代码示例工程参见:《列表测试工程》
2.扩展:
PrivateWithEventsm_pagedivAsPagediv'分页引擎,配合实现单据列表自身的翻页
功能。
CallobjU8Tbl.InitExternalButton(strCardNum,m_Login)
3.CallMe.UFToolbarl.SetFormInfo(VchLst,Me)'单
据列表及控件与toolbar绑定,以便后续二次开发功能拓展。
4.属性:
VchLst.SumStyle=vIGridSum'合计方式
’合计方式枚举
PublicEnumSumStyleEum
vISumNone=0'没有合计
vlRecordsum=1'记录集合计
vIGridSum=2,Grid合计
vIRecordAndGridsum=3'记录集和Grid合计
EndEnum
VchLst.ReadOnly=NotCBool(l)
VchLst.LoginObj=m_Login
VchLst.FItState=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'纵向滚动后最顶上的当前行号
5.方法:
'初始
CallVchLst.InitFlt(m_LoginzcIsVoucherLst.objFilter,strErrorRes)
化过滤对象
VchLst.InitHeadoColSet.getColInfoQ'初始化表头sHeadXml表头格式信息
VchLst.SetPrintOtherlnfosXML'设立打印其它信息-表尾
SetdomOption=VchLst.GetListDom(False)'取得列表相应dom对象bSelect
true-返回选中行dom对象false-返回整个列表dom对象
sXML=Me.VchLst.GetColumnWidthXMLO'获取被调整列宽或列序的栏目串
VchLst.SetFormatStrinc"fdtrate","0.000000"、VchLst.DoFormat'设立格式化信息
VchLst.ClearDataSource'解除数据邦定
VehLst.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.ShowVoucherDesignCstrPrintCardnum,ipvtidStr,"SAn),打印模板设计
界面
VehLst.AdditemVehLst.rows'增长项目
VchLst.ShowBatchModify'调用这个方法显示批量修改窗口
//VchLst.AIISelect
//VchLst.AIINone
IngMainCol=VchLst.GridColIndex(strMainKey)'根据关键字来获取所在列的索引
VchLst.Find'查找:在定位状态下,查找下一个
VchLst.InitPrintSetupstrPrnXml'初始化打印设立
VouchList.VchLstPreview''预览
VchLst.GetGridBodyO.XXX'引用UFSpGrid2.ocx,用于直接操作UFSpGrid2控件
VchLst.GetGridBody().GetGridBody().XXX'引用vsflexgrid.ocx,用于直接操作
vsflexgrid控件
VouchList.Locate'定位
SetdomLine=VouchList.GetBodyLine(iRow)'根据行索引取得表体行dom对象
6.事件:
PrivateSubVchLst_AfterColumnsDisplayRule()'着色后事件
PrivateSubVchLst_BatchModify(sItemXMLAsString)'批改窗口弹出前,对传入批改
窗口的xml进行再构造,比如设立参照类型等
PrivateSubVchLst_Browllser(RetValueAsVariant,rowAsLong,ColAsLong)
'单元格编辑参照事件
PrivateSubVchLst_CellValueChanged(ByValrowAsInteger,ByVaiColAsInteger,
NewValueAsVariant,OldValueAsVariant,KeepFocusAsBoolean)'单元格内容变
化检查事件
PrivateSubVchLst_DblClick()'双击
PrivateSubVchLst_FillList(ByValrAsLong,ByVaicAsLong,pComAsObject)
'单元格编辑下拉事件
PrivateSubVchLst_MouseUp(ByValButtonAsInteger,ByVaiShiftAsInteger,ByVai
XAsSingle,ByVaiYAsSingle)
PrivateSubVchLst_PrintSettingChanged(ByValvarLocalSettingsAsVariant,ByVai
varModuleSettingsAsVariant)'打印信息改变时触发
PrivateSubVchLst_RowColChange()'单据列表支持切换行功能
PrivateSubVchLst_SelectClick2(ByValSelectedAsBoolean,ByVairowAsLong)
^electClick和SelectClick2使用一个就可以了,并且SelectClick2要逐渐替代
SelectClick
PrivateSubVchLst_CopySelect(bAutherAsBoolean)'增长copytocliborad的功
能,返回权限。
PrivateSubVouchList_BeforeSendCommand(cmdTypeAs
U8VouchList.UFCommandType,pageSizeAsLong,pageCurrentAsLong)'歹!表翻
页事件
2.列表控件原有功能说明
2.1特性
列表控件的安装位置\U8soFT\ufcomsql\U8VouchList.ocx
列表控件重要用于初报表外的表格样式的展示,涉及单据列表、生单列表、个别档案列
表等等。
列表控件重要和栏目控件配合使用,也可以单独使用。
列表控件具有编辑能力,支持文本、数字、卜拉框、参照等输入方式。
下面介绍列表控件的属性、方法、事件。
2.2属性
BottomRow属性
说明:
获取当前显示区域最后一行的索引。只读属性。
语法:
VouchListl.BottomRow
参数说明:无
返回值:
当前显示区域最后一行的索引
ColPoint属性
说明:
获取与设立某列的小数位数。
语法:
VouchListl.ColPoin.(cFld..[valu.a.long]
参数说明:
VouchListl:控件名称
eFid:列的字段名
Value:小数位数
EditLocked属性
说明:
获取或设立控件是否被编辑锁定,锁定后将不能编辑。
语法:
VouchListl.EditLocke.(..[valu.a.Boolean]
参数说明:
VouchListl:控件名称
Value:true一锁定,不能编辑,false一不锁定,可编辑.
FrozenCols属性
说明:
获取或设立列表控件冻结列的个数。
语法:
VouchListl.FrozenCoL(..[valu.a.Long]
参数说明:
VouchListl:控件名称
Value:冻结列的个数
IsSumSelectedRows属性
说明:
获取和设立是否只对选中行进行合计。
语法:
VouchListl.lsSumSelectedRow.(..[valu.a.Boolean]
参数说明:
VouchListl:控件名称。
Value:true--只对■打上“Y”的行进行合计;false一对所有行进行合计。
LeftCol属性
说明:
获取和设立当前显示区域最左侧列的索引。
语法:
VouchListl.LeftCc..[valu.a.Long]
参数说明:
Value:当前显示区域最左侧列的索引
LoginObj属性
说明:
获取和设立登录对象,在批改时需要登录对象。
假如使用批量替换必须设立该属性,并且在调用ShowBatchModify之前必须设立好,
假如不使用批量替换,可以不设立。
语法:
VouchListl.LoginOb..[valu.a.Object]
参数说明:
Value:当前U8的登录对象
Readonly属性
说明:
获取和设立控件是否只读。
语法:
VouchListl.ReadOnl..[valu.a.Boolean]
参数说明:
Value:true一只读false一可编辑
RightCol属性
说明:
获取当前显示区域最右侧列的索引。只读属性。
语法:
VouchListl.RightCol
参数说明:
无
ShiftUpDown属性
说明:
获取和设立是否支持shift+上下箭头连续选择行。
语法:
VouchListl.ShiftUpDown.[valu.a.Boolean]
参数说明:
VouchListl:当前控件对象。
Value:true一支持false一不支持。
ShowSelCol属性
说明:
获取和设立是否显示选择列。
语法:
VouchListl.ShowSelCoL[valu.a.Boolean]
参数说明:
VouchListl:当前控件对象。
Value:true一显示选择列false一不显示选择列。
SortASC属性
说明:
获取和设立当前排序是升序还是降序。
语法:
VouchListl.SortASC.[valu.a.Boolean]
参数说明:
VouchListl:当前控件对象“
Value:true表达升序false表达降序。
SortCol属性
说明:
获取当前排序列的列号,假如返回值为-1表达没有排序列(还没有使用过排序)。
语法:
VouchListl.SortCol
参数说明:
VouchListl:当前控件对象。
SumRows属性
说明:
获取和设立合计(小计)行的行数。
有些合计行是业务组加进去的,小是用的SumStyle属性,这种情况解决选择行时就
会把这样的行选中。增长这个属性后,业务组代码就可以更改合计行的行数,从而在选择行
时排除这些行。
注意:合计行必须是在末尾
语法:
VouchListl.SumRows.[valu.a.Long]
参数说明:
VouchListl:当前控件对象。
Value:有多少个合计行。
SumStyle属性
说明:
假如需要连续使用addline增长行,将会频繁地调用GridAutoSum(addline内调用)
导致效率下降。
解决办法:程序员在连续调用addline之前,把sumstyle设立为sumnone,调用
addline结束后,再赋回本来的合计方式。示例代码如下:
dimOldSumStyleAsSumStyleEum
OldSumStyle=Vouchlist.SumStyle
VouchList.SumStyle=SumStyleEum.vlSumNone
VouchList.SumStyle=OldSumStyle
语法:
VouchListl.SumStyle.[valu.a.SumStyleEum]
参数说明:
VouchListl:当前控件对象。
Value:
PublicEnumSumStyleEum
vISumNone=0'没有合计
vIRecordsum=1,记录集合计
vIGridSum=2,Grid合计
vIRecordAndGridsum=3,记录集和Grid合计
EndEnum
TextMatrixName属性
说明;
返回表体中某一单元格的值,假如是枚举值,则返回枚举名称
语法:
VouchListl.IextMatrixNamefrowaslong,colaslong)
参数说明:
VouchListl:控件名称
Row:行索引
Col:列索引
TopRow属性
说明:
获取和设立当前显示区域最顶端行的索引。
语法:
VouchListl.TopRo.Jvalu.a.Long]
参数说明:
23Value:当前显示区域最顶端行的索引
2.4方法
AddLine方法
说明:
根据传入dom对象新增长一行,内部要调用Additem方法。
语法:
FunctionAddLine(ByValrowAsLong,ByVaioDomAsDOMDocument)AsBoolean
参数说明:
Row;插入行索引,在该行后插入新增行
oDom:行dom对象
返回值:成功返回true,失败返回false。
AddSumLine方法
说明:
根据传入dom对象新增长一行合计行.
语法:
PublicFunctionAddSumLine(ByValrowAsLong,ByVaioDomAsDOMDocumert)As
Boolean
参数说明:
Row:插入行索引,在该行后插入新增行
oDom:行dom对象
返回值:
成功返回true,失败返回falseo
CalcSum方法
说明:
重新计算合计行的数值。
语法:
PublicSubCalcSum()
参数说明:
无
返回值:
无
DisableTextMatrix方法
说明:
设立单元格是否可用,不可用后,既不能手工输入,也不能通过textmatrix赋
值。
语法:
PublicSubDisableTextMatrix(ByValbDisableAsBoolean,ByVaislndexAsString,ByVai
rowAsLong)
参数说明:
bDisable:true-disablefalse-enable
slndex:列索引(字符串)
row:行索引(数值)
返回值:
无
GetBodyLine方法
说明:
根据行索引取得表体行dom对象。
语法:
PublicFunctionGetBodyLine(ByValrowAsLong)AsDOMDocument
参数说明:
row:行索引(数值)
返回值:
行dom对象,其中包含行中的数据。
GetCollndex方法
说明:
根据列的字段名称取列的顺序号。
语法:
PublicFunctionGetCollndex(ByValColNameAsString)AsLong
参数说明:
ColName:列的字段名称
返回值:
列的顺序号。
GetColName方法
说明:
根据列的顺序号取列的字段名称。
语法:
PublicFunctionGetColName(ByValCollndexAsLong)AsString
参数说明:
ColName:列的顺序号
返回值:
列的字段名称。
GetGridBody方法
说明:
获取列表控件封装的SuperGrid控件。
语法:
PublicFunctionGetGridBodyOAsObject
参数说明:
无
返回值:
SuperGrid控件对象。
GetHeadLine方法
说明:
取得标题行的dom对象。
语法:
PublicFunctionGetHeadLine()AsDOMDocument
参数说明:
无
返Pl值:
标题行的dom对象。
GetListDom方法
说明:
取得列表数据的dom对象。
语法:
PublicFunctionGetListDom(ByValbSelectAsBoolean)AsDOMDocument
参数说明:
bSelect:true-返回选中行dom对象false-返回整个列表dom对象
返回值:
列表数据的dom对象。
HideCaption方法
说明:
隐藏列表的标题,如销售订单列表的标题“销售订单列表”。
语法:
PublicSubHideCaptionf)
参数说明:
无
返回值:
无
Locate方法
说明:
弹出定位窗口,根据输入的条件定位。
语法:
PublicSubLocate(ByValLocStateAsBoolean)
参数说明:
LocState:true-定位false-取消定位
返回值:
无。
ProtectUnload方法
说明:
当前对象状态安全检查,可在执行某些上层功能时调用。如增长/删除功能、窗口
Form_QueryUnload事件等地方
语法:
PublicFunctionProtectUnload()AsOpType
参数说明:
无
返回值:
EnumOpType
dbCandel=O—取消操作
dbRetry重试操作
dbsuccess操作成功
EndEnum
ReadOnlyTextMatrix方法
说明:
设立单元格是否只读,只读单元格不能手工输入,但是可以通过textmatrix赋
值。
语法:
PublicSubReadOnlyTextMatrix(ByValbReadOnlyAsBoolean,ByVaislndexAsString,
ByVairowAsLong)
参数说明:
bReadOnly:true-只读false一可编辑
slndex:列索引(字符串)
row:行索引(数值)
返回值:
无
Removeitem方法
说明:
删除一行。
语法:
PublicSubRemoveItern(ByVaiIndexAsVariant)
参数说明:
Index:行索引(数值)
返回值:
无
SetCellFocus方法
说明:
光标移至单元格(Row,Col)。
语法:
PublicFunctionSetCellFocus(ByValrowAsLong,ByVaicolAsLong)
参数说明:
row:行索引(数值)
col:列索引(数值)
返回值:
无
SetListDom方法
说明:
将dom对象内的数据刷新到列表界面上,dom对象是一个recordset转换的对
象。
语法:
PublicFunctionSetListDomfByValoDomAsDOMDocument)AsBoolean
参数说明:
oDom:存放数据的dom对象
返回值:
执行成功返网true,否则返I可false。
ShowBatchModify方法
说明:
显示批量修改窗口,要支持批量修改功能,必须调用此方法。
语法:
PublicSubShowBatchModifyO
参数说明:
无
返P1值:
无
UpdateLine方法
说明:
根据传入dom对象数据更新一行。
语法:
PublicFunctionUpdateLine(ByValrowAsLong,ByVaioDomAsDOMDocument)As
Boolean
参数说明:
Row:行索引
oDOM:dom对象
2.5返回值:
2.6更新成功返回true,否则返回false。
2.7事件
AfterSort事件
触发时机:
排序之后触发此事件
功能:
解决列排序后的事件
声明:
PublicEventAfterSort(ByValcolAsLong,ByVaibAscAsBoolean)
参数说明:
bAsc:true一升序false一降序
col:排序的列号
BatchModify事件
触发时机;
批改窗口弹出前触发此事件
功能:
批改窗口弹出前,对传入批改窗口的xml进行再构造,比如设立参照类型等。
声明:
PublicEventBatchModify(ByRefsltemXMLAsString)
参数说明:
sltemXML:出给批改出口的xml字符串。
BeforeEdit事件
触发时机:
单元格进入编辑状态前触发此事件
功能:
进入编辑之前的事件,可以在这里做一些编辑前的设立和判断,假如Cancel返回
true,则不进入编辑。
声明:
PublicEventBeforeEdit{ByRefCancelAsBoolean)
参数说明:
Cancel:假如Cancel返回true,则不进入编辑。
BeforeSort2事件
触发时机:
将要排序之前触发此事件
功能:
解决列排序前的个性化需求
声明:
PublicEventBeforeSort2(ByRefbSortAsBoolean,ByVaicolAsLong,ByVaibAscAs
Boolean)
参数说明:
bSort:是否继续排序,假如为false,则将不执吁排序操作,也将不触发BeforeSort
和AfterSort均件。
bAsc:true—将要执行的是升序false一将要执行的是降序
col:排序的列号
BeforeSort事件
此事件已废弃,由DeforSort2代替。
Click事件
触发时机:
鼠标在控件上点击时触发
功能:
解决鼠标单击事件
声明:
PublicEventClick;)
参数说明:
无
DbICIick事件
触发时机:
鼠标在控件上双击时触发
功能:
解决缸标双击事件
声明:
PublicEventDblClick()
参数说明:
无
IsAllowBatchModify"件
触发时机:
批改窗口关闭后,执行批改过程中触发。
功能:
是否允许批改事件,在进行枇改前判断单元格是否可修改,假如bCanModify返回
为false,则对此单元格不执行批改。
声明:
EventlsAllowBatchModify(ByRefbCanModifyAsBoolean,ByVairowAsLong,ByVai
colkeyAsString)
参数说明:
bCanModify:false一不执行批改true一执行批改
row:行索引
coIkey:列字段名
KeyDown事件
触发时机:
键盘按键按下时触发
功能:
解决键盘按键按下事件
声明:
PublicEventKeyDown(ByVaiKeyCodeAsInteger,ByVaiShiftAsInteger)
参数说明:
KeyCode:按下的按键
Shift:同时按下的其他功能键
KeyPress犷件
触发时机:
键盘按键按下时触发
功能:
解决键盘按键按下.事件
声明:
PublicEventKeyPress(ByValKeyAsciiAsInteger)
参数说明:
KeyAscii:按下的按键
KeyUp事件
触发时机:
键盘按键按下后又松开是触发
功能:
解决键盘按键松开抬起时的事件
声明:
PublicEventKeyllp(ByValKeyCodeAsInteger,ByVaiShiftAsInteger)
参数说明:
KeyCode:按下佗按键
Shift:同时按下的其他功能键
SelectClick2事件
触发时机:
当选中/取消选(打上“Y”/去掉“Y")中一行时触发此事件。
代替SelectClick事件。
功能:
解决行选中/取消选中时的个性化操作。
声明:
PublicEventSelectClick2(ByValSelectedAsBoolean,ByVairowAsLong)
参数说明:
Selected:当前所点击的选择列的状态,假如已选择,也就是被打上“Y”,则此值为
True,否则为False
Row:当前选中/取消选中的行索引。
其他的属性、方法、事件
2.8列表控件其他的属性、方法、事件请参考:(html格
式文献,双击图标可打开)
2.9Supergrid表格控件
SuperGrid控件的安装位置:\U8SOFT\ufcomsql\UFSPGrid.ocx
属性
方法
Additem方法
说明:
在列表表体中增长一行
语法:
VouchListl.Addltem(ltemAsString,[IndexAsLong])
参数说明:
Item:待插入行的String表达,用vbTag或Chr(O)分隔开的字符串
Index:待插入的行在列表中所在的位置,假如这个参数忽略,将在列表的表体最末行加
入
返回值:
无
Clear方法
说明:
清空Grid的数据。
语法:
VouchListl.Addltem(ltemAsString,[IndexAsLong])
参数说明:
Item:待插入行的String表达,用vbTag或Chr(O)分隔开的字符申
Index:待插入的行在列表中所在的位置,假如这个参数忽略,将在列表的表体最末行加
入
返回值:
无
事件
BeforeEdit事件
触发时机:
单元格进入编辑状态前触发此事件
功能:
进入编辑之前的事件,可以在这里做一些编辑前的设立和判断,假如Cancel返回
true,则不进入编辑。
声明:
EventBeforeEdit(CancelAsBoolean,sReturnTextAsString)
参数说明:
Cancel:假如Cancel返回true,则不进入编辑
sReturnText:可以通过这个参数返回单元格的值
其他的属性、方法、事件
Supergrid表格控件的属性、方法、事件请参考:(html格式文献,双击图标可打开)
3.栏目控件相关
3.1特性
3.2栏目控件是用来设立编辑栏目的位置、标题、宽度等信息的控件,开发者可以运用此控件返回
的SQL语句动态拼写SQL语句。
3.3显示栏目
DimcolsetasNewU8ColumnSet.cisSet
Cnnstr=HData数据库连接串”
Callcolset.init(cnnstr,用户名)
Callcolset.setColMode(Key(^,1)'第二个参数为1返回显示列,为2返回默认列,为0返
回所有列
Colset.setcol
3.4得到返回值
eGetSqIString返回SQL语句的Select部分。
今GetSqISumString返回SQL语句的汇总部分(需要将ShowSumType设立.为True才
有效)。
◊GetOrderString>GetOrderStringEx返回SQL语句的Orderby部分。
。GetSQLGroupString返回SQL语句的GroupBy部分(需要将ShowSumType设立为
True才有效)
3.5getColInfo得到栏目的XML信息
3.6关于元数据和缓存
4.栏目存储规则为先从Meta库的AA_Columndic_Base表中读取数据,同时管理客户数据即Data库的
AA_Columnset_Base表。假如客户在Data库中的AA_CoIumndic_Base表中有与Meta库不存在的记
录则会加载这部分记录。
5・栏目存储后会将记录缓存在Data库的AA_ColuninDicCache_Main和表AA_ColumnDicCache_Detail
表中,所以假如手工提交栏目的SQL语句修改栏目则需要清除以上两个表的相关记录。
6.权限相关
摘要
功能权限通常称之为“按钮权限”或者“菜单权限"即控制用户点击按钮或者菜单的
权限。
设立用户、角色相应档案、单据的数据权限,用于控制后续业务解决中允许录入、杳看
的数据范围。
支持记录级权限控制和字段级权限控制。用户可以根据数据权限默认设立来决定某一系
统是否需要权限控制。用户具体的权限由用户自身权限、用户继承角色权限组成。
记录级权限支持VB版和.Net版两个版本。重要负责控制用户可以看到多少数据,例如
部门档案,可以通过记录级权限设立某一用户只能查看或修改其中一个或多个部门数据。
11.0版木增长了管理维度权限,它属于记录级功能权限的一个扩展,它可对某些特殊档
案进行多个维度的控制,例如客户档案,我们可以设立A用户的客户管理维度权限:当某些
客户档案属于XX部门管理,地点在北京地区,又属于H■业务时(相称于符合3个维度权限
规定),A用户可看到该客户档案信息,假如该客户档案有一个维度不符合,则A用户就看不
到该客户档案信息。
字段级权限:可以控制某一个用户是否可以查看/修改某一个敏感字段,例如某公司采
购一件商品,运货人员在系统中是不允许看到本次交易金额的,但是可以看见货品的发货地
址和接受地址。
注意:870之后,字段权限增长了无权限。其中有两点需要特别注意:
(1)系统为字段级权限设立了默认权限,而当用户自身设立了其中某一字段权限后,则
该权限优先,默认权限失效。
(2)当一个用户拥1ff多个角色,那么一方面用户自身设立的权限优先,其他权限均取最
大权限值。
什么是权限?
U8系统里的权限分为两种,一种是对功能权限进行控制,另一种则是对系统中的每一行数
据或者一部分数据中的敏感字段进行控制,不同的人授予不同的权限,增强系统的安全性和
保密性,达成最终的管理目的。
目的
本文重要介绍权限的基础知识,应用过程及相关注意事项,方便各类U8产品开发人员更好
的使用权限,更高效的开发产品。
6.1功能权限可以做什么?
6.2功能权限通常称之为〃按钮权限”或者〃菜单权限”,即
控制用户点击按钮或者菜单的权限。功能权限控制的精细
限度由开发者来决定。比如某个功能点仅控制菜单进入权
限,另一功能点控制〃新增,“修改删除“权限。
如何使用功能权限?
预置功能权限
从10.0开始,账套库增长了权限表UA_Auth_Base和UA_Auth_Lang,表结构与
UFSystem库相应的表结构完全•致,UFSystem库的表用于存放标准产品预置数据,UFDATA
账套库的表用于存放运营时产生的权限(如用户自定义报表、表单)和二次开发的权限。
注意,二次开发的权限信息必须存放在账套库中,否则备份还原账套时权限将会丢失。
数据字典如下:
功能权限基本表(UA_Auth_Base)(UFData库)
字段名字段类型说明
cAuth_ld(U861)nvarchar(lOO)功能编号
cSub_ld(U861)nvarchar(2)模块标记
iGrade(U861)smallint级次
cSupAuth_ld(U861)nvarchar(lOO)上级功能编号
bEndGrade(U861)bit是否末级
cAcc_ld(U861)nvarchar(3)账套号(废弃)
iOrder(U861)int显示顺序号
互斥类型(不需要预制,计算结果,参见登录
cAuthType(U870)nvarchar(lO)开发文档)
父节点目录(不需要预制,计算结果,参见登
cAIISupAuths(U871)nvarchar(1024)录开发文档)
互斥功能个数(不需要预制,计算结果,参见
irepnum(U871)int登录开发文档)
互斥模块集合,以逗号分隔(不需要预制,计
cRepellentModule
nvarchar(255)算结果,参见登录开发文档)
(U871)
不互斥功能集合,以逗号分隔(不需要预制,
cNotRepellent(U871)nvarchar(1024)计算结果,参见登录开发文档)
互斥功能集合,以逗号分隔(不需要预制,计
cRepellent(U871)nvarchar(4000)算结果,参见登录开发文档)
互斥功能集合,以逗号分隔(不需要预制,计
cRepInDB(U8100)nvarchar(4000)算结果,参见登录开发文档)
互斥模块集合,以逗号分隔(不需要预制,计
cRepModlnDB(U8100)nvarchar(250)算结果,参见登录开发文档)
不互斥功能集合,以逗号分隔(不需要预制,
cNotRepInDB(U8100)nvarchar(1024)计算结果,参见登录开发文档)
功能权限多语表(UA_Auth_Lang)(UFData库)
字段名字段类型说明
cAuth_ID(U861)nvarchar(100)功能编号
语言ID,zh-CN(简体中文),zh-TW(繁体中
localeid(U861)nvarchar(32)
文),en-US(英文)
cAuth_Name(U861)nvarchar(150)功能权限名称
运营时验证功能权限
参照登录开发文档。
把功能权限与公司门户菜单进行关联
参照公司门户开发文档。
数据权限可以做什么?
数据权限是软件系统中开发中必不可少的功能,它是整个软件安
全的一部分。
V10.1及之前版本数据权限特性
由于V11.0版本只是在数据权限中增长和调整了一部分管理维度权
限,其他内容均和之前版本相似,所以这里不做重点的讲解,这些版
本的程序引用和调用方法模式没有变化。使用方式将在如何使用数据
权限中介绍。
VII特性
支持管理维度控制
对于客户、客户联系人、服务、线索、行动、竞争对手、竞争订单等一些特殊的业务对
象进行多维度的控制.来达成更复杂的数据安全管理需求。目前支持7个维度的控制.
分别为相关/负责人员、部门、管理维度1.管理维度2.管理维度3.管理维度4.客户权
限维度,其中相关/负责人员的数据来源于系统操作员,部门档案维度的数据来源尸部
门档案,管理维度1到4以及客户权限维度均由用户自己定义数据来源。
管理维度控制
序号业务对象□相关/负责员工L部门匚业务结构□区域结构口首理维度3匚哲理维度4口客尸权P魏度
1客户档案a画00000
2客户联系人□□□□□□□
3嫩务□□□□□□■
4霰务工单□□□□□□□
5服务计划模板□□°□□□口
6竞争存货■□□□□□□
7竞争订单□□□□□□口
8竞争对手■□□□□□□
9市场活动□□°□□□口
10销售机会□□□□□□□
11CRM报表□□□□□□□
12调直问卷□□□□□□□
13费用审核□■°□□□□□
14内部交流□□□□□□□
15线索□□□□□□□
16行动□□■□□□□
17资通■□□°°□口
18销售报价单□■■□□
19销售订单□■□□□
管理维度1.管理维度2.管理维度3.管理维度4.客户权限维度用户可自行定义名称
管理维度定义
笞理维度类型固体)管理维震类型熨体)管理维度类型供文)数宪来源对应档案应用状态
用户自定义名称
巢BusinessStructure系统卷案客尸分类启用
区域结构区域GeographicStructure手工痂入启用
笞理维度3省理雉23Privileges手工购入月用
笞理雄度4省理雒&4Privilege4手工痂入月用
客户权限维度客户肝可灌雉度Custonei-Pi-ivilege手工输入启用
数据来源可以选择手工录入,也可选择来源于系统档案
管理维度定义
管理维S类型询体)笆理维度类型素体)管理难度类型发文)数据来源对应档案启用状态
业务结构BusinessStructure东城档案客尸分类]启用
手工输入腱穿窦—―
区嵋构医域结横GeographicStructure启用
仃北万K
莒理雄度3苣理雉度3Privileges手工输入启用
莒理雄度4苣理融4Privilege4手工输入启用
客户权限维度客户辆攫
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 棋牌室设施维修保养合同
- 线上线下融合陈列技巧服务协议
- 2026年大班语言领域辩论与讲述活动计划
- 2026年超声科远程教学与网络直播培训平台建设
- 2026年交通运输安全标准化培训
- 2026年直升机托管服务协议与费用测算
- 台球厅员工离职交接合同
- 2026年食品保水剂产品技术答疑与售后服务
- 2025年工业物联网时间同步架构:PTP协议与时钟校准实践
- 2026年药品残留溶剂测定方法验证
- 某企业清洁生产审计手册
- 中国深色名贵硬木家具标准
- 一期6万ta氯化法钛白粉工程项目的可行性研究报告
- 密封条范文模板(A4打印版)
- 新人教版高中物理必修二第八章《机械能守恒定律》测试题(含答案解析)
- 免费DDOS攻击测试工具大合集
- 水库运行管理试题
- 无创呼吸机课件
- 反恐应急演练过程记录表
- 电气工程竣工验收表格模板
- 幼升小大班衔接教育PPT模板幼儿园大班《我要上小学了》幼儿园与小学不同情况介绍ppt课件
评论
0/150
提交评论