![k3 cloud v6 0產(chǎn)品培訓(xùn)bos領(lǐng)域插件開發(fā)update_第1頁](http://file4.renrendoc.com/view/53ccafeed823a619665beeb61e3bd689/53ccafeed823a619665beeb61e3bd6891.gif)
![k3 cloud v6 0產(chǎn)品培訓(xùn)bos領(lǐng)域插件開發(fā)update_第2頁](http://file4.renrendoc.com/view/53ccafeed823a619665beeb61e3bd689/53ccafeed823a619665beeb61e3bd6892.gif)
![k3 cloud v6 0產(chǎn)品培訓(xùn)bos領(lǐng)域插件開發(fā)update_第3頁](http://file4.renrendoc.com/view/53ccafeed823a619665beeb61e3bd689/53ccafeed823a619665beeb61e3bd6893.gif)
![k3 cloud v6 0產(chǎn)品培訓(xùn)bos領(lǐng)域插件開發(fā)update_第4頁](http://file4.renrendoc.com/view/53ccafeed823a619665beeb61e3bd689/53ccafeed823a619665beeb61e3bd6894.gif)
![k3 cloud v6 0產(chǎn)品培訓(xùn)bos領(lǐng)域插件開發(fā)update_第5頁](http://file4.renrendoc.com/view/53ccafeed823a619665beeb61e3bd689/53ccafeed823a619665beeb61e3bd6895.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
K/3產(chǎn)品部K/3Cloud技術(shù)開發(fā)培訓(xùn)
----BOS業(yè)務(wù)插件開發(fā)課程簡介:
本課程介紹K/3
CloudBOS業(yè)務(wù)插件的開發(fā)及配置,以功能講解輔之案例演練幫助學(xué)員快速掌握K/3
Cloud
BOS平臺的核心功能。
課程說明:概述業(yè)務(wù)插件概覽如何開發(fā)插件案例演練目錄概述業(yè)務(wù)插件概覽如何開發(fā)插件案例演練目錄K/3Cloud分層架構(gòu)圖展示層SilverlightWeb客戶端WPF桌面客戶端服務(wù)層動(dòng)態(tài)表單UI生成服務(wù)內(nèi)核層表單動(dòng)態(tài)生成引擎動(dòng)態(tài)表單控制服務(wù)Web服務(wù)器動(dòng)態(tài)表單視圖模型動(dòng)態(tài)表單控制器動(dòng)態(tài)表單數(shù)據(jù)模型擴(kuò)展邏輯層動(dòng)態(tài)表單編程接口表單生成插件表單邏輯服務(wù)表單操作缺省值計(jì)算函數(shù)業(yè)務(wù)插件動(dòng)態(tài)表單元數(shù)據(jù)應(yīng)用服務(wù)器動(dòng)態(tài)表單邏輯組件動(dòng)態(tài)表單服務(wù)端插件動(dòng)態(tài)表單服務(wù)端編程接口數(shù)據(jù)庫服務(wù)器元數(shù)據(jù)業(yè)務(wù)數(shù)據(jù)校驗(yàn)規(guī)則客戶端公共編程模型+客戶端插件+第三方設(shè)備集成接口移動(dòng)客戶端Office客戶端HttpHttp業(yè)務(wù)服務(wù)概述業(yè)務(wù)插件概覽如何開發(fā)插件案例演練目錄BOS業(yè)務(wù)插件用以解決什么問題?標(biāo)準(zhǔn)業(yè)務(wù)對象的的業(yè)務(wù)邏輯應(yīng)用:標(biāo)準(zhǔn)業(yè)務(wù)對象沒有實(shí)現(xiàn)的控制;已有操作和服務(wù)未支持的功能;更靈活的控制方式和客戶化定制;客戶二次開發(fā)的需求;快速開發(fā)、快速實(shí)施、快速應(yīng)用;可配置,可測試,快速部署;有哪些插件?Web層表單插件列表插件表單構(gòu)建插件App層服務(wù)插件BOS業(yè)務(wù)插件開發(fā)概覽插件接口特性使用C#4.0支持繼承和擴(kuò)展已封裝業(yè)務(wù)插件;組織控制;基礎(chǔ)資料分配………支持插件順序支持動(dòng)態(tài)語言IronPython2.6.1BOS業(yè)務(wù)插件開發(fā)概覽BOS業(yè)務(wù)插件開發(fā)概覽—插件分類表單插件用于單個(gè)表單編輯界面運(yùn)行于Web層列表插件用于列表
運(yùn)行于Web層BOS業(yè)務(wù)插件開發(fā)概覽–插件分類服務(wù)插件掛在操作上的服務(wù)插件,對于操作進(jìn)行擴(kuò)展和校驗(yàn)器配合使用運(yùn)行于App層插件配置入口
操作列表–編輯操作BOS業(yè)務(wù)插件開發(fā)概覽–插件分類表單構(gòu)建插件對于表單界面進(jìn)行自定義的插件運(yùn)行于Web層自定義菜單、控件BOS業(yè)務(wù)插件開發(fā)概覽動(dòng)態(tài)表單元數(shù)據(jù)結(jié)構(gòu)BOS業(yè)務(wù)插件開發(fā)概覽動(dòng)態(tài)表單元數(shù)據(jù)結(jié)構(gòu)概述業(yè)務(wù)插件概覽如何開發(fā)插件接口結(jié)構(gòu)插件中常用的對象說明具體的代碼示例案例演練目錄概述業(yè)務(wù)插件概覽如何開發(fā)插件接口結(jié)構(gòu)插件中常用的對象說明具體的代碼示例案例演練目錄如何開發(fā)插件–接口結(jié)構(gòu)表單插件和列表插件繼承層次表單單據(jù)單據(jù)列表基礎(chǔ)資料插件針對對象動(dòng)態(tài)表單單據(jù)基礎(chǔ)資料如何開發(fā)插件–接口結(jié)構(gòu)AbstractBillPlugIn接口動(dòng)態(tài)表單視圖插件編程模型接口定義了視圖模型擴(kuò)展允許通過接口處理視圖,實(shí)現(xiàn)特定業(yè)務(wù)需求如何開發(fā)插件–接口結(jié)構(gòu)OnInitialize請求加載頁面時(shí)觸發(fā)初始化事件此時(shí)Model還沒初始化,還是個(gè)空對象,但View已基本完成初始化;可初始化當(dāng)前插件的一些全局屬性,也可修改當(dāng)前頁面的控件屬性值,如控件大小、字段標(biāo)題、表單標(biāo)題等等。OnBillInitialize視圖模型初始化事件,在OnInitialize事件之后AfterBindData綁定數(shù)據(jù)后事件處理接口在控件綁定數(shù)據(jù)之后,通常需要根據(jù)其他條件設(shè)置控件的可見性、可用性、背景顏色等樣式。BeforeF7Select基礎(chǔ)資料彈出前事件查詢選擇基礎(chǔ)資料時(shí),希望列表或模糊查詢結(jié)果中顯示滿足條件的基礎(chǔ)資料,此時(shí)可以通過該事件在加載基礎(chǔ)資料數(shù)據(jù)前添加過濾條件。BeforeClosed窗口關(guān)閉前事件AbstractBillPlugIn的ViewPlugin插件接口如何開發(fā)插件–接口結(jié)構(gòu)BarItemClick
菜單單擊事件處理擴(kuò)展接口:點(diǎn)擊事件前進(jìn)行權(quán)限驗(yàn)證、數(shù)據(jù)檢查等等,用戶也可以在該事件中通過添加e.Cancel=true取消平臺內(nèi)置功能,完全自定義處理邏輯.AfterBarItemClick
菜單單擊事件后:指定跳轉(zhuǎn)頁面、指定刷新頁面、指定關(guān)閉頁面等等BeforeDoOperation
操作調(diào)用前事件:根據(jù)操作類型設(shè)置操作參數(shù)、傳遞變量AfterDoOperation
操作調(diào)用完成后事件:根據(jù)操作結(jié)果設(shè)置返回值ButtonClick
按鈕單擊事件AfterButtonClick
按鈕單擊后事件AbstractBillPlugIn的ViewPlugin插件接口如何開發(fā)插件–接口結(jié)構(gòu)ListViewClick
列表項(xiàng)目單擊事件TreeNodeClick
樹控件單擊事件TreeDragDrop
樹控件拖拽EntityRowClick
分錄行單擊事件:在單擊分錄行時(shí)設(shè)置菜單是否可用、刷新代理字段、重新計(jì)算等。AbstractBillPlugIn的ViewPlugin插件接口如何開發(fā)插件–接口結(jié)構(gòu)AbstractBillPlugIn的ModelPlugIn接口動(dòng)態(tài)表單數(shù)據(jù)模型插件編程接口定義了數(shù)據(jù)模型擴(kuò)展允許通過接口處理數(shù)據(jù),以實(shí)現(xiàn)特定業(yè)務(wù)需求如何開發(fā)插件–接口結(jié)構(gòu)CreateNewData
數(shù)據(jù)模型創(chuàng)建實(shí)體對象事件:插件自定義Model.DataObject數(shù)據(jù)包AfterCreateNewData
數(shù)據(jù)模型創(chuàng)建實(shí)體對象完成后事件:自定義設(shè)置字段默認(rèn)值。BeforeUpdateValue
字段值更新前事件:需要在IDE選中“即時(shí)觸發(fā)值更新事件”屬性,對即將錄入的值做檢查DataChanged
數(shù)據(jù)改變后事件:需要在IDE選中“即時(shí)觸發(fā)值更新事件”屬性,字段值更新之后可能需要級聯(lián)觸發(fā)修改其他字段AbstractBillPlugIn插件方法如何開發(fā)插件–接口結(jié)構(gòu)CreateNewEntryRow
創(chuàng)建分錄行事件:插件自定義新增行數(shù)據(jù)包BeforeDeleteRow
刪除分錄行事件:校驗(yàn)是否允許刪除AfterDeleteRow
刪除分錄后事件AbstractBillPlugIn插件方法如何開發(fā)插件–接口結(jié)構(gòu)列表插件接口繼承AbstractListPlugInIListViewPlugInIListModelPlugIn如何開發(fā)插件–接口結(jié)構(gòu)AbstractListPlugIn的ViewPlugIn接口序時(shí)簿視圖插件編程模型接口定義了序時(shí)簿視圖模型擴(kuò)展允許通過接口處理視圖,實(shí)現(xiàn)特定業(yè)務(wù)需求如何開發(fā)插件–接口結(jié)構(gòu)ListInitialize
視圖模型初始化事件AfterGetData
完成取數(shù)后事件:在數(shù)據(jù)發(fā)送到前端之前觸發(fā),可對數(shù)據(jù)進(jìn)行修改FormatCellValue
列表格式化接口:列表顯示,在獲取數(shù)據(jù)之后,數(shù)據(jù)發(fā)送到前端之前觸發(fā),用來格式化列表上的單元格數(shù)據(jù)AbstractListPlugIn的ViewPlugIn接口如何開發(fā)插件–接口結(jié)構(gòu)ButtonClick
按鈕和菜單單擊前事件AfterButtonClick
按鈕和菜單單擊后事件:按鈕點(diǎn)擊之后,實(shí)現(xiàn)按鈕點(diǎn)擊功能之后對界面進(jìn)行控制,如:設(shè)置控件可用性、可見性,設(shè)置分錄焦點(diǎn)行等。CellDbButtonClick
單元格雙擊事件AbstractListPlugIn的ViewPlugIn接口如何開發(fā)插件–接口結(jié)構(gòu)AbstractListPlugIn的ModelPlugIn接口序時(shí)簿數(shù)據(jù)模型插件編程接口定義了序時(shí)簿數(shù)據(jù)模型擴(kuò)展允許通過接口處理數(shù)據(jù),以實(shí)現(xiàn)特定業(yè)務(wù)需求如何開發(fā)插件–接口結(jié)構(gòu)PrepareFilterParameter
準(zhǔn)備過濾條件:開單據(jù)列表之前,插件直接修改過濾條件及排序子句等內(nèi)容,篩選、處理數(shù)據(jù),列表顯示的時(shí)候顯示這些被篩選、處理過的數(shù)據(jù)CreateFilterEditorControl
觸發(fā)創(chuàng)建過濾條件控件事件BatchCopyData
復(fù)制單據(jù)事件:批量復(fù)制單據(jù)時(shí),調(diào)整復(fù)制的單據(jù)主鍵或自定義復(fù)制的目標(biāo)數(shù)據(jù)包。如果僅調(diào)整主鍵,那么平臺會根據(jù)新的主鍵值去加載目標(biāo)數(shù)據(jù)包;如果定義了目標(biāo)數(shù)據(jù)包,則平臺會直接使用。AfterBatchCopyData
復(fù)制單據(jù)完畢事件:插件對平臺加載的目標(biāo)數(shù)據(jù)包再做修改、調(diào)整AbstractListPlugIn插件方法如何開發(fā)插件–接口結(jié)構(gòu)服務(wù)插件插件特性IOperationServicePlugin一般會附加校驗(yàn)器運(yùn)行于App層事務(wù)保護(hù)插件針對對象操作如何開發(fā)插件–接口結(jié)構(gòu)服務(wù)插件接口服務(wù)插件AbstractOperationServicePlugIn應(yīng)用服務(wù)器插件與業(yè)務(wù)數(shù)據(jù)更新操作在一個(gè)事務(wù)執(zhí)行校驗(yàn)器插件AbstractValidator在服務(wù)插件的OnAddValidators加入如何開發(fā)插件–接口結(jié)構(gòu)AbstractOperationServicePlugIn插件方法OnPreparePropertys
可以定制加載指定字段到實(shí)體里:在操作初始化之后,加載待處理的單據(jù)數(shù)據(jù)之前觸發(fā)。用于指定在加載單據(jù)數(shù)據(jù)時(shí),需加載的字段。平臺將按需加載數(shù)據(jù)。OnAddValidators
添加自定義數(shù)據(jù)校驗(yàn)器:在單據(jù)數(shù)據(jù)加載后,數(shù)據(jù)校驗(yàn)前觸發(fā);用于注冊自定義的操作校驗(yàn)器,增加校驗(yàn);或者移除預(yù)置的校驗(yàn)器,避開校驗(yàn);如何開發(fā)插件–接口結(jié)構(gòu)AbstractOperationServicePlugIn插件方法BeforeExecuteOperationTransaction
執(zhí)行操作事務(wù)前事件:操作執(zhí)行前(事務(wù)外)事件,在數(shù)據(jù)檢查完畢,正式開始執(zhí)行操作前觸發(fā)。此事件在事務(wù)外,不受事務(wù)保護(hù)。通常將一些與數(shù)據(jù)更新無關(guān)的前期數(shù)據(jù)準(zhǔn)備、修正,放在本事件中進(jìn)行,以減少事務(wù)占用時(shí)間。BeginOperationTransaction
調(diào)用操作事件前觸發(fā)(支持事務(wù)):此事件在事務(wù)內(nèi),在此事件對數(shù)據(jù)庫進(jìn)行更新,受事務(wù)保護(hù)。此事件適用于需要在操作前,基于原始數(shù)據(jù),對數(shù)據(jù)庫進(jìn)行更新,并與操作保持在一個(gè)事務(wù)中的需求。比如刪除數(shù)據(jù)前級聯(lián)刪除相關(guān)記錄。EndOperationTransaction
調(diào)用操作事件完畢(支持事務(wù)):此事件在事務(wù)內(nèi),對數(shù)據(jù)庫進(jìn)行的更新,受事務(wù)保護(hù)。此事件適合于在操作執(zhí)行完畢,單據(jù)數(shù)據(jù)已經(jīng)更改,需要基于更改后的數(shù)據(jù),進(jìn)行其他關(guān)聯(lián)數(shù)據(jù)的處理。AfterExecuteOperationTransaction
執(zhí)行操作事務(wù)后事件:通常用于在操作完畢后,進(jìn)行后續(xù)的處理,但因?yàn)椴僮鞯氖聞?wù)已經(jīng)提交,不能夠撤銷操作。如操作完畢后,給出提示信息。如何開發(fā)插件–接口結(jié)構(gòu)表單構(gòu)建插件繼承層次表單單據(jù)敘事簿基礎(chǔ)資料插件針對對象動(dòng)態(tài)表單單據(jù)基礎(chǔ)資料如何開發(fā)插件–接口結(jié)構(gòu)AbstractDynamicWebFormBuilderPlugIn插件方法CreateControl
構(gòu)建界面元素事件AfterCreateControl
構(gòu)建界面元素后事件CreateMainMenu
構(gòu)建菜單事件AfterCreateMainMenu
構(gòu)建菜單后事件如何開發(fā)插件–接口結(jié)構(gòu)表單插件調(diào)用過程由控制器創(chuàng)建視圖、模型、插件代理初始化視圖、模型由插件服務(wù)注冊到插件代理插件代理初始化插件加載數(shù)據(jù),通知插件創(chuàng)建數(shù)據(jù),創(chuàng)建表單數(shù)據(jù)包表單操作插件服務(wù)調(diào)用代理,發(fā)送事件通知插件代理調(diào)用插件,執(zhí)行事件返回執(zhí)行結(jié)果業(yè)務(wù)插件插件調(diào)用過程業(yè)務(wù)插件插件調(diào)用過程如何開發(fā)插件–接口結(jié)構(gòu)動(dòng)態(tài)語言支持IronPython腳本語言支持和C#交互調(diào)用事件接口和C#完全一致更加簡練明白概述業(yè)務(wù)插件概覽如何開發(fā)插件接口結(jié)構(gòu)插件中常用的對象說明具體的代碼示例案例演練目錄如何開發(fā)插件–常用對象View對象屬性this.View(View接口)this.View的常用屬性BillBusinessInfo(界面業(yè)務(wù)對象元數(shù)據(jù))LayoutInfo(布局元數(shù)據(jù))Model(動(dòng)態(tài)表單模型接口)OpenParameter(頁面調(diào)用時(shí)傳入的參數(shù))方法GetFieldEditor(獲取界面控件對象)ShowMessage(顯示信息)如何開發(fā)插件–常用對象View對象更改界面控件狀態(tài)this.View.GetFieldEditor示例:
///
<summary>
///
設(shè)置金額列精度
///
</summary>
///
<paramname="iScale"></param>
///
<paramname="strField"></param>
private
voidSetColumnScale(shortiScale,stringstrField){
this.View.GetFieldEditor<DecimalFieldEditor>(strField,-1).Scale=iScale;}如何開發(fā)插件–常用對象View對象顯示信息this.View.ShowMessage示例:
if(e.CurParentId=="0"){
this.View.ShowMessage(“請先選擇頂層組織?!?;return;}如何開發(fā)插件–常用對象Model對象屬性this.View.Model(動(dòng)態(tài)表單模型接口)This.View.Model的常用屬性DataObject當(dāng)前對象的數(shù)據(jù)實(shí)體方法GetEntryCurrentRowIndex(獲取分錄當(dāng)前行索引)GetEntryRowCount(獲取分錄行數(shù)量)CreateNewEntryRow(新建分錄行)GetValue(獲取字段(對象)值)SetValue(設(shè)置字段(對象)值)如何開發(fā)插件–常用對象Model對象獲取單據(jù)屬性:例如分錄集合this.View.Model.DataObject示例:
///
<summary>
///
獲取分錄集合
///
</summary>
DynamicObjectCollectionentrys=(DynamicObjectCollection)this.View.Model.DataObject["POOrderEntry"];如何開發(fā)插件–常用對象Model對象新增單據(jù)體分錄行this.View.Model.CreateNewEntryRow示例:
///
<summary>
///
單據(jù)復(fù)制完成事件
///
</summary>
///
<paramname="e"></param>
public
override
void
AfterCopyData(CopyDataEventArgse){
base.AfterCopyData(e);
//單據(jù)復(fù)制完,處理單據(jù)體
_billFormID=“”;
this.View.Model.CreateNewEntryRow(“FFieldControl”);
UpdateFieldControlRowLock();}如何開發(fā)插件–常用對象Model對象獲取字段值this.View.Model.GetValue示例:
//獲取根節(jié)點(diǎn)組織復(fù)制到目標(biāo)節(jié)點(diǎn)
Organizationorg=(DynamicObject)
this.View.Model.GetValue("FRootORGID");targetRoot.id=rootOrgId;
targetRoot.text=org.Name.ToString();
targetRoot.children=new
List<TreeNode>();
ctl=this.View.GetControl<TreeView>("FOrgTree");
ctl.SetRootNode(targetRoot);如何開發(fā)插件–常用對象Model對象設(shè)置字段值this.View.Model.SetValue示例:///
<summary>///
字段修改事件函數(shù)重載
///
</summary>public
override
void
DataChanged(DataChangedEventArgse){
switch(e.Key.ToUpper()){
case
"FPARENTDEPTID":
//組織隸屬方案和上級部門變化,重新生成部門全稱
this.View.Model.SetValue(“FFullName”,GetFullName(e.Key));
break;}}概述業(yè)務(wù)插件概覽如何開發(fā)插件接口結(jié)構(gòu)插件中常用的對象說明具體的代碼示例案例演練目錄如何開發(fā)插件–代碼示例表單插件OnBillInitialize初始化事件BillInitializeEventArgs示例:
publicoverridevoidOnBillInitialize(BillInitializeEventArgse)
{
base.OnBillInitialize(e);
msgType=this.View.OpenParameter.GetCustomParameter("MessageType");
}如何開發(fā)插件–代碼示例表單插件AfterBindData綁定數(shù)據(jù)后事件示例:
publicoverridevoidAfterBindData(EventArgse)
{
base.AfterBindData(e);
DynamicObjectdy=this.View.Model.GetValue("FAccountBookID")asDynamicObject;
if(dy!=null&&!string.IsNullOrWhiteSpace(dy["Id"].ToString()))
{
DynamicObjectorg=dy["AccountOrgID"]asDynamicObject;
if(org!=null&&!string.IsNullOrWhiteSpace(org["Id"].ToString()))
{
this.View.Model.SetValue("FACCBOOKORGID",org);
}
}
}如何開發(fā)插件–代碼示例表單插件BeforeClosed綁定數(shù)據(jù)后事件BeforeClosedEventArgs示例:publicoverridevoidBeforeClosed(BeforeClosedEventArgse)
{ReturnData();
base.BeforeClosed(e);
}如何開發(fā)插件–代碼示例表單插件BeforeF7SelectBeforeF7SelectEventArgs示例:
publicoverridevoidBeforeF7Select(BeforeF7SelectEventArgse)
{
base.BeforeF7Select(e);boolsuccess=true;switch(e.FieldKey)
{case"FAccountOrg":e.ListFilterParameter.Filter=this.GetAccountOrgFilter(e.ListFilterParameter.Filter,outsuccess);break;case"FAccountBook":e.ListFilterParameter.Filter=this.GetAccountBookFilter(e.ListFilterParameter.Filter,outsuccess);break;
}e.Cancel=!success;
}如何開發(fā)插件–代碼示例表單插件ButtonClickButtonClickEventArgs示例:
publicoverridevoidButtonClick(ButtonClickEventArgse)
{
base.ButtonClick(e);switch(e.Key)
{case"FBtOK":
this.StartDeposit();break;default:break;
}
}如何開發(fā)插件–代碼示例表單插件DataChangedDataChangedEventArgs示例:
publicoverridevoidDataChanged(DataChangedEventArgse)
{
switch(e.Key)
{case"fdiffadjusttype":
case"fexpuniontype":SetEnableAndValue();
break;default:break;
}base.DataChanged(e);
}如何開發(fā)插件–代碼示例動(dòng)態(tài)語言支持IronPython示例:from
System
import
StringComparison
def
DataChanged(e):
if
e.Field.Key.Equals("FIsTrans",StringComparison.OrdinalIgnoreCase):
#isTrans=clr.Reference[bool]()
isTrans=e.NewValue
if
isTrans==
False
:
this.View.Model.SetValue("FPriority",
0)
如何開發(fā)插件–代碼示例服務(wù)插件OnPreparePropertysPreparePropertysEventArgs示例:
public
override
voidOnPreparePropertys(PreparePropertysEventArgse)
{e.FieldKeys.Add("FAccountSystemEntry");e.FieldKeys.Add("FMainOrgId");e.FieldKeys.Add("FAcctPolicy");e.FieldKeys.Add("FDefAcctPolicy");
base.OnPreparePropertys(e);
}如何開發(fā)插件–代碼示例服務(wù)插件OnAddValidatorsAddValidatorsEventArgs示例:
public
override
voidOnAddValidators(AddValidatorsEventArgse)
{
SaveValidatorsaveValid=new
SaveValidator();saveValid.EntityKey="FBillHead";e.Validators.Add(saveValid);
SaveAuditValidatorsaveAcctValid=new
SaveAuditValidator();saveAcctValid.option=this.Option;saveAcctValid.EntityKey="FBillHead";e.Validators.Add(saveAcctValid);
}如何開發(fā)插件–代碼示例
privateclassSaveValidator:AbstractValidator
{publicoverridevoidValidate(ExtendedDataEntity[]dataEntities,ValidateContextvalidateContext,Contextctx)
{foreach(varacctindataEntities)
{AccountSystemdEntity=(AccountSystem)acct.DataEntity;if(dEntity==null)continue;foreach(varacctSysindEntity.AccountSystemEntrys)
{if(acctSys==null||acctSys.MainOrgId<=0)continue;if(!acctSys.AccountSystemDetails.
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 天然氣的供應(yīng)安全與供應(yīng)保障考核試卷
- 建筑物清潔服務(wù)行業(yè)人才培養(yǎng)與交流考核試卷
- D掃描設(shè)備考核試卷
- 2025-2030年手術(shù)顯微鏡高清視頻錄制企業(yè)制定與實(shí)施新質(zhì)生產(chǎn)力戰(zhàn)略研究報(bào)告
- 2025-2030年插畫包裝設(shè)計(jì)行業(yè)深度調(diào)研及發(fā)展戰(zhàn)略咨詢報(bào)告
- 2025-2030年可再生能源建筑一體化企業(yè)制定與實(shí)施新質(zhì)生產(chǎn)力戰(zhàn)略研究報(bào)告
- 2025-2030年手持式計(jì)算器創(chuàng)新企業(yè)制定與實(shí)施新質(zhì)生產(chǎn)力戰(zhàn)略研究報(bào)告
- 2025-2030年整形外科手術(shù)模擬系統(tǒng)行業(yè)跨境出海戰(zhàn)略研究報(bào)告
- 2025-2030年地下空間環(huán)境監(jiān)測與預(yù)警機(jī)器人行業(yè)跨境出海戰(zhàn)略研究報(bào)告
- 2025-2030年地黃補(bǔ)腎滋陰液行業(yè)跨境出海戰(zhàn)略研究報(bào)告
- 加油站復(fù)工復(fù)產(chǎn)方案
- 2025-2030年中國增韌劑(MBS高膠粉)行業(yè)發(fā)展現(xiàn)狀及前景趨勢分析報(bào)告
- 《鋼筋焊接及驗(yàn)收規(guī)程》(JGJ18)
- 2025年高考物理復(fù)習(xí)新題速遞之萬有引力與宇宙航行(2024年9月)
- 2025年首都機(jī)場集團(tuán)公司招聘筆試參考題庫含答案解析
- 2025云南省貴金屬新材料控股集團(tuán)限公司面向高校畢業(yè)生專項(xiàng)招聘144人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 蘇州市區(qū)2024-2025學(xué)年五年級上學(xué)期數(shù)學(xué)期末試題一(有答案)
- 暑期預(yù)習(xí)高一生物必修二知識點(diǎn)
- 醫(yī)院人體器官捐獻(xiàn)及獲取流程
- 醫(yī)藥高等數(shù)學(xué)知到智慧樹章節(jié)測試課后答案2024年秋浙江中醫(yī)藥大學(xué)
- 2024年云南省中考物理真題含解析
評論
0/150
提交評論