業(yè)務(wù)對(duì)象模型_第1頁(yè)
業(yè)務(wù)對(duì)象模型_第2頁(yè)
業(yè)務(wù)對(duì)象模型_第3頁(yè)
業(yè)務(wù)對(duì)象模型_第4頁(yè)
業(yè)務(wù)對(duì)象模型_第5頁(yè)
已閱讀5頁(yè),還剩5頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

本節(jié)介紹信息系統(tǒng)開(kāi)發(fā)中最常見(jiàn)的問(wèn)題,引用關(guān)系,一對(duì)多關(guān)系,多對(duì)多關(guān)系。以客戶(hù)信息為例,客戶(hù)通常需要客戶(hù)分類(lèi),如VIP客戶(hù),普通客戶(hù),潛在客戶(hù)。當(dāng)然,我們可以定義枚舉類(lèi)型進(jìn)行定義出這個(gè)類(lèi)型,并在客戶(hù)類(lèi)上面定義對(duì)應(yīng)的屬性。但枚舉類(lèi)型增加值需要修改程序,而客戶(hù)分類(lèi)很可能是會(huì)增加或是修改的,此時(shí),我們就需要用到了引用類(lèi)型。引用類(lèi)型對(duì)應(yīng)到數(shù)據(jù)庫(kù)上,也就是外鍵關(guān)系。既然是需要可以維護(hù)的客戶(hù)分類(lèi),那么我們應(yīng)該建立一張表出來(lái),在XPO中就要新建出一個(gè)業(yè)務(wù)類(lèi),代碼如下:電[DefaultClassOptions][XafDefaultProperty(〃名稱(chēng)〃)]publicclass客戶(hù)分類(lèi):BaseObject(public客戶(hù)分類(lèi)(Sessions):base(s)(}privatestring_名稱(chēng);publicstring名稱(chēng)(get(return_名稱(chēng);}set(SetPropertyValue("名稱(chēng)〃,ref_名稱(chēng),value);}}}代碼相當(dāng)?shù)暮?jiǎn)單,只有一個(gè)屬性。運(yùn)行系統(tǒng)后,客戶(hù)分類(lèi)已經(jīng)出現(xiàn)在菜單中,接下來(lái),要在客戶(hù)中填加客戶(hù)分類(lèi)屬性。private客戶(hù)分類(lèi)—客戶(hù)分類(lèi);public客戶(hù)分類(lèi)客戶(hù)分類(lèi)(get(return—客戶(hù)分類(lèi);}set(SetPropertyValue(〃客戶(hù)分類(lèi)〃,ref—客戶(hù)分類(lèi),value);}}接下來(lái)按下F5運(yùn)行系統(tǒng),看看效果。從導(dǎo)航欄點(diǎn)擊客戶(hù),再次點(diǎn)擊新建,可以看到如下效果的編輯器。你的運(yùn)行效果中沒(méi)有VIP和普通用戶(hù)這兩個(gè)值嗎?

對(duì)的,可以直接點(diǎn)擊圖中所示的倒數(shù)第二個(gè)按鈕,可以新建出可選項(xiàng)。客戶(hù)分類(lèi):N/A客戶(hù)分類(lèi):N/AVLP晉通客戶(hù)回過(guò)頭來(lái)看一下我們新使用的屬性:[DefaultClassOptions][XafDefaultProperty("名稱(chēng)”)]publicclass客戶(hù)分類(lèi):BaseObject{.....}可以看到客戶(hù)分類(lèi)上面使用了新的Attribute,XafDefaultPropertyAttribute,它的功能是:當(dāng)類(lèi)實(shí)例被顯示時(shí),使用哪個(gè)屬性做為顯示值,如果去掉這句話效果如下:客戶(hù)的類(lèi): WA 卜間#N/AXCRMDema.Module.BiisinessObject5,客戶(hù)分類(lèi)(0fb4aSSf-dlbe^7a5-ba7b-6Lbc8ae7e782)XCRMDemc>,McduIe.s-inbjsets戶(hù)分類(lèi)(lf5a04G3-ee=ad^l06b-a01c-&24c3ada687G}可以看出來(lái),顯示的是類(lèi)的全名(一串GUID),這個(gè)GUID就是主鍵字段的值。后面如果看到這種情況,你應(yīng)該知道需要設(shè)置XafDefaultProperty就好了。引用型字段使用的是搜索編輯器,當(dāng)數(shù)據(jù)條數(shù)大于25時(shí),將會(huì)自動(dòng)的顯示為彈出搜索窗口。我們可以手工向客戶(hù)分類(lèi)表中新建超過(guò)25條記錄。可以看到,這時(shí)的圖標(biāo)變成了望遠(yuǎn)鏡,點(diǎn)擊后,彈出窗口:

可以看到,這時(shí)的圖標(biāo)變成了望遠(yuǎn)鏡,點(diǎn)擊后,彈出窗口:在彈出窗口中,按下搜索按鈕,就顯示出了所有記錄。當(dāng)然還有很多可以控制的選項(xiàng),但本節(jié)主要介紹引用型關(guān)系的使用,所以不做深入討論,后面會(huì)詳細(xì)介紹。I--jdb。,客戶(hù)I-.」列?Oid{PK,uniqueiidentifier,notnull)姓名(nvarchar(lOO),null)□禁用(bit,null)□也!1(int,null)□出生日(datetime,null)n手機(jī)呂弱(nvmixhH「[100Lnull;□tfflU(nvarcharflOQ),null)國(guó)年收入(money,null)目明片(varbinaryfmaxj,mi.ill;OpLiiri&ticLockFieldtint,null)GCRecord(int,null)客戶(hù)分類(lèi)(FK.uniqueidentifier,null)再來(lái)看看數(shù)據(jù)庫(kù)中表的變化,客戶(hù)分類(lèi)字段已經(jīng)建立出來(lái),并且是外鍵。這種建立外鍵的機(jī)制對(duì)數(shù)據(jù)完整性有很好的約束。當(dāng)然也是可以不建立出外鍵的。下面再來(lái)看看一對(duì)多關(guān)系的建立方法,有這樣的需求:一個(gè)客戶(hù)有多個(gè)聯(lián)系人,一個(gè)聯(lián)系人只屬于一個(gè)客戶(hù)。我們先新建一個(gè)聯(lián)系人類(lèi)型:[XafDefaultProperty(〃名稱(chēng)〃)]

publicclass聯(lián)系人:BaseObject(public聯(lián)系人(Sessions):base(s)(}privatestring_名稱(chēng);publicstring名稱(chēng)(get(return_名稱(chēng);}set(SetPropertyValue("名稱(chēng)〃,ref_名稱(chēng),value);}}private客戶(hù)—客戶(hù);[Association]public客戶(hù)客戶(hù)(get(return—客戶(hù);}set(SetPropertyValue(〃客戶(hù)〃,ref_客戶(hù),value);}}}同時(shí),在客戶(hù)類(lèi)中填加一個(gè)集合屬性:publicclass客戶(hù) ([Association]publicXPCollection〈聯(lián)系人〉聯(lián)系人(get(returnGetCollection〈聯(lián)系人〉(〃聯(lián)系人〃);}}}路這里可以看到,在客戶(hù)類(lèi)中聯(lián)系人屬性是xpcollection<聯(lián)系人〉,而在聯(lián)系人類(lèi)中,有客戶(hù)屬性,它們都用了[Association]進(jìn)行了標(biāo)記。是的,這個(gè)標(biāo)記就是用來(lái)建立關(guān)聯(lián)關(guān)系的。F5運(yùn)行一下看看效果吧!

在客戶(hù)列表中,點(diǎn)擊新建,可以看到下方多了一個(gè)聯(lián)系人列表,是的,這里可以存儲(chǔ)多個(gè)聯(lián)系人信息了。在聯(lián)系人列表上,可以點(diǎn)擊“New按鈕進(jìn)行填加數(shù)據(jù)了。下面再來(lái)看看多對(duì)多關(guān)系的建立,在實(shí)現(xiàn)項(xiàng)目開(kāi)發(fā)中,有這樣一種情形,公司為了銷(xiāo)售業(yè)務(wù),通常會(huì)有業(yè)務(wù)大區(qū)的概念,一個(gè)客戶(hù)可能存在于兩個(gè)業(yè)務(wù)大區(qū)中,如公司銷(xiāo)售在上海市普陀區(qū),嘉定區(qū)均有營(yíng)業(yè)網(wǎng)點(diǎn),客戶(hù)在嘉定區(qū)居住,但離普陀區(qū)很近,可能去普陀區(qū)銷(xiāo)費(fèi),那么我們可以建立大區(qū)類(lèi)、和客戶(hù)類(lèi)是多對(duì)多的關(guān)聯(lián)關(guān)系:[NavigationItem("基礎(chǔ)數(shù)據(jù)”)][XafDefaultProperty(〃名稱(chēng)〃)]publicclass銷(xiāo)售大區(qū):BaseObject(public銷(xiāo)售大區(qū)(Sessions):base(s)(}privatestring_名稱(chēng);publicstring名稱(chēng)(get(return_名稱(chēng);}set(SetPropertyValue(〃名稱(chēng)〃,ref_名稱(chēng),value);}}[Association]publicXPCollection<客戶(hù)〉客戶(hù)(get(returnGetCollection<客戶(hù)>(〃客戶(hù)〃);}}

上面的代碼就新建出了銷(xiāo)售大區(qū)類(lèi)型,可以看到新建的類(lèi)型上我使用了[NavigationItem("基礎(chǔ)數(shù)據(jù)")]這樣一個(gè)Attribute,它的功能是在導(dǎo)航菜單中,建一個(gè)導(dǎo)航分組,并把銷(xiāo)售大區(qū)這個(gè)業(yè)務(wù)對(duì)象的列表顯示在里面。publicclass客戶(hù) ([Association]publicXPCollection<銷(xiāo)售大區(qū)〉所屬大區(qū)(get(returnGetCollection<銷(xiāo)售大區(qū)>(〃所屬大區(qū)〃);}}在客戶(hù)類(lèi)中增加一個(gè)所屬大區(qū)屬性,如上所示,這樣一個(gè)對(duì)多對(duì)關(guān)系就建立完成了??梢钥闯?,和一對(duì)多其實(shí)是一樣的,只是兩個(gè)類(lèi)中都用xpcollection<T>這個(gè)泛型類(lèi)即可。還是F5看下效果吧:囪eXpressApp-可以看到,銷(xiāo)售大區(qū)被放到了基礎(chǔ)數(shù)據(jù)下面點(diǎn)擊后,出現(xiàn)了銷(xiāo)售大區(qū)的列表,這時(shí),還沒(méi)有數(shù)據(jù)。在銷(xiāo)售大區(qū)上點(diǎn)擊新建,可以看到客戶(hù)列表出現(xiàn)在銷(xiāo)售大區(qū)的詳細(xì)界面中了。這里點(diǎn)擊Link按鈕,可以選擇大區(qū)所擁有的客戶(hù)。同樣的,來(lái)看客戶(hù)信息:這時(shí),所屬大區(qū)被放到了第二個(gè)Tab頁(yè)面中,XAF會(huì)判斷有幾個(gè)子級(jí)列表類(lèi)型的集合,而建立出Tab.如果你一直和我一樣,一直使用中文編碼,點(diǎn)開(kāi)所屬大區(qū)會(huì)是空白的,這是Dev的BUG,將會(huì)在15.2.5版本中修復(fù),臨時(shí)的解決方法是這樣的:解決方案->XCRMDemo.Web->WebApplication.cs,右鍵,查看代碼,來(lái)到構(gòu)造函數(shù)中,加入如下語(yǔ)句:publicXCRMDemoAspNetApplication()(InitializeComponent();DelayedViewItemsInitialization=fals

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論