MES開發(fā)與應用 課件 3.4.4-3.4.5 工業(yè)管理軟件開發(fā)基礎-平臺通配置-實體和界面配置Api;3.4.7 工業(yè)管理軟件開發(fā)基礎-平臺通配置-平臺編輯器使用介紹_第1頁
MES開發(fā)與應用 課件 3.4.4-3.4.5 工業(yè)管理軟件開發(fā)基礎-平臺通配置-實體和界面配置Api;3.4.7 工業(yè)管理軟件開發(fā)基礎-平臺通配置-平臺編輯器使用介紹_第2頁
MES開發(fā)與應用 課件 3.4.4-3.4.5 工業(yè)管理軟件開發(fā)基礎-平臺通配置-實體和界面配置Api;3.4.7 工業(yè)管理軟件開發(fā)基礎-平臺通配置-平臺編輯器使用介紹_第3頁
MES開發(fā)與應用 課件 3.4.4-3.4.5 工業(yè)管理軟件開發(fā)基礎-平臺通配置-實體和界面配置Api;3.4.7 工業(yè)管理軟件開發(fā)基礎-平臺通配置-平臺編輯器使用介紹_第4頁
MES開發(fā)與應用 課件 3.4.4-3.4.5 工業(yè)管理軟件開發(fā)基礎-平臺通配置-實體和界面配置Api;3.4.7 工業(yè)管理軟件開發(fā)基礎-平臺通配置-平臺編輯器使用介紹_第5頁
已閱讀5頁,還剩97頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

3.4平臺通用配置深圳市信息職業(yè)技術學院——實體和界面配置Api實體屬性實體屬性特性實體特性實體配置實體介紹視圖介紹視圖配置視圖屬性配置知識擴展知識回顧控制器實現(xiàn)介紹;框架分組介紹;自定義分組的實現(xiàn)方式,三種入口的實現(xiàn)方式;自定義分組三種實現(xiàn)方式的實現(xiàn)示例;自定義分組的注意事項;學習目標通過本節(jié)學習可以:掌握實體包含的特性、實體屬性、屬性標簽;掌握實體的配置;掌握界面的方法及使用;掌握界面方法的屬性配置、命令配置、界面呈現(xiàn)配置;了解實體的組成;了解界面的組成。01實體介紹思考題平臺框架定義的實體通用屬性包括哪些?實體介紹實體介紹1、實體通常會映射數據庫,所有新建實體類要建在服務端工程;2、實體類必須包含在對應文件夾下;文件夾以“實體名+S”進行命名;3、實體一定要包含命名空間,且命名空間要規(guī)范,一般為“對應工程名+文件夾名”;4、實體一般定義為部分類,直接或間接繼承DataEntity;5、實體類繼承的父實體盡量不要包含子列表屬性,如果包含,子實體又沒有用new關鍵字覆蓋父實體屬性,BS生成界面會報錯;6、實體類中盡量只包含對應的屬性,盡量不要去寫與業(yè)務邏輯相關的代碼;實體介紹實體介紹7、實體屬性包含一般屬性、引用屬性、列表屬性、只讀屬性和視圖屬性;默認情況下一般屬性和引用屬性會映射生成數據庫表字段,其他的屬性不會。8、創(chuàng)建實體的屬性,我們只建業(yè)務相關的屬性,業(yè)務屬性不要和框架屬性命名沖突,框架定義的屬性包括:Id,CreateBy,CreateDate,InvOrgId,IsPhantom,SyncId,UpdateBy,UpdateDate;框架屬性對應數據庫表字段如下:9、實體類中的實體配置以“類名+Config”進行命名;02實體屬性一般屬性實體屬性:實體屬性是通過托管屬性進行注冊的,托管屬性通過P<T>.Register()方法進行注冊,T為所注冊的托管屬性的實體所有者(Owner)。一般屬性:普通類型的屬性#region

分類編碼Code///

<summary>///分類編碼///

</summary>[Label("分類編碼")]public

static

readonlyProperty<string>CodeProperty=P<BigBookCat>.Register(e=>e.Code);///

<summary>///分類編碼///

</summary>public

stringCode{get{returnGetProperty(CodeProperty);}set{SetProperty(CodeProperty,value);}}#endregion一般屬性一般屬性支持的屬性類型:stringbool、bool?int、int?,long,long?double、double?DateTime、DateTime?枚舉類型、Nullable<枚舉類型>Byte[]引用屬性引用屬性:引用類型的屬性,包括引用ID和引用實體兩個屬性,必須在同一實體中成對定義,屬性類型為double。引用屬性需指定引用類型ReferenceType,一般引用為Normal,子實體引用父實體為Parent。#region

