版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
精品文檔精心整理精品文檔可編輯的精品文檔L5U8客開培訓(xùn)文檔單據(jù)列表目錄:1、L5U8客開培訓(xùn)文檔單據(jù)列表2、某山渣公司的培訓(xùn)制度及全套表格3、預(yù)備法官培訓(xùn)結(jié)業(yè)鑒定表U8單據(jù)列表控件開發(fā)培訓(xùn)部門:U8平臺及公共開發(fā)部U8版本號:V11.1講師:李亮定稿時間:2013-11-110.變更記錄變更階段時間變更原因變更類型內(nèi)容提出人
單據(jù)列表介紹單據(jù)列表發(fā)展歷程單據(jù)列表發(fā)展經(jīng)歷了如下幾個重大里程碑:1、U8V8.721)單據(jù)列表控件引用的UFSpGrid.ocx 因代碼超出VB工程“容量”,同時避免打破兼容性,更換為UFSpGrid2.ocx。2)同時單據(jù)列表支持的編輯功能,具體如下:單據(jù)列表對合并顯示功能的支持:要使單據(jù)列表支持合并顯示的功能,主要要對欄目設(shè)置功能的進行設(shè)置,單據(jù)列表對參照輸入的支持1、增加對事件BrowUser,FillList的支持,其用法與SuperGrid中的用法相同2、要使單據(jù)列表具有參照輸入的功能,須在欄目設(shè)置中進行如下設(shè)置:a.AA_ColumnDic及AA_ColumnSet兩個視圖b.BrowUserType,如果為NULL或為0,則單據(jù)列表狀態(tài)保持原樣,其它類型同SuperGrid中的類型定義,其定義如下:'列參照類型EnumBrowTypeBrowNull=0UserBrowButtonDblBrowButtonDateBrowButtonBrowComEndEnum其值按1遞增。增加對超字段選擇范圍的支持,也就條件的字節(jié)數(shù)可以超過8k限制增加對UAP結(jié)構(gòu)下分頁組件的調(diào)用方式,用法如下:其大體調(diào)用方式與CS方式下的調(diào)用沒有太大區(qū)別,與CS不同的地方在于要UAP的調(diào)用方式要聲明一個算法變量,以支持UIP調(diào)用后結(jié)果集的導(dǎo)入,具體用法詳見示例工程的Form2代碼增加對枚舉類型的支持在U8VouchList中增加分頁的功能,用法如下:1、請按原有使用VouchList的方式使用單據(jù)列表2、將分頁的按鈕放在所使用的窗體中3、在數(shù)據(jù)庫中執(zhí)行腳本,創(chuàng)建分頁引擎的存儲過程SPPagediv2、U8V11.0 單據(jù)列表整合了翻頁和快捷過濾功能,同時增強了交互和易用性。如:著色、布局等20多個功能,具體參考《新單據(jù)列表遷移指導(dǎo)說明.doc》單據(jù)列表示例代碼及常用功能說明具體代碼示例工程參見:《列表測試工程》擴展:PrivateWithEventsm_pagedivAsPagediv'分頁引擎,配合實現(xiàn)單據(jù)列表自身的翻頁功能。CallobjU8Tbl.InitExternalButton(strCardNum,m_Login)CallMe.UFToolbar1.SetFormInfo(VchLst,Me) ‘單據(jù)列表及控件與toolbar綁定,以便后續(xù)二次開發(fā)功能拓展。屬性:VchLst.SumStyle=vlGridSum '合計方式'合計方式枚舉PublicEnumSumStyleEumvlSumNone=0'沒有合計vlRecordsum=1'記錄集合計vlGridSum=2'Grid合計vlRecordAndGridsum=3'記錄集和Grid合計EndEnumVchLst.ReadOnly=NotCBool(1)VchLst.LoginObj=m_LoginVchLst.FltState=FalseVchLst.ShiftUpDown=True ‘是否支持shift+上下箭頭連續(xù)選擇行VchLst.HiddenRefreshView=FalseVchLst.FillMode=FillOverwrite '填充模式'填充模式枚舉PublicEnumFillModeEnumFillAppend=0'追加填充FillOverwrite=1'覆蓋填充EndEnumVchLst.Title=“列表的標(biāo)題”VouchList.TextMatrix(row,col)=“單元格值”VouchList.LocateState ‘定位狀態(tài)True:定位False:取消定位VouchList.TopRow ‘縱向滾動后最頂上的當(dāng)前行號方法:CallVchLst.InitFlt(m_Login,clsVoucherLst.objFilter,"","","",strErrorRes) ‘初始化過濾對象VchLst.InitHeadoColSet.getColInfo() ‘初始化表頭sHeadXml表頭格式信息VchLst.SetPrintOtherInfosXML ‘設(shè)置打印其它信息-表尾SetdomOption=VchLst.GetListDom(False) ‘取得列表對應(yīng)dom對象bSelecttrue-返回選中行dom對象false-返回整個列表dom對象sXML=Me.VchLst.GetColumnWidthXML() ‘獲取被調(diào)整列寬或列序的欄目串VchLst.SetFormatString"fdtrate","0.000000" 、VchLst.DoFormat‘設(shè)置格式化信息VchLst.ClearDataSource ‘解除數(shù)據(jù)邦定VchLst.SetVchLstRstvltable.DataRecordset ‘設(shè)置表體記錄集VchLst.RecordCount=vltable.DataCount ‘設(shè)置列表全部數(shù)據(jù)集記錄數(shù)VchLst.SetSumRstrstSum ‘合計記錄集CallVchLst.BindPagediv(m_pagediv)‘分頁引擎邦定VchLst.AdJustGridWidth ‘作廢VchLst.ProtectUnload() ‘?dāng)?shù)據(jù)合法性檢查。當(dāng)前對象狀態(tài)安全檢查,可在執(zhí)行某些上層功能時調(diào)用。如增加/刪除功能、窗口Form_QueryUnload事件等地方PrivateSubButtonClick(strButtonKeyAsString)IfVchLst.ReadOnly=FalseThenIfVchLst.ProtectUnload()<>2ThenExitSubEndIfEndIfCallVchLst.ShowVoucherDesign(strPrintCardnum,ipvtidStr,"SA") ‘打印模板設(shè)計界面VchLst.AddItem"",VchLst.rows ‘增加項目VchLst.ShowBatchModify ‘調(diào)用這個方法顯示批量修改窗口//VchLst.AllSelect//VchLst.AllNonelngMainCol=VchLst.GridColIndex(strMainKey) ‘根據(jù)關(guān)鍵字來獲取所在列的索引VchLst.Find ‘查找:在定位狀態(tài)下,查找下一個VchLst.InitPrintSetupstrPrnXml ‘初始化打印設(shè)置VouchList.VchLstPreview `'預(yù)覽VchLst.GetGridBody().XXX ‘引用UFSpGrid2.ocx,用于直接操作UFSpGrid2控件VchLst.GetGridBody().GetGridBody().XXX ‘引用vsflexgrid.ocx,用于直接操作vsflexgrid控件VouchList.Locate '定位SetdomLine=VouchList.GetBodyLine(iRow) ‘根據(jù)行索引取得表體行dom對象事件:PrivateSubVchLst_AfterColumnsDisplayRule() '著色后事件PrivateSubVchLst_BatchModify(sItemXMLAsString) '批改窗口彈出前,對傳入批改窗口的xml進行再構(gòu)造,比如設(shè)置參照類型等PrivateSubVchLst_BrowUser(RetValueAsVariant,rowAsLong,ColAsLong) ‘單元格編輯參照事件PrivateSubVchLst_CellValueChanged(ByValrowAsInteger,ByValColAsInteger,NewValueAsVariant,OldValueAsVariant,KeepFocusAsBoolean) ‘單元格內(nèi)容變化檢查事件PrivateSubVchLst_DblClick() ‘雙擊PrivateSubVchLst_FillList(ByValrAsLong,ByValcAsLong,pComAsObject) ‘單元格編輯下拉事件PrivateSubVchLst_MouseUp(ByValButtonAsInteger,ByValShiftAsInteger,ByValXAsSingle,ByValYAsSingle)PrivateSubVchLst_PrintSettingChanged(ByValvarLocalSettingsAsVariant,ByValvarModuleSettingsAsVariant) ‘打印信息改變時觸發(fā)PrivateSubVchLst_RowColChange() ‘單據(jù)列表支持切換行功能PrivateSubVchLst_SelectClick2(ByValSelectedAsBoolean,ByValrowAsLong) ‘SelectClick和SelectClick2使用一個就可以了,而且SelectClick2要逐漸替代SelectClickPrivateSubVchLst_CopySelect(bAutherAsBoolean) ‘增加copytocliborad的功能,返回權(quán)限。PrivateSubVouchList_BeforeSendCommand(cmdTypeAsU8VouchList.UFCommandType,pageSizeAsLong,pageCurrentAsLong)‘列表翻頁事件列表控件原有功能說明特性 列表控件的安裝位置:\U8SOFT\ufcomsql\U8VouchList.ocx 列表控件主要用于初報表外的表格樣式的展示,包括單據(jù)列表、生單列表、個別檔案列表等等。 列表控件主要和欄目控件配合使用,也可以單獨使用。 列表控件具備編輯能力,支持文本、數(shù)字、下拉框、參照等輸入方式。 下面介紹列表控件的屬性、方法、事件。屬性BottomRow屬性 說明: 獲取當(dāng)前顯示區(qū)域最后一行的索引。只讀屬性。 語法:
VouchList1.BottomRow 參數(shù)說明:
無 返回值: 當(dāng)前顯示區(qū)域最后一行的索引ColPoint屬性 說明: 獲取與設(shè)置某列的小數(shù)位數(shù)。 語法:
VouchList1.ColPoint(cFld)=[valueaslong] 參數(shù)說明:
VouchList1:控件名稱
cFld:列的字段名 Value:小數(shù)位數(shù)EditLocked屬性 說明: 獲取或設(shè)置控件是否被編輯鎖定,鎖定后將不能編輯。 語法:
VouchList1.EditLocked()=[valueasBoolean] 參數(shù)說明:
VouchList1:控件名稱
Value:true—鎖定,不能編輯,false—不鎖定,可編輯。FrozenCols屬性 說明: 獲取或設(shè)置列表控件凍結(jié)列的個數(shù)。 語法:
VouchList1.FrozenCols()=[valueasLong] 參數(shù)說明:
VouchList1:控件名稱
Value:凍結(jié)列的個數(shù)IsSumSelectedRows屬性 說明: 獲取和設(shè)置是否只對選中行進行合計。 語法:
VouchList1.IsSumSelectedRows()=[valueasBoolean] 參數(shù)說明:
VouchList1:控件名稱。 Value:true--只對打上“Y”的行進行合計;false—對所有行進行合計。LeftCol屬性 說明: 獲取和設(shè)置當(dāng)前顯示區(qū)域最左側(cè)列的索引。 語法:
VouchList1.LeftCol=[valueasLong] 參數(shù)說明:
Value:當(dāng)前顯示區(qū)域最左側(cè)列的索引LoginObj屬性 說明: 獲取和設(shè)置登錄對象,在批改時需要登錄對象。 如果使用批量替換必須設(shè)置該屬性,而且在調(diào)用ShowBatchModify之前必須設(shè)置好,如果不使用批量替換,可以不設(shè)置。 語法:
VouchList1.LoginObj=[valueasObject] 參數(shù)說明:
Value:當(dāng)前U8的登錄對象ReadOnly屬性 說明: 獲取和設(shè)置控件是否只讀。 語法:
VouchList1.ReadOnly=[valueasBoolean] 參數(shù)說明:
Value:true—只讀false—可編輯RightCol屬性 說明: 獲取當(dāng)前顯示區(qū)域最右側(cè)列的索引。只讀屬性。 語法:
VouchList1.RightCol 參數(shù)說明:
無ShiftUpDown屬性 說明: 獲取和設(shè)置是否支持shift+上下箭頭連續(xù)選擇行。 語法:
VouchList1.ShiftUpDown=[valueasBoolean] 參數(shù)說明:
VouchList1:當(dāng)前控件對象。 Value:true—支持false—不支持。ShowSelCol屬性 說明: 獲取和設(shè)置是否顯示選擇列。 語法:
VouchList1.ShowSelCol=[valueasBoolean] 參數(shù)說明:
VouchList1:當(dāng)前控件對象。 Value:true—顯示選擇列false—不顯示選擇列。SortASC屬性 說明: 獲取和設(shè)置當(dāng)前排序是升序還是降序。 語法:
VouchList1.SortASC=[valueasBoolean] 參數(shù)說明:
VouchList1:當(dāng)前控件對象。 Value:true表示升序false表示降序。SortCol屬性 說明: 獲取當(dāng)前排序列的列號,如果返回值為-1表示沒有排序列(還沒有使用過排序)。 語法:
VouchList1.SortCol 參數(shù)說明:
VouchList1:當(dāng)前控件對象。SumRows屬性 說明: 獲取和設(shè)置合計(小計)行的行數(shù)。 有些合計行是業(yè)務(wù)組加進去的,不是用的SumStyle屬性,這種情況處理選擇行時就會把這樣的行選中。增加這個屬性后,業(yè)務(wù)組代碼就可以更改合計行的行數(shù),從而在選擇行時排除這些行。 注意:合計行必須是在末尾 語法:
VouchList1.SumRows=[valueasLong] 參數(shù)說明:
VouchList1:當(dāng)前控件對象。 Value:有多少個合計行。SumStyle屬性 說明: 如果需要連續(xù)使用addline增加行,將會頻繁地調(diào)用GridAutoSum(addline內(nèi)調(diào)用)導(dǎo)致效率下降。 解決辦法:程序員在連續(xù)調(diào)用addline之前,把sumstyle設(shè)置為sumnone,調(diào)用addline結(jié)束后,再賦回原來的合計方式。示例代碼如下: dimOldSumStyleAsSumStyleEum OldSumStyle=Vouchlist.SumStyle VouchList.SumStyle=SumStyleEum.vlSumNone VouchList.SumStyle=OldSumStyle 語法:
VouchList1.SumStyle=[valueasSumStyleEum] 參數(shù)說明:
VouchList1:當(dāng)前控件對象。 Value: PublicEnumSumStyleEum vlSumNone=0'沒有合計 vlRecordsum=1'記錄集合計 vlGridSum=2'Grid合計 vlRecordAndGridsum=3'記錄集和Grid合計 EndEnumTextMatrixName屬性說明: 返回表體中某一單元格的值,如果是枚舉值,則返回枚舉名稱語法:
VouchList1.TextMatrixName(rowaslong,colaslong)參數(shù)說明:
VouchList1:控件名稱
Row:行索引
Col:列索引TopRow屬性 說明: 獲取和設(shè)置當(dāng)前顯示區(qū)域最頂端行的索引。 語法:
VouchList1.TopRow=[valueasLong] 參數(shù)說明:
Value:當(dāng)前顯示區(qū)域最頂端行的索引方法AddLine方法 說明: 根據(jù)傳入dom對象新增加一行,內(nèi)部要調(diào)用AddItem方法。 語法:
FunctionAddLine(ByValrowAsLong,ByValoDomAsDOMDocument)AsBoolean 參數(shù)說明:
Row:插入行索引,在該行后插入新增行 oDom:行dom對象
返回值:成功返回true,失敗返回false。AddSumLine方法 說明: 根據(jù)傳入dom對象新增加一行合計行. 語法:
PublicFunctionAddSumLine(ByValrowAsLong,ByValoDomAsDOMDocument)AsBoolean 參數(shù)說明:
Row:插入行索引,在該行后插入新增行 oDom:行dom對象
返回值: 成功返回true,失敗返回false。CalcSum方法 說明: 重新計算合計行的數(shù)值。 語法:
PublicSubCalcSum() 參數(shù)說明: 無 返回值: 無DisableTextMatrix方法 說明: 設(shè)置單元格是否可用,不可用后,既不能手工輸入,也不能通過textmatrix賦值。 語法:
PublicSubDisableTextMatrix(ByValbDisableAsBoolean,ByValsIndexAsString,ByValrowAsLong) 參數(shù)說明:
bDisable:true-disablefalse-enable sIndex:列索引(字符串) row:行索引(數(shù)值)
返回值: 無GetBodyLine方法 說明: 根據(jù)行索引取得表體行dom對象。 語法:
PublicFunctionGetBodyLine(ByValrowAsLong)AsDOMDocument 參數(shù)說明:
row:行索引(數(shù)值)
返回值: 行dom對象,其中包含行中的數(shù)據(jù)。GetColIndex方法 說明: 根據(jù)列的字段名稱取列的順序號。 語法:
PublicFunctionGetColIndex(ByValColNameAsString)AsLong 參數(shù)說明:
ColName:列的字段名稱
返回值: 列的順序號。GetColName方法 說明: 根據(jù)列的順序號取列的字段名稱。 語法:
PublicFunctionGetColName(ByValColIndexAsLong)AsString 參數(shù)說明:
ColName:列的順序號 返回值: 列的字段名稱
。GetGridBody方法 說明: 獲取列表控件封裝的SuperGrid控件。 語法:
PublicFunctionGetGridBody()AsObject 參數(shù)說明: 無 返回值: SuperGrid控件對象。
GetHeadLine方法 說明: 取得標(biāo)題行的dom對象。 語法:
PublicFunctionGetHeadLine()AsDOMDocument 參數(shù)說明: 無 返回值: 標(biāo)題行的dom對象。GetListDom方法 說明: 取得列表數(shù)據(jù)的dom對象。 語法:
PublicFunctionGetListDom(ByValbSelectAsBoolean)AsDOMDocument 參數(shù)說明:
bSelect:true-返回選中行dom對象false-返回整個列表dom對象 返回值: 列表數(shù)據(jù)的dom對象
。HideCaption方法 說明: 隱藏列表的標(biāo)題,如銷售訂單列表的標(biāo)題“銷售訂單列表”。 語法:
PublicSubHideCaption() 參數(shù)說明: 無 返回值: 無Locate方法 說明: 彈出定位窗口,根據(jù)輸入的條件定位。 語法:
PublicSubLocate(ByValLocStateAsBoolean) 參數(shù)說明:
LocState:true-定位false-取消定位 返回值: 無。ProtectUnload方法 說明: 當(dāng)前對象狀態(tài)安全檢查,可在執(zhí)行某些上層功能時調(diào)用。如增加/刪除功能、窗口Form_QueryUnload事件等地方 語法:
PublicFunctionProtectUnload()AsOpType 參數(shù)說明:
無 返回值: EnumOpType dbCandel=0—取消操作 dbRetry重試操作 dbsuccess操作成功 EndEnumReadOnlyTextMatrix方法 說明: 設(shè)置單元格是否只讀,只讀單元格不能手工輸入,但是可以通過textmatrix賦值。 語法:
PublicSubReadOnlyTextMatrix(ByValbReadOnlyAsBoolean,ByValsIndexAsString,ByValrowAsLong) 參數(shù)說明:
bReadOnly:true-只讀false—可編輯 sIndex:列索引(字符串) row:行索引(數(shù)值)
返回值: 無RemoveItem方法 說明: 刪除一行。 語法:
PublicSubRemoveItem(ByValIndexAsVariant) 參數(shù)說明:
Index:行索引(數(shù)值)
返回值: 無SetCellFocus方法 說明: 光標(biāo)移至單元格(Row,Col)。 語法:
PublicFunctionSetCellFocus(ByValrowAsLong,ByValcolAsLong) 參數(shù)說明:
row:行索引(數(shù)值)
col:列索引(數(shù)值)
返回值: 無SetListDom方法 說明: 將dom對象內(nèi)的數(shù)據(jù)刷新到列表界面上,dom對象是一個recordset轉(zhuǎn)換的對象。 語法:
PublicFunctionSetListDom(ByValoDomAsDOMDocument)AsBoolean 參數(shù)說明:
oDom:存放數(shù)據(jù)的dom對象 返回值: 執(zhí)行成功返回true,否則返回false。ShowBatchModify方法 說明: 顯示批量修改窗口,要支持批量修改功能,必須調(diào)用此方法。 語法:
PublicSubShowBatchModify() 參數(shù)說明:
無 返回值: 無UpdateLine方法 說明: 根據(jù)傳入dom對象數(shù)據(jù)更新一行。 語法:
PublicFunctionUpdateLine(ByValrowAsLong,ByValoDomAsDOMDocument)AsBoolean 參數(shù)說明:
Row:行索引 oDOM:dom對象 返回值: 更新成功返回true,否則返回false。事件AfterSort事件觸發(fā)時機:
排序之后觸發(fā)此事件功能:
處理列排序后的事件
聲明:
PublicEventAfterSort(ByValcolAsLong,ByValbAscAsBoolean)參數(shù)說明: bAsc:true-升序false-降序 col:排序的列號BatchModify事件觸發(fā)時機:
批改窗口彈出前觸發(fā)此事件功能:
批改窗口彈出前,對傳入批改窗口的xml進行再構(gòu)造,比如設(shè)置參照類型等。聲明:
PublicEventBatchModify(ByRefsItemXMLAsString)參數(shù)說明: sItemXML:出給批改出口的xml字符串。BeforeEdit事件觸發(fā)時機:
單元格進入編輯狀態(tài)前觸發(fā)此事件功能:
進入編輯之前的事件,可以在這里做一些編輯前的設(shè)置和判斷,如果Cancel返回true,則不進入編輯。聲明:
PublicEventBeforeEdit(ByRefCancelAsBoolean)參數(shù)說明: Cancel:如果Cancel返回true,則不進入編輯。BeforeSort2事件觸發(fā)時機:
將要排序之前觸發(fā)此事件功能:
處理列排序前的個性化需求聲明:
PublicEventBeforeSort2(ByRefbSortAsBoolean,ByValcolAsLong,ByValbAscAsBoolean)參數(shù)說明: bSort:是否繼續(xù)排序,如果為false,則將不執(zhí)行排序操作,也將不觸發(fā)BeforeSort和AfterSort事件。 bAsc:true-將要執(zhí)行的是升序false-將要執(zhí)行的是降序 col:排序的列號BeforeSort事件 此事件已廢棄,由BeforSort2代替。Click事件觸發(fā)時機:
鼠標(biāo)在控件上點擊時觸發(fā)功能:
處理鼠標(biāo)單擊事件聲明:
PublicEventClick()參數(shù)說明: 無DblClick事件觸發(fā)時機:
鼠標(biāo)在控件上雙擊時觸發(fā)功能:
處理鼠標(biāo)雙擊事件聲明:
PublicEventDblClick()參數(shù)說明: 無IsAllowBatchModify事件觸發(fā)時機:
批改窗口關(guān)閉后,執(zhí)行批改過程中觸發(fā)。功能:
是否允許批改事件,在進行批改前判斷單元格是否可修改,如果bCanModify返回為false,則對此單元格不執(zhí)行批改。聲明:
EventIsAllowBatchModify(ByRefbCanModifyAsBoolean,ByValrowAsLong,ByValcolkeyAsString)參數(shù)說明: bCanModify:false-不執(zhí)行批改true-執(zhí)行批改 row:行索引 colkey:列字段名KeyDown事件觸發(fā)時機:
鍵盤按鍵按下時觸發(fā)功能:
處理鍵盤按鍵按下事件聲明:
PublicEventKeyDown(ByValKeyCodeAsInteger,ByValShiftAsInteger)參數(shù)說明: KeyCode:按下的按鍵 Shift:同時按下的其他功能鍵KeyPress事件觸發(fā)時機:
鍵盤按鍵按下時觸發(fā)功能:
處理鍵盤按鍵按下事件聲明:
PublicEventKeyPress(ByValKeyAsciiAsInteger)參數(shù)說明: KeyAscii:按下的按鍵KeyUp事件觸發(fā)時機:
鍵盤按鍵按下后又松開是觸發(fā)功能:
處理鍵盤按鍵松開抬起時的事件聲明:
PublicEventKeyUp(ByValKeyCodeAsInteger,ByValShiftAsInteger)參數(shù)說明: KeyCode:按下的按鍵 Shift:同時按下的其他功能鍵SelectClick2事件觸發(fā)時機:
當(dāng)選中/取消選(打上“Y”/去掉“Y”)中一行時觸發(fā)此事件。 代替SelectClick事件。功能:
處理行選中/取消選中時的個性化操作。聲明:
PublicEventSelectClick2(ByValSelectedAsBoolean,ByValrowAsLong)參數(shù)說明: Selected:當(dāng)前所點擊的選擇列的狀態(tài),如果已選擇,也就是被打上“Y”,則此值為True,否則為False Row:當(dāng)前選中/取消選中的行索引。其他的屬性、方法、事件 列表控件其他的屬性、方法、事件請參考:(html格式文件,雙擊圖標(biāo)可打開)Supergrid表格控件 SuperGrid控件的安裝位置:\U8SOFT\ufcomsql\UFSPGrid.ocx屬性方法AddItem方法 說明: 在列表表體中增加一行 語法:
VouchList1.AddItem(ItemAsString,[IndexAsLong]) 參數(shù)說明:
Item:待插入行的String表示,用vbTag或Chr(0)分隔開的字符串
Index:待插入的行在列表中所在的位置,如果這個參數(shù)忽略,將在列表的表體最末行加入
返回值: 無
Clear方法 說明: 清空Grid的數(shù)據(jù)。 語法:
VouchList1.AddItem(ItemAsString,[IndexAsLong]) 參數(shù)說明:
Item:待插入行的String表示,用vbTag或Chr(0)分隔開的字符串
Index:待插入的行在列表中所在的位置,如果這個參數(shù)忽略,將在列表的表體最末行加入
返回值: 無事件BeforeEdit事件觸發(fā)時機:
單元格進入編輯狀態(tài)前觸發(fā)此事件功能:
進入編輯之前的事件,可以在這里做一些編輯前的設(shè)置和判斷,如果Cancel返回true,則不進入編輯。聲明:
EventBeforeEdit(CancelAsBoolean,sReturnTextAsString)參數(shù)說明: Cancel:如果Cancel返回true,則不進入編輯 sReturnText:可以通過這個參數(shù)返回單元格的值其他的屬性、方法、事件 Supergrid表格控件的屬性、方法、事件請參考:(html格式文件,雙擊圖標(biāo)可打開)欄目控件相關(guān)特性 欄目控件是用來設(shè)置編輯欄目的位置、標(biāo)題、寬度等信息的控件,開發(fā)者可以利用此控件返回的SQL語句動態(tài)拼寫SQL語句。顯示欄目 DimcolsetasNewU8ColumnSet.clsSet Cnnstr=”Data數(shù)據(jù)庫連接串” Callcolset.init(cnnstr,用戶名) Callcolset.setColMode(Key值,1) ‘第二個參數(shù)為1返回顯示列,為2返回默認(rèn)列,為0返回所有列 Colset.setcol 得到返回值GetSqlString返回SQL語句的Select部分。GetSqlSumString返回SQL語句的匯總部分(需要將ShowSumType設(shè)置為True才有效)。GetOrderString、GetOrderStringEx返回SQL語句的Orderby部分。GetSQLGroupString返回SQL語句的GroupBy部分(需要將ShowSumType設(shè)置為True才有效)getColInfo得到欄目的XML信息 關(guān)于元數(shù)據(jù)和緩存欄目存儲規(guī)則為先從Meta庫的AA_Columndic_Base表中讀取數(shù)據(jù),同時管理客戶數(shù)據(jù)即Data庫的AA_Columnset_Base表。如果客戶在Data庫中的AA_Columndic_Base表中有與Meta庫不存在的記錄則會加載這部分記錄。欄目存儲后會將記錄緩存在Data庫的AA_ColumnDicCache_Main和表AA_ColumnDicCache_Detail表中,所以如果手工提交欄目的SQL語句修改欄目則需要清除以上兩個表的相關(guān)記錄。權(quán)限相關(guān) 摘要 功能權(quán)限通常稱之為“按鈕權(quán)限”或者“菜單權(quán)限”,即控制用戶點擊按鈕或者菜單的權(quán)限。 設(shè)置用戶、角色對應(yīng)檔案、單據(jù)的數(shù)據(jù)權(quán)限,用于控制后續(xù)業(yè)務(wù)處理中允許錄入、查看的數(shù)據(jù)范圍。 支持記錄級權(quán)限控制和字段級權(quán)限控制。用戶可以根據(jù)數(shù)據(jù)權(quán)限默認(rèn)設(shè)置來決定某一系統(tǒng)是否需要權(quán)限控制。用戶具體的權(quán)限由用戶自身權(quán)限、用戶繼承角色權(quán)限組成。 記錄級權(quán)限支持VB版和版兩個版本。主要負(fù)責(zé)控制用戶可以看到多少數(shù)據(jù),例如部門檔案,可以通過記錄級權(quán)限設(shè)置某一用戶只能查看或修改其中一個或多個部門數(shù)據(jù)。 11.0版本增加了管理維度權(quán)限,它屬于記錄級功能權(quán)限的一個擴展,它可對某些特殊檔案進行多個維度的控制,例如客戶檔案,我們可以設(shè)置A用戶的客戶管理維度權(quán)限:當(dāng)某些客戶檔案屬于XX部門管理,地點在北京地區(qū),又屬于IT業(yè)務(wù)時(相當(dāng)于符合3個維度權(quán)限要求),A用戶可看到該客戶檔案信息,如果該客戶檔案有一個維度不符合,則A用戶就看不到該客戶檔案信息。 字段級權(quán)限:可以控制某一個用戶是否可以查看/修改某一個敏感字段,例如某公司采購一件商品,運貨人員在系統(tǒng)中是不允許看到本次交易金額的,但是可以看見貨物的發(fā)貨地址和接受地址。 注意:870之后,字段權(quán)限增加了無權(quán)限。其中有兩點需要特別注意: (1)系統(tǒng)為字段級權(quán)限設(shè)置了默認(rèn)權(quán)限,而當(dāng)用戶自身設(shè)置了其中某一字段權(quán)限后,則該權(quán)限優(yōu)先,默認(rèn)權(quán)限失效。 (2)當(dāng)一個用戶擁有多個角色,那么首先用戶自身設(shè)置的權(quán)限優(yōu)先,其他權(quán)限均取最大權(quán)限值。 什么是權(quán)限?U8系統(tǒng)里的權(quán)限分為兩種,一種是對功能權(quán)限進行控制,另一種則是對系統(tǒng)中的每一行數(shù)據(jù)或者一部分?jǐn)?shù)據(jù)中的敏感字段進行控制,不同的人授予不同的權(quán)限,增強系統(tǒng)的安全性和保密性,達到最終的管理目標(biāo)。目標(biāo)本文主要介紹權(quán)限的基礎(chǔ)知識,應(yīng)用過程及相關(guān)注意事項,方便各類U8產(chǎn)品開發(fā)人員更好的使用權(quán)限,更高效的開發(fā)產(chǎn)品。功能權(quán)限可以做什么?功能權(quán)限通常稱之為“按鈕權(quán)限”或者“菜單權(quán)限”,即控制用戶點擊按鈕或者菜單的權(quán)限。功能權(quán)限控制的精細(xì)程度由開發(fā)者來決定。比如某個功能點僅控制菜單進入權(quán)限,另一功能點控制“新增”、“修改”、“刪除”權(quán)限。如何使用功能權(quán)限?預(yù)置功能權(quán)限從10.0開始,賬套庫增加了權(quán)限表UA_Auth_Base和UA_Auth_Lang,表結(jié)構(gòu)與UFSystem庫對應(yīng)的表結(jié)構(gòu)完全一致,UFSystem庫的表用于存放標(biāo)準(zhǔn)產(chǎn)品預(yù)置數(shù)據(jù),UFDATA賬套庫的表用于存放運行時產(chǎn)生的權(quán)限(如用戶自定義報表、表單)和二次開發(fā)的權(quán)限。注意,二次開發(fā)的權(quán)限信息必須存放在賬套庫中,否則備份還原賬套時權(quán)限將會丟失。數(shù)據(jù)字典如下:功能權(quán)限基本表(UA_Auth_Base)(UFData庫)字段名字段類型說明cAuth_Id(U861)nvarchar(100)功能編號
cSub_Id(U861)nvarchar(2)模塊標(biāo)識
iGrade(U861)smallint級次cSupAuth_Id(U861)nvarchar(100)上級功能編號
bEndGrade(U861)bit是否末級
cAcc_Id(U861)nvarchar(3)賬套號(廢棄)iOrder(U861)int顯示順序號
cAuthType(U870)nvarchar(10)互斥類型(不需要預(yù)制,計算結(jié)果,參見登錄開發(fā)文檔)cAllSupAuths(U871)nvarchar(1024)父節(jié)點目錄
(不需要預(yù)制,計算結(jié)果,參見登錄開發(fā)文檔)irepnum(U871)int互斥功能個數(shù)
(不需要預(yù)制,計算結(jié)果,參見登錄開發(fā)文檔)cRepellentModule(U871)nvarchar(255)互斥模塊集合,以逗號分隔
(不需要預(yù)制,計算結(jié)果,參見登錄開發(fā)文檔)cNotRepellent(U871)nvarchar(1024)不互斥功能集合,以逗號分隔
(不需要預(yù)制,計算結(jié)果,參見登錄開發(fā)文檔)cRepellent(U871)nvarchar(4000)互斥功能集合,以逗號分隔
(不需要預(yù)制,計算結(jié)果,參見登錄開發(fā)文檔)cRepInDB(U8100)nvarchar(4000)互斥功能集合,以逗號分隔
(不需要預(yù)制,計算結(jié)果,參見登錄開發(fā)文檔)cRepModInDB(U8100)nvarchar(250)互斥模塊集合,以逗號分隔
(不需要預(yù)制,計算結(jié)果,參見登錄開發(fā)文檔)cNotRepInDB(U8100)nvarchar(1024)不互斥功能集合,以逗號分隔
(不需要預(yù)制,計算結(jié)果,參見登錄開發(fā)文檔)功能權(quán)限多語表(UA_Auth_Lang)(UFData庫)字段名字段類型說明cAuth_ID(U861)nvarchar(100)功能編號
localeid(U861)nvarchar(32)語言ID,zh-CN(簡體中文),zh-TW(繁體中文),en-US(英文)
cAuth_Name(U861)nvarchar(150)功能權(quán)限名稱
運行時驗證功能權(quán)限參照登錄開發(fā)文檔。把功能權(quán)限與企業(yè)門戶菜單進行關(guān)聯(lián)參照企業(yè)門戶開發(fā)文檔。數(shù)據(jù)權(quán)限可以做什么? 數(shù)據(jù)權(quán)限是軟件系統(tǒng)中開發(fā)中必不可少的功能,它是整個軟件安全的一部分。V10.1及之前版本數(shù)據(jù)權(quán)限特性由于V11.0版本只是在數(shù)據(jù)權(quán)限中增加和調(diào)整了一部分管理維度權(quán)限,其他內(nèi)容均和之前版本相似,所以這里不做重點的講解,這些版本的程序引用和調(diào)用方法模式?jīng)]有變化。使用方式將在如何使用數(shù)據(jù)權(quán)限中介紹。V11特性支持管理維度控制對于客戶、客戶聯(lián)系人、服務(wù)、線索、行動、競爭對手、競爭訂單等一些特殊的業(yè)務(wù)對象進行多維度的控制,來達到更復(fù)雜的數(shù)據(jù)安全管理需求。目前支持7個維度的控制,分別為相關(guān)/負(fù)責(zé)人員、部門、管理維度1、管理維度2、管理維度3、管理維度4、客戶權(quán)限維度,其中相關(guān)/負(fù)責(zé)人員的數(shù)據(jù)來源于系統(tǒng)操作員,部門檔案維度的數(shù)據(jù)來源于部門檔案,管理維度1到4以及客戶權(quán)限維度均由用戶自己定義數(shù)據(jù)來源。管理維度1、管理維度2、管理維度3、管理維度4、客戶權(quán)限維度用戶可自行定義名稱數(shù)據(jù)來源可以選擇手工錄入,也可選擇來源于系統(tǒng)檔案當(dāng)選擇手工輸入時,則需要客戶自行定義維度檔案當(dāng)選擇來源于系統(tǒng)檔案時,則無需維護維度檔案,只需維護已有的系統(tǒng)檔案即可可以選擇啟用還是關(guān)閉啟用數(shù)據(jù)字典V11.0數(shù)據(jù)字典業(yè)務(wù)對象基本表(aa_busobject_base)(UFData庫)字段名字段類型說明cBusObidnvarchar(100)業(yè)務(wù)對象關(guān)鍵字,如已有的部門檔案為“department”cBusObNamenvarchar(600)該按鈕的功能Key,對象名稱iAuthTypetinyint權(quán)限類型,0表示記錄級權(quán)限,1表示字段級權(quán)限bAuthControltinyint是否控制維度權(quán)限,0表示不控制;1表示控制cSub_Idnvarchar(200)模塊標(biāo)識串cMarknvarchar(1000)說明pubuftstimestamp時間戳iFuncTypesmallint記錄級權(quán)限類型(0表示沒有具體權(quán)限類別;1表示有讀寫等權(quán)限類別)langidnvarchar(40)語言ID,目前有三種:zh-CN(簡體中文);zh-TW(繁體中文);en-US(英文);iOrdersmallint排序標(biāo)識(系統(tǒng)用)bLockedbit是否鎖定cLockedBybit(保留字段)bNoAuthbit默認(rèn)無權(quán)bAuthDimControl(U8110)bit是否控制管理維度權(quán)限,表示是否啟用該業(yè)務(wù)對象的管理維度權(quán)限控制。(0表示不啟用;1表示啟用)bDeptControl(U8110)smallint是否控制部門維度權(quán)限(0表示不控制;1表示控制)bPersonControl(U8110)smallint是否控制相關(guān)人員維度權(quán)限(0表示不控制;1表示控制)bAuthDim1Control(U8110)smallint是否控制管理維度1(0表示不控制;1表示控制)bAuthDim2Control(U8110)smallint是否控制管理維度2(0表示不控制;1表示控制)bAuthDim3Control(U8110)smallint是否控制管理維度3(0表示不控制;1表示控制)bAuthDim4Control(U8110)smallint是否控制管理維度4(0表示不控制;1表示控制)bCusDimControl(U8110)smallint是否控制客戶維度(0表示不控制;1表示控制)cAuthDimControlScope(U8110)nvarchar(20)可控制的管理維度范圍,一共7位二進制數(shù)字,每一位數(shù)字均表示該業(yè)務(wù)對象是否受某一個維度控制,0表示不受控制,1表示受其控制,這7位數(shù)字組成順序為(部門維度,相關(guān)人員維度,管理維度1,管理維度2,管理維度3,管理維度4,客戶維度)。例如1111110表示該業(yè)務(wù)對象將受到“部門維度、相關(guān)人員維度、管理維度1、管理維度2、管理維度3、管理維度4”的控制,而不受“客戶維度”的控制。PrimaryKeyFieldName(U8110)nvarchar(400)主鍵字段名稱,欄目中取出,單據(jù)列表使用業(yè)務(wù)對象基本表視圖(AA_BusObject)(UFData庫),用于讀取業(yè)務(wù)對象基本表(aa_busobject_base),只讀取其中一種語言的數(shù)據(jù),字段含義一致。同上公共存儲過程基本表(AA_RowAuthDic_base)(UFData庫)字段名字段類型說明CTableNamenvarchar(100)表名稱CECodenvarchar(100)‘編碼’英文名稱CCCodenvarchar(60)‘編碼’中文名稱CENamenvarchar(100)‘名稱’英文名稱CCNamenvarchar(60)‘名稱’中文名稱cBusObIdnvarchar(100)業(yè)務(wù)對象IDiRowAuthTypesmallint記錄級權(quán)限類型langidnvarchar(40)語言ID,目前有三種:zh-CN(簡體中文);zh-TW(繁體中文);en-US(英文);CEClassNamenvarchar(100)‘分類’中文名稱CCClassNamenvarchar(60)‘分類’英文名稱CAuthDimTablenvarchar(256)CUserTablenvarchar(256)CEAuthDimTableCodenvarchar(256)CEUserTableCodenvarchar(256)公共存儲過程基本表視圖(AA_RowAuthDic)(UFData庫),用于讀取公共存儲過程基本表(AA_RowAuthDic_base),只讀取其中一種語言的數(shù)據(jù),字段含義一致。同上如何使用數(shù)據(jù)權(quán)限?老版本數(shù)據(jù)權(quán)限(870)記錄級服務(wù)U8RowAuthsrv.dll在VB中引用U8RowAuthsrv組件 在VB中點擊主菜單中的“工程->引用”,隨后出現(xiàn)的“引用”對話框中選中“U8RowAuthsrv”,然后點擊“確定”,如下圖所示:dll文件的方法介紹如下:GetAuthString方法:返回對某個表的擁有的權(quán)限的SQL條件串 沒有權(quán)限返回1=2;有全部權(quán)限返回空字符串;有權(quán)限返回條件串。對客戶、供應(yīng)商、存貨有權(quán)限分類的,返回OR字符串,如IID=2orIID=3'對其他檔案返回In條件串,字段關(guān)鍵字由外部系統(tǒng)拚,如:in('001','002');對其他業(yè)務(wù)對象,為避免SQL語句超長,返回Select…子查詢,而不是逗號分割的字符串。如部門:in(selectcACCodefromaa_holdauthwherecUserId='demo'andcBusObId='department')注意:用戶繼承用戶組的權(quán)限語法object.GetAuthString(cBusObIdAsString,[cClassCodeAsString],[cFuncIdasString])asstringGetAuthString方法的語法包含下列部分:Object必需的。代表一個對象表達式,其值是記錄集權(quán)限服務(wù)對象cBusObId業(yè)務(wù)對象IDcClassCode可選項。項目大類(項目專用)cFuncId可選項。功能ID,六個枚舉值下面是參數(shù)詳情cBusObId的設(shè)置值值描述AuthDimen1管理維度1AuthDimen2管理維度2AuthDimen3管理維度3AuthDimen4管理維度4CM_Type合同類型code科目Customer客戶申請類型Customer客戶權(quán)限維度Department部門djmb單據(jù)模板djsj單據(jù)設(shè)計dsign憑證類別fa_assettypes資產(chǎn)類別fitem項目gzauth工資權(quán)限hr_bd_rpt人力資源報表hr_bd_voucherinfo人力資源業(yè)務(wù)單hr_ct270福利地區(qū)hr_v_vouchertype人事業(yè)務(wù)變動hr_wm_project福利方案Inventory存貨檔案Metric指標(biāo)MoType生產(chǎn)訂單類別NEAuth網(wǎng)上報銷Operation_Type網(wǎng)上報銷業(yè)務(wù)類型person業(yè)務(wù)員Position貨位PurchaseType采購類型QMCheckGuide檢驗指標(biāo)Rd_Style收發(fā)類別SaleType銷售類型U870_0001存貨申請類型unit資金單位user用戶Vendor供應(yīng)商檔案Warehouse倉庫Person職員U8fore報賬中心Company集團企業(yè)目錄Fitem項目大類表名cFuncId的設(shè)置值值描述R(ead)查詢/查賬W(rite)刪改/錄入/制單V(erify)審核U(nverify)棄審A()撤銷C(lose)關(guān)閉空值有權(quán)VB查詢“demo”用戶資金單位(unit)的W(rite)刪改/錄入/制單權(quán)限PrivateSubmnu_rowauth_Click()'初始化DLLDimoRowAsNewclsRowAuthDimretAsStringDimconstringAsStringconstring="Provider=SQLOLEDB.1;PersistSecurityInfo=True;UserID=sa;password='';InitialCatalog=UFDATA_001_2007;DataSource=echocloud;"oRow.Initconstring,"demo",Falseret=oRow.GetAuthString("unit","","W")MsgBoxretDimstrSqlAsString‘查詢SQL語句DimstrSqlWhereAsString‘權(quán)限過濾串'實例:為部門檔案添加讀權(quán)限過濾strSql="select*fromdepartmentwhere1=1and"strSqlWhere=oRow.GetAuthString("department","","W")'該strSqlWhere語句會得到以下幾種語句'(1)1=1擁有全部權(quán)限'(2)cDepCodein('1','2','3')擁有部分權(quán)限'(3)1=2無權(quán)'具體用時,只需要將這strSql+strSqlWhere加起來查詢即可。strSql=strSql+strSqlWhere'然后用strSql查詢即可MsgBoxstrSqlEndSub 初始化DLL方法,一共三個參數(shù)oRow.Init"數(shù)據(jù)庫連接字符串","用戶ID","是否為Web調(diào)用(一般都是C/S調(diào)用,設(shè)置值為false)"IsHoldAuth方法:返回是否對某個表的某行紀(jì)錄擁有權(quán)限注意:當(dāng)業(yè)務(wù)對象是user時,特殊處理操作員對自身有查詢權(quán)限語法object.IsHoldAuth(cBusObIdAsString,cValueAsString,cClassCodeAsString,cFuncIdAsString)asstringIsHoldAuth方法的語法包含下列部分:部分描述Object必需的。代表一個對象表達式,其值是記錄級權(quán)限服務(wù)對象cBusObId業(yè)務(wù)對象ID,值同于方法GetAuthString中的參數(shù)cBusObIdcValue字段值cClassCode可選項,項目大類(項目專用)cFuncId可選項,功能ID,值同于方法GetAuthString中的參數(shù)cFuncId返回值:True有權(quán)限;False沒有權(quán)限VB查詢用戶對部門編碼001有無讀權(quán)限oRow.isHoldAuth(“department”,”001”,””,”R”NeedControlAuth方法:'輸入?yún)?shù):cBusObId業(yè)務(wù)對象'輸出參數(shù):無'返回值:true受權(quán)限控制,false不受權(quán)限控制'功能:指定業(yè)務(wù)對象是否受權(quán)限控制語法object.NeedControlAuth(ByValcBusObIdAsString)AsBooleanNeedControlAuth方法的語法包含下列部分:NeedControlAuth方法部分描述Object必需的。代表一個對象表達式,其值是記錄級權(quán)限服務(wù)對象cBusObId業(yè)務(wù)對象ID,值同于方法GetAuthString中的參數(shù)cBusObId返回值:True:受權(quán)限控制;False:不受權(quán)限控制;VB查詢用戶對部門編碼001有無讀權(quán)限oRow.NeedControlAuth(“department”)字段級服務(wù)U8ColAuthsrv.dll在VB中引用U8ColAuthsrv.組件在VB中點擊主菜單中的“工程->引用”,隨后出現(xiàn)的“引用”對話框中選中“U8ColAuthsrv.”,然后點擊“確定”,如下圖所示:GetAuthString方法返回對某個字段擁有的權(quán)限的字符串,一般來說,返回逗號分割的字符串注意:用戶繼承用戶組的權(quán)限語法object.GetAuthString(cBusObIdAsString)asstringGetAuthString方法的語法包含下列部分:部分描述Object必需的。代表一個對象表達式,其值是字段級權(quán)限服務(wù)對象cBusObId業(yè)務(wù)對象ID,采用xml傳入值。參數(shù)格式:<u8ColAuthcBusObId='customer'cFuncId='R'/>cBusObId表示業(yè)務(wù)對象cFuncID表示要返回的權(quán)限方式用戶可以指定的權(quán)限值:R(ead)查詢W(rite)錄入N(o)無權(quán)限備注:cFuncId='R',只返回僅有讀權(quán)限的字段,cFuncId='R%',返回有讀權(quán)限的字段,也包含讀、寫權(quán)限的字段返回值:返回指定業(yè)務(wù)對象中擁有指定權(quán)限(已分配權(quán)限)的字段集合。備注:調(diào)用方的思路必須有所轉(zhuǎn)變,如果詢問擁有寫權(quán)限的字段集合,應(yīng)該考慮除了已經(jīng)明確分配的寫權(quán)限,還包括未被分配的權(quán)限,因為未被分配的權(quán)限默認(rèn)擁有讀和寫;對字段權(quán)限的控制應(yīng)該考慮無權(quán)限和讀權(quán)限的訪問,擁有所有權(quán)限的服務(wù)效率會有問題。VB查詢demo用戶對存貨檔案(inventory)的寫權(quán)限PrivateSubmnu_colauth_Click()‘初始化DLL方法DimoColAsNewclsColAuthDimretAsStringDimconstringAsStringconstring="Provider=SQLOLEDB.1;PersistSecurityInfo=True;UserID=sa;password='';InitialCatalog=UFDATA_001_2007;DataSource=echocloud"oCol.Initconstring,"demo"ret=oCol.GetAuthString("<u8ColAuthcBusObId='inventory'cFuncId='W'/>")MsgBoxret‘實例DimstrSqlAsString‘查詢SQL語句DimstrFieldAsString‘權(quán)限過濾串'實例:為部門檔案添加讀權(quán)限過濾strField=oCol.GetAuthString("<u8ColAuthcBusObId='inventory'cFuncId='W'/>")strSql="select"+strField+"frominventorywhere1=1and"'該strSqlWhere語句會得到以下幾種語句'(1)1=1擁有全部權(quán)限'(2)cInvCode,cInvAddCode,cInvName擁有部分權(quán)限'(3)1=2無權(quán)'然后用strSql查詢即可MsgBoxstrSqlEndSub初始化DLL方法:oCol.Init"數(shù)據(jù)庫連接字符串","用戶ID"組件:UFSoft.U8.Framework.SecurityCommon(版本)在VS2005中使用權(quán)限組件新建立一個VS2005類庫項目在項目中添加下面DLL的引用%U8Soft%\AppServer\Bin\Framework\UFSoft.U8.Framework.SecurityCommon.dlldll文件的方法介紹如下:GetAuthString方法:返回對某個業(yè)務(wù)對象擁有的權(quán)限的SQL條件串,沒有權(quán)限返回1=2;有全部權(quán)限返回空字符串;對除了User業(yè)務(wù)對象,均返回Select…子查詢,user對象返回逗號分割的字符串。如部門:in(selectcACCodefromaa_holdauthwherecUserId='demo'andcBusObId='department')注意:用戶繼承用戶組的權(quán)限語法object.GetAuthString(cBusObIdAsString,[cClassCodeAsString],[cFuncIdasString])asstringGetAuthString方法的語法包含下列部分:GetAuthString方法的語法包含下列部分:部分描述Object必需的。代表一個對象表達式,其值是記錄集權(quán)限服務(wù)對象cBusObId業(yè)務(wù)對象IDcClassCode可選項。項目大類(項目專用)cFuncId可選項。功能IDC#查詢對用戶業(yè)務(wù)對象(user)的讀權(quán)限privatevoidcontentAuth_Click(objectsender,EventArgse){ContentAuthobj=newContentAuth(@"Provider=SQLOLEDB.1;Password=;PersistSecurityInfo=True;UserID=sa;InitialCatalog=UFDATA_001_2007;DataSource=ECHOCLOUD","zy",true);stringstr=obj.GetAuthString("user",null,"R");MessageBox.Show("auth:"+str);}V11.0版本應(yīng)用數(shù)據(jù)權(quán)限在V11.0版本中,如要控制某一個業(yè)務(wù)對象的數(shù)據(jù)權(quán)限,只需要選擇啟用該數(shù)據(jù)權(quán)限,然后為用戶分配不同的數(shù)據(jù)權(quán)限。首先啟用該數(shù)據(jù)權(quán)限,數(shù)據(jù)權(quán)限分記錄級權(quán)限和字段級權(quán)限。然后分配不同的數(shù)據(jù)權(quán)限記錄級:字段級:維度控制方式:二次開發(fā)應(yīng)用數(shù)據(jù)權(quán)限數(shù)據(jù)預(yù)置相關(guān)數(shù)據(jù)結(jié)構(gòu)在二次開發(fā)數(shù)據(jù)字典的aa_busobject_base表和AA_RowAuthDic_base中,可查閱相關(guān)內(nèi)容。aa_busobject_base表數(shù)據(jù)預(yù)制實例業(yè)務(wù)員的記錄級權(quán)限INSERT[AA_BusObject_base]([cBusObId],[cBusObName],[iAuthType],[bAuthControl],[cMark],[langid],[bLocked],[bNoAuth],[bAuthDimControl])VALUES(N'person',N'Clerk',0,1,N'Restrictaspecificusertoqueryorinputthebusinessdataofonlycertainclerks;G/L,Sales,andPurchasesystemscontroltheclerkprivilege.',N'en-US',0,0,0)INSERT[AA_BusObject_base]([cBusObId],[cBusObName],[iAuthType],[bAuthControl],[cMark],[langid],[bLocked],[bNoAuth],[bAuthDimControl])VALUES(N'person',N'業(yè)務(wù)員',0,1,N'限制用戶能夠?qū)δ男I(yè)務(wù)員的業(yè)務(wù)數(shù)據(jù)進行查詢或錄入,應(yīng)收、應(yīng)付、總賬、銷售、采購系統(tǒng)提供業(yè)務(wù)員權(quán)限控制。',N'zh-CN',0,0,0)INSERT[AA_BusObject_base]([cBusObId],[cBusObName],[iAuthType],[bAuthControl],[cMark],[langid],[bLocked],[bNoAuth],[bAuthDimControl])VALUES(N'person',N'業(yè)務(wù)員',0,1,N'限制用戶能夠?qū)δ男I(yè)務(wù)員的業(yè)務(wù)資料進行查詢或錄入,應(yīng)收、應(yīng)付、總賬、銷售、採購系統(tǒng)提供業(yè)務(wù)員許可權(quán)控制。',N'zh-TW',0,0,0)藥品采購入庫質(zhì)量驗收記錄單的字段級權(quán)限INSERT[AA_BusObject_base]([cBusObId],[cBusObName],[iAuthType],[bAuthControl],[cSub_Id],[iFuncType],[langid],[iOrder],[bLocked],[bNoAuth],[bAuthDimControl])VALUES(N'001',N'recordsheetforqualitytestofdrugsreceiptsforpurchasing',1,0,N'GS',2,N'en-US',7,0,0,0)INSERT[AA_BusObject_base]([cBusObId],[cBusObName],[iAuthType],[bAuthControl],[cSub_Id],[iFuncType],[langid],[iOrder],[bLocked],[bNoAuth],[bAuthDimControl])VALUES(N'001',N'藥品采購入庫質(zhì)量驗收記錄單',1,0,N'GS',2,N'zh-CN',7,0,0,0)INSERTinto[AA_BusObject_base]([cBusObId],[cBusObName],[iAuthType],[bAuthControl],[cSub_Id],[iFuncType],[langid],[iOrder],[bLocked],[bNoAuth],[bAuthDimControl])VALUES(N'001',N'藥品採購入庫品質(zhì)驗收記錄單',1,0,N'GS',2,N'zh-TW',7,0,0,0)人員編碼INSERT[AA_RowAuthDic_base]([CTableName],[CECode],[CCCode],[CEName],[CCName],[cBusObId],[iRowAuthType],[langid])VALUES(N'Hr_hi_Person',N'cPsn_Num',N'Personcode',N'cPsn_Name',N'Personname',N'Hr_hi_Person',1,N'en-US')INSERT[AA_RowAuthDic_base]([CTableName],[CECode],[CCCode],[CEName],[CCName],[cBusObId],[iRowAuthType],[langid])VALUES(N'Hr_hi_Person',N'cPsn_Num',N'人員編碼',N'cPsn_Name',N'人員姓名',N'Hr_hi_Person',1,N'zh-CN')INSERT[AA_RowAuthDic_base]([CTableName],[CECode],[CCCode],[CEName],[CCName],[cBusObId],[iRowAuthType],[langid])VALUES(N'Hr_hi_Person',N'cPsn_Num',N'人員編碼',N'cPsn_Name',N'人員姓名',N'Hr_hi_Person',1,N'zh-TW')產(chǎn)品開發(fā)具體開發(fā)方式與老版本一致,內(nèi)部邏輯中雖然添加了管理維度權(quán)限,但接口和函數(shù)沒有變化,只有數(shù)據(jù)庫是有變化的。應(yīng)用技巧字段權(quán)限的映射關(guān)系可以通過UAP中商業(yè)敏感工具來實現(xiàn)字段級權(quán)限需要進行欄目預(yù)制,欄目的預(yù)制數(shù)據(jù)可以使用UAP的欄目設(shè)計器增加相關(guān)知識在U8系統(tǒng)中選擇一個業(yè)務(wù)對象控制,然后控制其數(shù)據(jù)權(quán)限,然后給不同的用戶分配不同的權(quán)限,并配合角色權(quán)限,然后使用不同的用戶進入該業(yè)務(wù)對象模塊,看看數(shù)據(jù)權(quán)限是否控制正確。過濾控件相關(guān) 工程名:UFGeneralFilter編程語言:VB類:FilterSrv條件運行時的服務(wù)類DesignSrv條件設(shè)計時的服務(wù)類特性分設(shè)計時也運行時,設(shè)計是在UAP中使用。支持將861的模板自動升級成870的模板。提供程序員編程的接口。提供回調(diào)接口。對象不銷毀則保留用戶的各種設(shè)置。通過常用條件和高級條件適應(yīng)不同的用戶的條件的要求。界面更加友好易用。支持常用條件分組。過濾設(shè)置功能強大。初始化過濾對象DimfltSrvAsUFGeneralFilter.FilterSrvPrivateSubInit()SetfltSrv=NewUFGeneralFilter.FilterSrvEndSub顯示過濾界面-OpenFilter說明:顯示查詢條件界面PublicFunctionOpenFilter(ByValm_LoginAsObject,ByValsFilterIDAsStrin
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 農(nóng)村老人組財務(wù)制度
- 投資擔(dān)保公司財務(wù)制度
- 公司雙休制度
- 養(yǎng)老院老人護理評估制度
- 武警醫(yī)院財務(wù)管理制度(3篇)
- 甲醇站施工方案(3篇)
- 漢服時裝活動策劃方案(3篇)
- 瀝青攤施工方案(3篇)
- 教職工績效考核制度
- 罕見遺傳性肝病代謝干預(yù)新靶點
- DB11-T 1835-2021 給水排水管道工程施工技術(shù)規(guī)程
- 2025職業(yè)健康培訓(xùn)測試題(+答案)
- 供貨流程管控方案
- 章節(jié)復(fù)習(xí):平行四邊形(5個知識點+12大常考題型)解析版-2024-2025學(xué)年八年級數(shù)學(xué)下冊(北師大版)
- 中試基地運營管理制度
- 老年病康復(fù)訓(xùn)練治療講課件
- 2024中考會考模擬地理(福建)(含答案或解析)
- CJ/T 164-2014節(jié)水型生活用水器具
- 購銷合同范本(塘渣)8篇
- 貨車充電協(xié)議書范本
- 屋面光伏設(shè)計合同協(xié)議
評論
0/150
提交評論