




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
本節介紹信息系統開發中最常見的問題,引用關系,一對多關系,多對多關系。以客戶信息為例,客戶通常需要客戶分類,如VIP客戶,普通客戶,潛在客戶。當然,我們可以定義枚舉類型進行定義出這個類型,并在客戶類上面定義對應的屬性。但枚舉類型增加值需要修改程序,而客戶分類很可能是會增加或是修改的,此時,我們就需要用到了引用類型。引用類型對應到數據庫上,也就是外鍵關系。既然是需要可以維護的客戶分類,那么我們應該建立一張表出來,在XPO中就要新建出一個業務類,代碼如下:電[DefaultClassOptions][XafDefaultProperty(〃名稱〃)]publicclass客戶分類:BaseObject(public客戶分類(Sessions):base(s)(}privatestring_名稱;publicstring名稱(get(return_名稱;}set(SetPropertyValue("名稱〃,ref_名稱,value);}}}代碼相當的簡單,只有一個屬性。運行系統后,客戶分類已經出現在菜單中,接下來,要在客戶中填加客戶分類屬性。private客戶分類—客戶分類;public客戶分類客戶分類(get(return—客戶分類;}set(SetPropertyValue(〃客戶分類〃,ref—客戶分類,value);}}接下來按下F5運行系統,看看效果。從導航欄點擊客戶,再次點擊新建,可以看到如下效果的編輯器。你的運行效果中沒有VIP和普通用戶這兩個值嗎?
對的,可以直接點擊圖中所示的倒數第二個按鈕,可以新建出可選項。客戶分類:N/A客戶分類:N/AVLP晉通客戶回過頭來看一下我們新使用的屬性:[DefaultClassOptions][XafDefaultProperty("名稱”)]publicclass客戶分類:BaseObject{.....}可以看到客戶分類上面使用了新的Attribute,XafDefaultPropertyAttribute,它的功能是:當類實例被顯示時,使用哪個屬性做為顯示值,如果去掉這句話效果如下:客戶的類: WA 卜間#N/AXCRMDema.Module.BiisinessObject5,客戶分類(0fb4aSSf-dlbe^7a5-ba7b-6Lbc8ae7e782)XCRMDemc>,McduIe.s-inbjsets戶分類(lf5a04G3-ee=ad^l06b-a01c-&24c3ada687G}可以看出來,顯示的是類的全名(一串GUID),這個GUID就是主鍵字段的值。后面如果看到這種情況,你應該知道需要設置XafDefaultProperty就好了。引用型字段使用的是搜索編輯器,當數據條數大于25時,將會自動的顯示為彈出搜索窗口。我們可以手工向客戶分類表中新建超過25條記錄。可以看到,這時的圖標變成了望遠鏡,點擊后,彈出窗口:
可以看到,這時的圖標變成了望遠鏡,點擊后,彈出窗口:在彈出窗口中,按下搜索按鈕,就顯示出了所有記錄。當然還有很多可以控制的選項,但本節主要介紹引用型關系的使用,所以不做深入討論,后面會詳細介紹。I--jdb。,客戶I-.」列?Oid{PK,uniqueiidentifier,notnull)姓名(nvarchar(lOO),null)□禁用(bit,null)□也!1(int,null)□出生日(datetime,null)n手機呂弱(nvmixhH「[100Lnull;□tfflU(nvarcharflOQ),null)國年收入(money,null)目明片(varbinaryfmaxj,mi.ill;OpLiiri&ticLockFieldtint,null)GCRecord(int,null)客戶分類(FK.uniqueidentifier,null)再來看看數據庫中表的變化,客戶分類字段已經建立出來,并且是外鍵。這種建立外鍵的機制對數據完整性有很好的約束。當然也是可以不建立出外鍵的。下面再來看看一對多關系的建立方法,有這樣的需求:一個客戶有多個聯系人,一個聯系人只屬于一個客戶。我們先新建一個聯系人類型:[XafDefaultProperty(〃名稱〃)]
publicclass聯系人:BaseObject(public聯系人(Sessions):base(s)(}privatestring_名稱;publicstring名稱(get(return_名稱;}set(SetPropertyValue("名稱〃,ref_名稱,value);}}private客戶—客戶;[Association]public客戶客戶(get(return—客戶;}set(SetPropertyValue(〃客戶〃,ref_客戶,value);}}}同時,在客戶類中填加一個集合屬性:publicclass客戶 ([Association]publicXPCollection〈聯系人〉聯系人(get(returnGetCollection〈聯系人〉(〃聯系人〃);}}}路這里可以看到,在客戶類中聯系人屬性是xpcollection<聯系人〉,而在聯系人類中,有客戶屬性,它們都用了[Association]進行了標記。是的,這個標記就是用來建立關聯關系的。F5運行一下看看效果吧!
在客戶列表中,點擊新建,可以看到下方多了一個聯系人列表,是的,這里可以存儲多個聯系人信息了。在聯系人列表上,可以點擊“New按鈕進行填加數據了。下面再來看看多對多關系的建立,在實現項目開發中,有這樣一種情形,公司為了銷售業務,通常會有業務大區的概念,一個客戶可能存在于兩個業務大區中,如公司銷售在上海市普陀區,嘉定區均有營業網點,客戶在嘉定區居住,但離普陀區很近,可能去普陀區銷費,那么我們可以建立大區類、和客戶類是多對多的關聯關系:[NavigationItem("基礎數據”)][XafDefaultProperty(〃名稱〃)]publicclass銷售大區:BaseObject(public銷售大區(Sessions):base(s)(}privatestring_名稱;publicstring名稱(get(return_名稱;}set(SetPropertyValue(〃名稱〃,ref_名稱,value);}}[Association]publicXPCollection<客戶〉客戶(get(returnGetCollection<客戶>(〃客戶〃);}}
上面的代碼就新建出了銷售大區類型,可以看到新建的類型上我使用了[NavigationItem("基礎數據")]這樣一個Attribute,它的功能是在導航菜單中,建一個導航分組,并把銷售大區這個業務對象的列表顯示在里面。publicclass客戶 ([Association]publicXPCollection<銷售大區〉所屬大區(get(returnGetCollection<銷售大區>(〃所屬大區〃);}}在客戶類中增加一個所屬大區屬性,如上所示,這樣一個對多對關系就建立完成了。可以看出,和一對多其實是一樣的,只是兩個類中都用xpcollection<T>這個泛型類即可。還是F5看下效果吧:囪eXpressApp-可以看到,銷售大區被放到了基礎數據下面點擊后,出現了銷售大區的列表,這時,還沒有數據。在銷售大區上點擊新建,可以看到客戶列表出現在銷售大區的詳細界面中了。這里點擊Link按鈕,可以選擇大區所擁有的客戶。同樣的,來看客戶信息:這時,所屬大區被放到了第二個Tab頁面中,XAF會判斷有幾個子級列表類型的集合,而建立出Tab.如果你一直和我一樣,一直使用中文編碼,點開所屬大區會是空白的,這是Dev的BUG,將會在15.2.5版本中修復,臨時的解決方法是這樣的:解決方案->XCRMDemo.Web->WebApplication.cs,右鍵,查看代碼,來到構造函數中,加入如下語句:publicXCRMDemoAspNetApplication()(InitializeComponent();DelayedViewItemsInitialization=fals
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 湖南省長沙市瀏陽市2025年三年級數學第二學期期末經典試題含解析
- 湛江市大成中學高一上學期物理期中測試題
- 2025簡易場地租賃合同范本
- 食管癌的護理
- 內科護理學課件
- 2025建筑外墻施工合同范本
- 2025某地產開發項目施工合同
- 2025年蘆灣村原下沖海堤開東部灣中部地塊租賃合同范本
- 2025幼兒園教師聘用合同模板
- 2025年廣東省職工勞動合同書模板
- 精細化工產品公司企業經營戰略方案
- 缺血缺氧性腦病詳解課件
- 自動打鈴控制器plc課程設計
- 最新司法鑒定程序通則課件來源于司法部司法鑒定局
- 北師大版一年級英語下冊期中測試卷
- 冠狀動脈CT解剖詳解
- 檔案學概論重點知識梳理
- 地下連續墻鋼筋籠起重吊裝專項施工方案
- 單值和移動極差X-MR控制圖
- 進口產品委托代理合同協議書范本
- 變壓器容量與母排選型配合表81035
評論
0/150
提交評論