讀者管理與讀者分類的關系ReaderCat[Label("類別號")]public

static

readonlyIRefIdPropertyReaderCatIdProperty=P<ReaderMan>.RegisterRefId(e=>e.ReaderCatId,ReferenceType.Normal);///

<summary>///讀者管理與讀者分類的關系Id///

</summary>public

doubleReaderCatId{get{return(double)GetRefId(ReaderCatIdProperty);}set{SetRefId(ReaderCatIdProperty,value);}}///

<summary>///讀者管理與讀者分類的關系///

</summary>public

static

readonlyRefEntityProperty<ReaderCat>ReaderCatProperty=P<ReaderMan>.RegisterRef(e=>e.ReaderCat,ReaderCatIdProperty);///

<summary>///讀者管理與讀者分類的關系///

</summary>publicReaderCatReaderCat{get{returnGetRefEntity(ReaderCatProperty);}set{SetRefEntity(ReaderCatProperty,value);}}#endregion引用屬性引用Id引用實體引用類型,一般外鍵為Normal列表屬性列表屬性:子列表的屬性,一對多關系中,父實體包含子實體的列表。#region

圖書大類與小類的關系SmallBookCatList///

<summary>///圖書大類與小類的關系///

</summary>public

static

readonlyListProperty<EntityList<SmallBookCat>>SmallBookCatListProperty=P<BigBookCat>.RegisterList(e=>e.SmallBookCatList);///

<summary>///圖書大類與小類的關系///

</summary>publicEntityList<SmallBookCat>SmallBookCatList{get{return

this.GetLazyList(SmallBookCatListProperty);}}#endregion列表屬性只讀屬性只讀屬性:只讀屬性用于表示實體中的一個只讀的數據。只讀屬性主要為界面展現(xiàn)層設計。#region

全名FullName///

<summary>///全名///

</summary>[Label("全名")]public

static

readonlyProperty<string>FullNameProperty=P<BigBookCat>.RegisterReadOnly(e=>e.FullName,e=>e.GetFullName(),CodeProperty,NameProperty);///

<summary>///全名///

</summary>public

stringFullName{ get{return

this.GetProperty(FullNameProperty);}}private

stringGetFullName(){ return

this.Code+"("+this.Name+")";}#endregion只讀屬性視圖屬性視圖屬性:視圖屬性是通過引用屬性懶加載的數據,主要為界面展現(xiàn)層設計。如果實體和繼承的父實體中沒有引用屬性,則不能使用視圖屬性。#region

類別名稱CatName

///

<summary>

///類別名稱

///

</summary>[Label("類別名稱")]

public

static

readonlyProperty<string>CatNameProperty=P<ReaderMan>.RegisterView(e=>e.CatName,p=>p.ReaderCat.CatName);

///

<summary>

///類別名稱

///

</summary>

public

stringCatName

{

get{return

this.GetProperty(CatNameProperty);}

}

