亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種可配置的a+b模式的記錄導(dǎo)航方法

文檔序號(hào):9350105閱讀:735來(lái)源:國(guó)知局
一種可配置的a+b模式的記錄導(dǎo)航方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于電子信息技術(shù)領(lǐng)域,具體涉及一種可配置的A+B模式的記錄導(dǎo)航方 法。
【背景技術(shù)】
[0002] 在信息管理系統(tǒng)的開(kāi)發(fā)中,經(jīng)常需要開(kāi)發(fā)數(shù)據(jù)庫(kù)記錄的列表界面,為了讓用戶(hù)能 夠快速定位到某條記錄,一般還需要在界面上提供記錄的導(dǎo)航方法。
[0003] -般對(duì)數(shù)據(jù)庫(kù)記錄的導(dǎo)航方法主要有如下三種:
[0004] 1)采用與該記錄關(guān)聯(lián)的某個(gè)分類(lèi)樹(shù)進(jìn)行導(dǎo)航。例如按目錄對(duì)文件進(jìn)行導(dǎo)航,目錄 就是一個(gè)分類(lèi)樹(shù)。在數(shù)據(jù)庫(kù)中,分類(lèi)樹(shù)的所有條目都是存儲(chǔ)在同一張表中,每個(gè)條目都有指 向父條目ID的字段,因此構(gòu)成一顆完整的樹(shù)。記錄表與分類(lèi)表之間存在著關(guān)聯(lián)。
[0005] 2)采用與該記錄關(guān)聯(lián)的某個(gè)字典進(jìn)行導(dǎo)航。例如按產(chǎn)品編碼對(duì)產(chǎn)品進(jìn)行導(dǎo)航,產(chǎn) 品編碼就是一個(gè)字典。在數(shù)據(jù)庫(kù)中,字典用來(lái)表示名稱(chēng)和編碼之間的對(duì)應(yīng)關(guān)系,字典的所有 條目都存在同一張表中,條目之間沒(méi)有父子關(guān)系。記錄表與字典表之間存在著關(guān)聯(lián)。
[0006] 3)采用該記錄的某個(gè)字段的值列表進(jìn)行導(dǎo)航。例如按照記錄的創(chuàng)建人進(jìn)行導(dǎo)航。 一般做法是獲取該字段的所有值列表,并去重復(fù),得到的值列表就可以用來(lái)導(dǎo)航。
[0007] 在開(kāi)發(fā)記錄導(dǎo)航界面的過(guò)程中,存在如下幾個(gè)效率低下的問(wèn)題:1)針對(duì)每一個(gè)記 錄列表界面,都需要開(kāi)發(fā)導(dǎo)航功能,代碼都非常類(lèi)似,導(dǎo)致大量的重復(fù)勞動(dòng);2)用戶(hù)經(jīng)常對(duì) 記錄的導(dǎo)航方式提出新的要求,這就要求重新修改代碼。在增加工作量的同時(shí),也讓代碼的 可維護(hù)性變得越來(lái)越差;3)有時(shí)候用戶(hù)期望把幾種導(dǎo)航方式組合在一起,如第一層導(dǎo)航的 節(jié)點(diǎn)是所在部門(mén),第二層導(dǎo)航的節(jié)點(diǎn)是創(chuàng)建人,這種導(dǎo)航方式,代碼會(huì)更加復(fù)雜,難以維護(hù)。

【發(fā)明內(nèi)容】

