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

付费下载

下载本文档

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

文档简介

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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论