#endregion視圖屬性通過引用實體.屬性名加載出來視圖屬性的內容思考題實體的一般屬性支持哪些類型?03實體屬性特性實體屬性特性屬性名稱標簽(Label):用于在實體屬性上聲明屬性的顯示名稱。必填標簽(Required):聲明實體屬性不能為空,字符串類型屬性會標記該特性。非重復標簽(NotDuplicate):聲明實體屬性不能重復。最大長度標簽(MaxLength):聲明實體屬性的最大長度,字符串類型的屬性會標記該特性。最小長度標簽(MinLength):聲明實體屬性的最小長度,字符串類型的屬性會標記該特性。最大值標簽(MaxValue):聲明實體屬性的最大值,數值類型的屬性會標記該特性。最小值標簽(MinValue):聲明實體屬性的最小值,數值類型的屬性會標記該特性。屬性默認值(DefaultValue):屬性默認值設置,作用域為當前實體。實體屬性特性04實體特性實體特性實體類型特性(RootEntity,ChildEntity,QueryEntity):用于在實體上聲明實體的類型。實體序列化特性(Serializable):用于在實體上聲明實體可序列化。實體名稱特性(Label):用于在實體上聲明實體的顯示名稱。實體成員顯示特性(DisplayMember):用于在實體上聲明實體被引用時顯示哪個屬性的值,注意顯示的成員必須是普通屬性,且必須是數據庫表中存在字段對應的屬性。實體通用查詢特性(CriteriaQuery):用于在實體上聲明實體的查詢使用通過查詢條件,CriteriaQuery后面不關聯(lián)類則使用的是框架標準查詢,關聯(lián)類即CriteriaQuery(typeof(類)),則查詢自己實現(xiàn)。實體特性實體特性實體查詢特性(ConditionQueryType):用于在實體上聲明實體使用的查詢實體類型(注意:實體查詢標簽與實體通用查詢標簽只能標記其中的一個)。下拉列表查詢條件特性(QueryMembers):用于在實體上聲明實體被引用時下拉列表的查詢條件配置。實體配置項特性(EntityWithConfig):用于在實體上聲明實體通用配置值。單據打印特性(BillPrintable):用于在實體上聲明界面單據打印命令的配置。實體特性05實體配置思考題實體元數據配置支持哪些配置?實體配置實體配置包括“實體規(guī)則配置”和“實體元數據配置”。實體規(guī)則:重寫AddValidations方法,這里配置的是標準規(guī)則,標準規(guī)則不能在界面進行啟用和禁用操作,代碼編寫即生效,建議在項目上如果沒有特殊的要求可以使用該規(guī)則進行實現(xiàn)(可以減少實體元數據的更新操作)??梢詫崿F(xiàn)的標準規(guī)則驗證:1、非空驗證;2、長度驗證;3、最大最小值驗證;4、非重復驗證(支持單個和多個屬性的非重復驗證);5、正則表達式的驗證;6、實體驗證(HandlerRule),該驗證中可以查數據庫進行驗證操作。實體配置實體元數據配置實體元數據的配置,可以映射表、映射視圖、映射屬性和實體插件。映射數據庫表:Meta.MapTable(“RES_EMP_GROUP”);映射視圖1)直接讀取數據庫的視圖:Meta.MapView(“V_RES_EMP_GROUP”);2)通過sql查詢出來的視圖:Meta.MapView(“(SELECT*FROMRES_EMP_GROUP)”);3)通過DB.Query查詢出來的視圖:

Func<IQuery>view=()=>DB.Query<Enterprise>().Where(p=>p.Level.IsResource==true&&p.InvOrgId==RT.InvOrgId).ToQuery();

Meta.MapView(view);//影射一條IQuery查詢的視圖,注意查詢中不能出現(xiàn)當前實體,否則會出現(xiàn)死循環(huán)。映射表和視圖實體元數據配置映射實體中的所有屬性為數據庫表字段:Meta.MapAllProperties();映射指定的屬性及屬性長度:

Meta.Property(Employee.CodeProperty).MapColumn().HasLength(50);Meta.Property(Employee.CodeProperty).MapColumn().DataTypeLength=“50";排除某些字段不映射數據庫的設置:

Meta.MapAllPropertiesExcept(Employee.CodeProperty);指定某個字段不映射數據庫:DontMapColumn;

Meta.Property(Employee.CodeProperty).DontMapColumn();建立唯一索引,使用HasIndex。

Meta.Property(Resource.KeyProperty).MapColumn().HasIndex(IndexTypeMeta.UniqueIndexed);建立組合索引:使用IndexGroupOnProperties設置。

Meta.IndexGroupOnProperties(Resource.CultureIdProperty,Resource.KeyProperty);忽略映射外鍵:IgnoreFK;

Meta.Property(SupplierShipBill.MasterBillIdProperty).ColumnMeta.IgnoreFK();映射屬性實體元數據配置啟用假刪除:Meta.EnablePhantoms();禁用假刪除:Meta.DisablePhantoms();啟用庫存組織:Meta.EnableInvOrg();

禁用庫存組織:Meta.DisableInvOrg();啟用實體排序:Meta.EnableSort();