[0008] 針對(duì)上述問(wèn)題,本發(fā)明提供了一種可配置的A+B模式的記錄導(dǎo)航方法。允許開(kāi)發(fā) 人員通過(guò)配置的方式,指定復(fù)雜的記錄導(dǎo)航方法,并在界面上自動(dòng)生成導(dǎo)航樹(shù)。簡(jiǎn)化了軟件 開(kāi)發(fā)的工作量,也能夠按照要用戶(hù)的要求隨時(shí)修改導(dǎo)航方式,而無(wú)需修改任何源代碼。
[0009] 本發(fā)明提供的一種可配置的A+B模式的記錄導(dǎo)航方法,包括預(yù)先設(shè)置:
[0010] 針對(duì)第一數(shù)據(jù)庫(kù)記錄,設(shè)置第一層導(dǎo)航,導(dǎo)航的數(shù)據(jù)源可以指定為一個(gè)分類(lèi)樹(shù)、一 個(gè)字典,或所述第一數(shù)據(jù)庫(kù)記錄的一個(gè)字段。
[0011] 所述的分類(lèi)樹(shù),是指數(shù)據(jù)庫(kù)中的一張表中的所有記錄,該表最起碼要包含ID、 ParentID、Name這三個(gè)字段,或與這三個(gè)字段具有相同作用的字段,該表的記錄之間存在父 子關(guān)系,構(gòu)成一顆完整的樹(shù)。該表與所述第一數(shù)據(jù)庫(kù)記錄表存在著關(guān)聯(lián)。
[0012] 所述的字典,是指數(shù)據(jù)庫(kù)中的一張表中的所有記錄,該表最起碼要包含Name和 Code這兩個(gè)字段,或與這兩個(gè)字段具有相同作用的字段。在該表的所有記錄中,Code的值 必須是唯一的,Name和Code之間是 對(duì)應(yīng)的。該表與所述第一數(shù)據(jù)庫(kù)記錄表存在著關(guān) 聯(lián)。
[0013] 采用上述方法,還可以設(shè)置第二層導(dǎo)航、第三層導(dǎo)航,依次類(lèi)推。
[0014] 本發(fā)明提供的一種可配置的A+B模式的記錄導(dǎo)航方法,還包括在界面上生成導(dǎo)航 樹(shù)的方法:
[0015] 第一步,顯示第一層導(dǎo)航的一級(jí)節(jié)點(diǎn)。
[0016] 如果第一層導(dǎo)航的數(shù)據(jù)源指定為一個(gè)分類(lèi)樹(shù),則從該分類(lèi)樹(shù)中取出所有ParentID 是0的記錄,作為第一層導(dǎo)航的一級(jí)節(jié)點(diǎn),把記錄的Name作為導(dǎo)航節(jié)點(diǎn)的名稱(chēng),記錄的ID 保存到導(dǎo)航節(jié)點(diǎn)的Tag屬性。
[0017] 如果第一層導(dǎo)航的數(shù)據(jù)源指定為一個(gè)字典,則從該字典中取出所有的記錄,作為 第一層導(dǎo)航的一級(jí)節(jié)點(diǎn),把記錄的Name作為導(dǎo)航節(jié)點(diǎn)的名稱(chēng),記錄的Code保存到導(dǎo)航節(jié)點(diǎn) 的Tag屬性。
[0018] 如果第一層導(dǎo)航的數(shù)據(jù)源指定為第一數(shù)據(jù)庫(kù)記錄的某個(gè)字段,則從第一數(shù)據(jù)庫(kù)記 錄表中取出指定字段的所有值,并去重復(fù),把得到的結(jié)果集作為第一層導(dǎo)航的一級(jí)節(jié)點(diǎn),把 字段的值作為導(dǎo)航節(jié)點(diǎn)的名稱(chēng),同時(shí)也把記錄的值保存到導(dǎo)航節(jié)點(diǎn)的Tag屬性。
[0019] 第二步,當(dāng)用戶(hù)點(diǎn)擊第一層導(dǎo)航的某個(gè)一級(jí)節(jié)點(diǎn)時(shí),則把該節(jié)點(diǎn)作為激活節(jié)點(diǎn),并 顯示它的下級(jí)節(jié)點(diǎn)。
[0020] 如果第一層導(dǎo)航的數(shù)據(jù)源指定為一個(gè)分類(lèi)樹(shù),并且激活節(jié)點(diǎn)對(duì)應(yīng)的記錄不是分類(lèi) 樹(shù)的葉子記錄,則從該分類(lèi)樹(shù)中取出該記錄的子記錄,作為激活節(jié)點(diǎn)的下級(jí)節(jié)點(diǎn),把記錄的 Name字段作為導(dǎo)航節(jié)點(diǎn)的名稱(chēng)顯示,記錄的ID保存到導(dǎo)航節(jié)點(diǎn)的Tag屬性。
[0021] 如果第一層導(dǎo)航的數(shù)據(jù)源指定為一個(gè)分類(lèi)樹(shù),并且激活節(jié)點(diǎn)對(duì)應(yīng)的記錄是該分類(lèi) 樹(shù)的葉子記錄,則把第二層導(dǎo)航的一級(jí)節(jié)點(diǎn)作為激活節(jié)點(diǎn)的下級(jí)節(jié)點(diǎn)。
[0022] 如果第一層導(dǎo)航的數(shù)據(jù)源指定為一個(gè)字典,則取第二層導(dǎo)航的一級(jí)節(jié)點(diǎn)作為激活 節(jié)點(diǎn)的下級(jí)節(jié)點(diǎn)。
[0023] 如果第一層導(dǎo)航的數(shù)據(jù)源指定為第一數(shù)據(jù)庫(kù)記錄的某個(gè)字段,則取第二層導(dǎo)航的 一級(jí)節(jié)點(diǎn)作為激活節(jié)點(diǎn)的下級(jí)節(jié)點(diǎn)。
[0024] 獲取第二層導(dǎo)航的一級(jí)節(jié)點(diǎn)的方法如下:
[0025] 如果第二層導(dǎo)航的數(shù)據(jù)源指定為一個(gè)分類(lèi)樹(shù),則從該分類(lèi)樹(shù)中取出所有ParentID 是〇的記錄,作為第二層導(dǎo)航的一級(jí)節(jié)點(diǎn),把記錄的Name字段作為導(dǎo)航節(jié)點(diǎn)的名稱(chēng),把記錄 的ID保存到導(dǎo)航節(jié)點(diǎn)的Tag屬性。
[0026] 如果第二層導(dǎo)航的數(shù)據(jù)源指定為一個(gè)字典,有兩種方法生成其一級(jí)節(jié)點(diǎn)。第一種 方法,從該字典中取出所有的記錄,作為第二層導(dǎo)航的一級(jí)節(jié)點(diǎn),把記錄的Name作為導(dǎo)航 節(jié)點(diǎn)的名稱(chēng),把記錄的Code保存到導(dǎo)航節(jié)點(diǎn)的Tag屬性;第二種方法,從第一數(shù)據(jù)庫(kù)記錄表 中查找與第一層導(dǎo)航的激活節(jié)點(diǎn)相關(guān)聯(lián)的記錄,再?gòu)淖值浔碇胁檎遗c這些記錄相關(guān)聯(lián)的字 典記錄,作為第二層導(dǎo)航的一級(jí)節(jié)點(diǎn),把記錄的Name作為導(dǎo)航節(jié)點(diǎn)的名稱(chēng),把記錄的Code 保存到導(dǎo)航節(jié)點(diǎn)的Tag屬性。
[0027] 如果第二層導(dǎo)航的數(shù)據(jù)源指定為第一數(shù)據(jù)庫(kù)記錄的某個(gè)字段,有兩種方法生成其 一級(jí)節(jié)點(diǎn)。第一種方法,從第一數(shù)據(jù)庫(kù)記錄表中取出指定字段的所有值,并去重復(fù),把得到 的結(jié)果集作為第二層導(dǎo)航的一級(jí)節(jié)點(diǎn),把字段的值作為導(dǎo)航節(jié)點(diǎn)的名稱(chēng),同時(shí)把字段的值 保存到導(dǎo)航節(jié)點(diǎn)的Tag屬性;第二種方法,從第一數(shù)據(jù)庫(kù)記錄表中查找與第一層導(dǎo)航的激 活節(jié)點(diǎn)相關(guān)聯(lián)的記錄,從這些記錄中把指定字段的值提取出來(lái),并去重復(fù),把得到的結(jié)果集 作為第二層導(dǎo)航的一級(jí)節(jié)點(diǎn),把指定字段的值作為導(dǎo)航節(jié)點(diǎn)的名稱(chēng),同時(shí)把字段的值保存 到導(dǎo)航節(jié)點(diǎn)的Tag屬性。
[0028] 根據(jù)第二步類(lèi)推,點(diǎn)擊任何一層導(dǎo)航的任意一個(gè)節(jié)點(diǎn),都可以按照上述方法,顯 示其下一級(jí)節(jié)點(diǎn),直到再也找不到下一級(jí)節(jié)點(diǎn),也找不到下一層導(dǎo)航。
[0029] 本發(fā)明提供的一種可配置的A+B模式的記錄導(dǎo)航方法,還包括在用戶(hù)點(diǎn)擊導(dǎo)航樹(shù) 的任意一個(gè)節(jié)點(diǎn)的時(shí)候,觸發(fā)一個(gè)導(dǎo)航事件,該事件的參數(shù)包括:從第一層導(dǎo)航開(kāi)始,一直 到當(dāng)前激活節(jié)點(diǎn)所在的導(dǎo)航層,每一層導(dǎo)航的ID和激活節(jié)點(diǎn)的Tag屬性。
【附圖說(shuō)明】:
[0030] 圖1導(dǎo)航模擬界面,展開(kāi)第一層導(dǎo)航的一級(jí)節(jié)點(diǎn)
[0031] 圖2導(dǎo)航模擬界面,展開(kāi)第一層導(dǎo)航的二級(jí)節(jié)點(diǎn)
[0032] 圖3導(dǎo)航模擬界面,展開(kāi)第二層導(dǎo)航的一級(jí)節(jié)點(diǎn)
[0033] 圖4導(dǎo)航模擬界面,展開(kāi)第三層導(dǎo)航的一級(jí)節(jié)點(diǎn)
[0034] 圖5導(dǎo)航模擬界面,展開(kāi)第二層導(dǎo)航的一級(jí)節(jié)點(diǎn)(只保留與上級(jí)節(jié)點(diǎn)關(guān)聯(lián)的記錄)
[0035] 圖6導(dǎo)航模擬界面,展開(kāi)第三層導(dǎo)航的一級(jí)節(jié)點(diǎn)(只保留與上級(jí)節(jié)點(diǎn)關(guān)聯(lián)的記錄)
【具體實(shí)施方式】
[0036] 下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完 整的描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明的一部分實(shí)施例,而不是全部的實(shí)施例?;?于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其 他實(shí)施例,都屬于本發(fā)明的保護(hù)范圍。
[0037] 本實(shí)施例以開(kāi)發(fā)一個(gè)簡(jiǎn)單的設(shè)備管理軟件為例,來(lái)說(shuō)明如何實(shí)現(xiàn)本發(fā)明提出的技 術(shù)方案。本實(shí)施例采用Visual Studio作為開(kāi)發(fā)工具,采用C#語(yǔ)言開(kāi)發(fā),后臺(tái)采用關(guān)系數(shù) 據(jù)庫(kù)。也可以采用其他的開(kāi)發(fā)工具、開(kāi)發(fā)語(yǔ)言和其他類(lèi)型的數(shù)據(jù)庫(kù)。
[0038] 如下面表1、表2、表3所示,是設(shè)備管理軟件的數(shù)據(jù)庫(kù)設(shè)計(jì)。它包括設(shè)備表、組織 機(jī)構(gòu)表、設(shè)備類(lèi)型表,設(shè)備表中的DepartmentID用來(lái)與組織機(jī)構(gòu)表關(guān)聯(lián)、設(shè)備表中的Code 用來(lái)與設(shè)備類(lèi)型表關(guān)聯(lián)。其中,設(shè)備表可以看成是本發(fā)明中所述的數(shù)據(jù)庫(kù)記錄表,組織機(jī)構(gòu) 表可以看成是本發(fā)明中所述的分類(lèi)樹(shù),設(shè)備類(lèi)型表可以看成是本發(fā)明中所述的字典。
[0039] 表 1 :設(shè)備表(equipment)

[0046] 根據(jù)上述的數(shù)據(jù)庫(kù)設(shè)計(jì),一共設(shè)計(jì)了三層導(dǎo)航:第一層導(dǎo)航的數(shù)據(jù)源是組織機(jī)構(gòu) (分類(lèi)樹(shù))、第二層導(dǎo)航的數(shù)據(jù)源是設(shè)備類(lèi)型(字典)、第三層導(dǎo)航的數(shù)據(jù)源是設(shè)備表的 User字段。
[0047] 請(qǐng)參閱圖1,設(shè)備管理軟件的模擬界面1。首先顯示第一層導(dǎo)航的一級(jí)節(jié)點(diǎn),作為 導(dǎo)航樹(shù)的根節(jié)點(diǎn)。第一層導(dǎo)航的數(shù)據(jù)源指定的是組織機(jī)構(gòu)(分類(lèi)樹(shù)),因此從組織機(jī)構(gòu)中讀 取ParentID是0的記錄("XX公司"),顯示為導(dǎo)航樹(shù)的根節(jié)點(diǎn),并且把記錄的ID保
當(dāng)前第1頁(yè)1 2 
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1