禁用實體排序:Meta.DisableSort();啟用樹形插件:Meta.SupportTree();啟用實體編輯日志記錄插件:Meta.EnableEntityLog();啟用數據同步插件:Meta.EnableDataSync();啟用實體鑒別器:Meta.EnableDiscriminator("PersonAttachment");實體插件06視圖介紹視圖介紹視圖:界面呈現(xiàn)的開發(fā)實現(xiàn),包括界面布局,編輯器,按鈕等相關界面操作。界面視圖命名規(guī)范:實體類名+ViewConfig,繼承:WebViewConfig<T>;T為對應的實體名稱;界面視圖只能建在客戶端工程。視圖配置的方法:1、配置視圖:ConfigView,界面的入口,具體視圖的列和命令操作配置不要在該方法中進行配置;2、列表視圖配置:ConfigListView;3、表單視圖配置:ConfigDetailsView,需要配置編輯模式為表單編輯(View.FormEdit())才會進入,需要注意的是一定要先使用編輯模式,再使用默認命令集,否則會出異常;4、查詢視圖配置:ConfigQueryView;查詢命令中不要使用默認命令集,否則權限會多出一個view的權限配置;5、下拉視圖配置:ConfigSelectionView,下拉視圖中不用配置操作命令;6、導入視圖配置:ConfigImportView(),導入命令中不用配置命令;7、自定義視圖配置:使用默認命令集(View.UseDefaultCommands())不生效,要把自定義分組添加到額外的分組(DeclareExtendViewGroup)里面,配置具體的列要加Show。視圖介紹07視圖配置思考題列表視圖配置可以做哪些配置?通用視圖ConfigView配置授權可信的實體:View.AssignAuthorize(typeof(實體名))定義額外的視圖,用于加載權限信息,生成授權界面:View.DeclareExtendViewGroup();判斷分組信息,執(zhí)行到具體的視圖方法配置;設置編輯模式,View.InlineEdit();或者View.FormEdit();如果菜單配置中沒有配置分組信息,編輯模式最好在ConfigListView中進行配置;ViewConfig配置列表視圖ConfigListView配置表格設置不使用分頁:View.WithoutPaging();使用編輯模式:View.InlineEdit();或者View.FormEdit();使用行為:View.AddBehavior("行為js的全名稱空間");使用默認命令集:View.UseDefaultCommands();移除命令:View.RemoveCommands(WebCommandNames.Copy);使用命令:View.UseCommands(WebCommandNames.Save);替換命令:View.ReplaceCommands(WebCommandNames.Delete,typeof(DeleteGoodCommand).FullName);清除所有命令:View.ClearCommands();ConfigListView配置列表視圖ConfigListView配置設置父子顯示比例,默認1:1,設置其他的比例使用View.UseLayoutSize(0.4,0.6);設置子布局:View.UseChildrenAsHorizontal();View.UseChildrenGroupAsHorizontal();設置前端排序:View.UseClientOrder();設置屬性視圖元數據:View.Property,View.ChildrenProperty和附加子屬性視圖元數據;設置不允許編輯:View.DisableEditing();表格列分組的使用:using(View.DeclareBand(“test”));ConfigListView配置表單視圖ConfigDetailsView配置使用行為:View.AddBehavior("行為js的全名稱空間");設置顯示列數:View.HasDetailColumnsCount(2);設置表單的寬度和高度:View.UseDetail(600,1000);設置界面不允許編輯:View.DisableEditing();使用默認命令集:View.UseDefaultCommands();移除命令:View.RemoveCommands(WebCommandNames.Copy);使用命令:View.UseCommands(WebCommandNames.Save);替換命令:View.ReplaceCommands(WebCommandNames.Delete, typeof(DeleteGoodsManageCommand).FullName);清除所有命令:View.ClearCommands();設置父子顯示比例,默認1:1:View.UseLayoutSize(0.4,0.6);設置屬性視圖元數據:View.Property,View.ChildrenProperty和附加子屬性視圖元數據;ConfigDetailsView配置選擇視圖、導入視圖、查詢視圖選擇和導入視圖選擇視圖和導入視圖只需要配置列屬性即可;選擇視圖的方法:ConfigSelectionView;導入視圖的方法:ConfigImportView;查詢視圖查詢視圖的方法:ConfigQueryView;查詢視圖的按鈕沒有控制操作權限,這一塊不需要設置操作命令,除非重寫對應的命令;必須在實體中標記CriteriaQuery或者是CriteriaQueryProvider特性才會進入ConfigQueryView方法中;選擇、導入和查詢視圖08視圖屬性配置思考題視圖屬性包括哪些配置?屬性配置表格設置列寬:ShowInList(width:300);表單設置行和列:ShowInDetail(rowSpan:8,columnSpan:3);設置列顯示位置:View.Property(p=>p.Describe).HasOrderNo(4);只讀設置:View.Property(p=>p.Code).Readonly(p=>p.PropertyType!=ItemPropertyType.Catalog)聯(lián)動設置:使用Cascade進行設置;屬性配置屬性配置表格凍結列設置:FixColumn();引用屬性使用自定義數據源:View.Property(p=>p.SupplierItemId).UseDataSource()View.Property(p=>p.SupplierItemId).UseDataSource((entity,pagingInfo,keyword)=>{varproductTest=entityasProductTest;if(productTest!=null){varlist=RT.Service.Resolve<OrderTestController>().GetSupplierItem(productTest.SupplierTestId,keyword,pagingInfo);returnlist;}else return

newEntityList<SupplierItem>();});屬性配置屬性配置表單設置換行:BS表單設置換行需要在要設置換行的列的前一列設置對應的列寬和列所占的寬度;如下圖希望工單另起一行,需要設置工單上面的一列占滿整行和這一列顯示的寬度;屬性配置屬性配置使用編輯器,具體查看編輯器的使用;默認值的設置:View.Property(p=>p.Code).DefaultValue(設置的值);String屬性類型的默認值設置: View.Property(p=>p.Name).DefaultValue(“Test”);枚舉默認值的設置: View.Property(p=>p.Name).DefaultValue((int)ItemType.Product)設置當前日期:View.Property(p=>p.Date).DefaultValue(System.DateTime.Today).UseDateEditor();設置當前時間:View.Property(p=>p.DateTime).DefaultValue(DateTime.Now.ToString("yyyy/MM/ddHH:mm:ss")).UseDateTimeEditor();屬性配置屬性配置下拉列表默認值設置:

請求后臺數據庫賦值:

View.Property(p=>p.EmpId).DefaultValue(RT.Service.Resolve<EmployeeController>().GetLoginUserEmployee())GetLoginUserEmployee方法在服務端控制器實現(xiàn),如下:public

virtual

SIE.Resources.Employee

GetLoginUserEmployee()

{

var

employee

=

RF.GetById<SIE.Resources.Employee>(RT.IdentityId);

return

employee;

}

屬性配置09知識擴展知識擴展后端獲取實體的操作狀態(tài):p.PersistenceStatus=PersistenceStatus.New; PersistenceStatus為當前操作的狀態(tài),包括Unchanged、Modified、New、Deleted四種狀態(tài)。RF.Save(entity)會走框架的驗證,保存比較慢,如果是新增批量保存且校驗單獨處理了可以使用RF.BatchInsert(entity)效率會高很多。RF.Save(entity),會根據entity的實體狀態(tài)去操作數據,如entity的實體狀態(tài)為新增,調用RF.Save就會執(zhí)行插入操作;如果entity的實體狀態(tài)為Modified,調用RF.Save就會執(zhí)行修改操作;為Deleted,則會根據實體是否啟用假刪除去控制執(zhí)行的是修改還是刪除語句,啟用假刪除,則執(zhí)行的是更新語句,更新了假刪除標識字段,否則執(zhí)行delete語句。前端有涉及到數據庫的操作,操作數據庫的方法一定要放到服務器控制器中進行實現(xiàn),前端通過RT.Service.Resolve<控制器類名>().方法名(方法參數)調用控制器的方法;知識擴展知識擴展Js獲取當前操作數據是新增還是修改:

前端js獲取屬性的值:entity.get屬性名();前端js設置屬性的值:entity.set(‘屬性名’,value);entity.set屬性名(value);說明:在前端設置引用屬性的值,除了設置id的值,還要設置對應顯示名稱的值,如果id為UnitId,則顯示名稱的命名為UnitId_Display。知識擴展view.getCurrent().isNew()true為新增view.getCurrent().isModified()true為修改view.getCurrent().isDirty()true為臟數據思考題實體升級數據庫映射表失敗?排查思路:1、WebClient或者WpfClient調試工程有沒有添加對應實體的工程引用;2、數據庫連接字符串有沒有配置錯;3、工程初始化類是否能執(zhí)行進去;4、數據提供者能否執(zhí)行進去;5、配置元數據的方法能否執(zhí)行進去;思考題ConfigListView中配置的表格列和命令與界面顯示的不一致?視圖配置的內容取的是自己和繼承父類該方法的并集。練習1、以下關于實體的描述,正確的是()A:實體可以不用標記序列化Serializable特性;B:實體配置自定義查詢實體類,是在實體上標記[CriteriaQuery]特性關聯(lián)的自定義查詢實體類的;C:子實體標記的特性是ChildEntity,根實體標記的特性是RootEntity;D:配置下拉列表的默認顯示名稱,是在實體中配置DisplayMember,DisplayMember關聯(lián)的屬性可以是引用屬性。2、以下關于實體的屬性,會映射數據庫表字段的有()A:只讀屬性; B:一般屬性; C:子列表屬性;D:引用屬性; E:視圖屬性3、表格凍結列設置是在屬性元數據中配置FixColumn()實現(xiàn)的。()CBD對本章小結本章主要講解了工業(yè)管理軟件實體和界面配置Api,包括:實體特性;實體的屬性;實體屬性特性;實體配置;界面方法配置;界面屬性配置。學員能夠根據不同的業(yè)務需求熟練的進行實體和界面相關api的配置,以滿足不同的業(yè)務需求。THANKYOU深圳市信息職業(yè)技術學院3.4平臺通用配置深圳市信息職業(yè)技術學院——平臺編輯器使用介紹String類型編輯器數值類型編輯器時間類型編輯器引用類型編輯器通用編輯器介紹枚舉類型編輯器圖片編輯器Bool類型編輯器快碼編輯器知識回顧實體介紹;實體屬性及實體屬性特性;實體特性;實體配置;視圖介紹;視圖配置;視圖屬性配置;知識擴展;學習目標通過本節(jié)學習可以:掌握框架實現(xiàn)的通用編輯器包括哪些?能夠區(qū)分什么類型的屬性使用什么編輯器?掌握平臺不同編輯器的使用;掌握編輯器屬性的配置使用。01通用編輯器介紹編輯器介紹編輯器介紹框架實現(xiàn)的編輯器包括:文本編輯器、數值編輯器、下拉編輯器、枚舉編輯器、復選框編輯器、時間類型編輯器、圖片編輯器和快碼編輯器。String類型的屬性框架默認使用的編輯器為文本編輯器:UseTextEditor();Bool類型的屬性框架默認使用的編輯器為復選框編輯器:UseCheckEditor();枚舉類型的屬性框架默認使用的是枚舉編輯器:UseEnumEditor();數值類型的屬性框架默認使用的是數值編輯器:UseSpinEditor();時間類型的屬性框架默認使用的是日期時間編輯器:UseDateTimeEditor();引用類型的屬性框架默認使用的是下拉列表編輯器:UsePagingLookUpEditor();編輯器注意事項編輯器注意事項框架編輯器的使用依賴于屬性的類型,如框架默認下拉編輯器只能使用在引用屬性,在其他類型中使用下拉列表編輯器會報錯。如果不設置編輯器的具體參數,框架默認會根據屬性的類型去讀取對應的編輯器來展示,不需要額外進行指定對應的編輯器。所有的編輯器都有ColumnXType(列的類型)和XType(控件類型),用于對編輯器進行重寫,ColumnXType和XType綁定的值為控件js文件的別名。02String類型編輯器String類型編輯器String類型屬性使用的編輯器即為文本編輯器。文本編輯器包含如下幾種: 1、字符串屬性編輯器UseTextEditor():框架string類型屬性默認的編輯器常用參數:AllowBlank(是否允許為空)、MaxLength(最大長度)、MasLengthText(最大長度驗證失敗提示信息)、MinLenght(最小長度)、MinLenghtText(最小長度驗證失敗提示信息) 2、密碼編輯器:UsePasswordEditor();常用參數:AllowBlank(是否允許為空)、MaxLength(最大長度)、MasLengthText(最大長度驗證失敗提示信息)、MinLenght(最小長度)、MinLenghtText(最小長度驗證失敗提示信息)。 3、大文本編輯器:UseMemoEditor();常用參數:AllowBlank(是否允許為空)String類型編輯器03數值類型編輯器數值類型編輯器數值類型編輯器:UseSpinEditor()常用參數:AllowBlank(是否允許為空)、MaxValue(最大值)、MinValue(最小值)、AllowDecimals(是否允許為小數)、DecimalPrecision(小數位數)、AllowNegative(是否允許為負數)、Step(增量設置)。說明: 1、整數類型的屬性使用數值編輯器,沒有小數位數,也不能設置小數位數; 2、浮點類型的屬性使用數值編輯器,默認三位小數,增量默認為0.001;數值類型編輯器思考題數值類型的編輯器要使增量失效,可以怎么做?可以設置數值編輯器的Step為0,即.UseSpinEditor(p=>p.Step=0)。04時間類型編輯器日期時間編輯器屬性類型為DateTime的屬性使用的編輯器為時間類型編輯器,時間類型的編輯器包括:日期時間編輯器、日期編輯器、時間編輯器和日期范圍編輯器。1、日期時間編輯器:UseDateTimeEditor(),使用該編輯器顯示格式為:年月日時分秒。常用參數:AllowBlank(是否允許為空)、MaxValue(最大值)、MinValue(最小值)。默認值設置:設置為當前時間使用示例:View.Property(p=>p.EffectiveStartTime).DefaultValue(DateTime.Now.ToString("yyyy/MM/ddHH:mm:ss")).UseDateTimeEditor()日期時間編輯器日期編輯器2、日期編輯器:UseDateEditor(),使用該編輯器顯示格式為:年月日常用參數:Format(日期格式化)、AllowBlank(是否允許為空)、MaxValue(最大值)、MinValue(最小值)。默認值設置:設置為當前日期為默認值View.Property(p=>p.EffectiveStartTime).DefaultValue(System.DateTime.Today).UseDateEditor()格式化設置:View.Property(p=>p.Property7).UseDateEditor(p=>p.Format="Y/m/d");View.Property(p=>p.Property3).UseDateEditor(p=>p.Format="Y-m-d");日期編輯器時間編輯器3、時間編輯器:UseTimeEditor(),使用該編輯器顯示格式為:時分秒常用參數:Format(日期格式化)、AllowBlank(是否允許為空)、MaxValue(最大值)、MinValue(最小值)。格式化設置:View.Property(p=>p.Property7).UseTimeEditor(p=>p.Format="H")View.Property(p=>p.Property3).UseTimeEditor(p=>p.Format="H:m:s")時間編輯器日期范圍編輯器4、日期范圍編輯器:UseDateRangeEditor()常用參數:DateFormat(格式化)、AllowBlank(是否允許為空)、MaxValue(最大值)、MinValue(最小值)、DateRangeType(日期范圍類型)、StartDate(開始日期)、EndDate(結束日期)。使用示例:設置日期范圍默認為當前月View.Property(p=>p.UpdateDate).UseDateRangeEditor(p=>p.DateRangeType=ObjectModel.DateRangeType.Month);格式化設置:View.Property(p=>p.UpdateDate).UseDateRangeEditor(p=>{p.DateFormat="Y-m-d";});注意事項:

1、日期范圍參數DateRangeType不設置,默認為當天; 2、如果是自定義查詢實體實現(xiàn)日期范圍的查詢,查詢實體對應使用日期范圍控件的數據類型要設置為日期范圍DateRange;日期范圍編輯器05引用類型編輯器引用類型編輯器引用類型編輯器使用的是下拉編輯器:UsePagingLookUpEditor()常用參數:AllowBlank(是否允許為空)、DisplayField(顯示值)、BindDisplayField(顯示綁定的值,通常要與DisplayField一起使用)、DicLinkField(聯(lián)動字段)、Editable(是否可編輯)、XType(控件的類型)。必須要是引用屬性才能使用該編輯器如前面講的讀者管理的類別號關聯(lián)的是讀者分類的信息,讀者管理的類別號用下拉列表實現(xiàn)。我們回顧下實現(xiàn)步驟:引用類型編輯器引用類型編輯器使用步驟 1、讀者管理的實體添加引用屬性,引用屬性關聯(lián)的實體為讀者分類使用步驟引用類型編輯器2、在讀者分類的實體中配置顯示名稱,這步不做,會導致下拉選擇后無法顯示問題使用步驟引用類型編輯器3、在讀者分類的界面中配置選擇視圖,這步不做或者配置的地方不對,會導致下拉選擇的數據和列顯示異常。使用步驟引用類型編輯器4、在讀者管理中使用下拉編輯器。注意:使用modelfirst建模生成的界面配置屬性的展示是用的引用屬性管理的實體進行下拉關聯(lián)的,這里要改成用id,這樣改的目前是避免N+1查詢的問題。使用步驟引用類型編輯器5、效果。使用步驟思考題引用類型編輯器需要根據條件展示數據,應該如何實現(xiàn)?引用屬性自定義編輯器的實現(xiàn)說明:引用屬性下拉編輯器,項目使用場景較多的就是根據不同的條件展示下拉選擇數據,這種需求通過重寫數據源,處理數據加載部分即可滿足需求。使用步驟: 1、在界面端建一個擴展靜態(tài)類,類名以Extention結尾,如下:使用步驟引用屬性自定義編輯器的實現(xiàn)2、在靜態(tài)類中實現(xiàn)自定義編輯器方法:

///

<summary>

///打印模板配置-標簽模板級聯(lián)編輯器

///

</summary>

///

<typeparam

name="T">實體類型</typeparam>

///

<param

name="meta">屬性視圖元數據</param>

///

<param

name="action">委托</param>

///

<returns>泛型屬性視圖元數據</returns>

public

staticWebEntityPropertyViewMeta<T>UseLabelPrintTemplateEditor<T>(thisWebEntityPropertyViewMeta<T>meta,Action<PagingLookUpBaseConfig>action=null)

{meta.UseDataSource((source,pagingInfo,keyword)=>

{

vartemplate=sourceasLabelPrintTemplate;

vartemplates=newEntityList<PrintTemplate>();

if(template==null||template.NumberRule==null)

returntemplates;

vartemplateList=RT.Service.Resolve<ItemController>().GetRuleInTemplates(template.NumberRuleId.Value,pagingInfo,keyword);

returntemplateList;}).UsePagingLookUpEditor(action);

returnmeta;

}使用步驟Source為數據源,即使用編輯器界面對應的實體。符合條件的下拉選擇列表的數據,數據類型為EntityList。引用屬性自定義編輯器的實現(xiàn)3、后臺查詢數據庫方法的實現(xiàn):

public

virtualEntityList<PrintTemplate>GetRuleInTemplates(doubleruleId,PagingInfopagingInfo,stringkeyword)

{

varquery=Query<PrintTemplate>().LeftJoin<NumberRuleInTemplate>((x,y)=>x.Id==y.TemplateId).Where<NumberRuleInTemplate>((x,y)=>y.RuleId==ruleId);

if(!keyword.IsNullOrEmpty())query.Where(x=>x.EntityName.Contains(keyword)||x.FileName.Contains(keyword));

varresult=query.ToList(pagingInfo,newEagerLoadOptions().LoadWithViewProperty());

returnresult;

}使用步驟返回值要主要分頁和懶加載的問題Keyword的查詢條件要與實體配置條件一致引用屬性自定義編輯器的實現(xiàn)4、ViewConfig使用自定義編輯器使用步驟引用屬性自定義編輯器的實現(xiàn)5、效果使用步驟06枚舉類型編輯器枚舉類型編輯器枚舉編輯器UseEnumEditor()常用參數:AllowBlank(是否允許為空)。設置默認值及使用:View.Property(p=>p.Type).DefaultValue((int)ItemType.Product).UseEnumEditor()

其中:Type的屬性類型必須是枚舉,ItemType為枚舉,Product為枚舉的屬性;框架枚舉編輯器支持帶條件搜索,使用如下:

View.Property(p=>p.Type).UseEnumEditor("CriteriaEntity");枚舉類型編輯器07圖片編輯器圖片編輯器圖片編輯器UseImageComponentEditor()說明:框架圖片編輯器只能在表單中使用,列表使用不生效;使用圖片編輯器的屬性類型只能是byte[];圖片編輯器雖然有參數Width(寬)、Height(高)等這些,但是一般我們在ShowInDetail中設置相應的參數效果會好些。圖片編輯器08Bool類型編輯器Bool類型編輯器復選框編輯器UseCheckEditor():框架bool類型默認的編輯器常用參數:AllowBlank(是否允許為空)、Editable(是否可編輯)。使用:View.Property(p=>p.Check).UseCheckEditor();布爾下拉編輯器UseCheckDropDownEditor()常用參數:AllowBlank(是否允許為空)、Editable(是否可編輯)。使用:

View.Property(p=>p.Check).UseCheckDropDownEditor();Bool類型編輯器09快碼編輯器框架快碼功能介紹快碼可以理解為是動態(tài)的枚舉或者是數據字典,在SMOM平臺中,做了一個快碼的功能包含主表和從表,用于維護這些基礎數據,主表的數據不能在界面維護,需要在程序中實現(xiàn)或者是在數據庫中處理,從表的數據可在界面中維護;而框架做的快碼編輯器就是通過快碼主表的編碼做查詢條件,將滿足條件的明細數據篩選出來展示在快碼下拉編輯器中。框架快碼功能介紹快碼的應用場景控制邏輯標識:使用快碼可以對復雜的邏輯結構進行標識和記錄,方便對其進行維護和修改;生產過程監(jiān)控:使用快碼可以方便標識并追蹤生產流程中的各個環(huán)節(jié)和產出物的信息,從而提高生產效率和質量;需求調研和功能設計階段,對一些類型的分類不明確或者是分類較多的,使用枚舉開發(fā)這類需求會存在反復改代碼的問題;如果所有這類需求都用基礎數據界面維護,功能開發(fā)會較多且不利于維護數據;基于這種場景考慮,框架引入了快碼這個功能,專門處理這種場景的業(yè)務需求。快碼的應用場景快碼功能主表數據的添加從快碼功能菜單可以看出,快碼主表的數據是不能在界面中進行維護的,而快碼編輯器獲取的是對應主表下的所有明細數據。所以我們在使用編輯器之前要先將快碼主表的數據維護起來。主表數據的維護提供兩種方式: 1、通過數據庫腳本的方式執(zhí)行:這種方式必須掌握; 2、在程序中通過程序添加數據:這種方式要清楚原理,能看懂代碼??齑a功能主表數據的添加快碼功能主表數據的添加快碼和快碼明細對應的表

快碼主表名:BD_CATALOG_TYPE;快碼明細表名:BD_CATALOGOracle執(zhí)行腳本:insertintoBD_CA

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論