>[0055].非空-如果字段值為空(null),則該字段被認(rèn)定為無(wú)效字段(提供為需要的配置輸入)。
[0056].模式-驗(yàn)證字符串字段為指定模式(提供為配置輸入)。
[0057].有效值-驗(yàn)證該字段僅包含用戶指定的有效值(提供為配置輸入)。
[0058].有效類型-驗(yàn)證字段數(shù)據(jù)的類型是有效類型(無(wú)需配置輸入)。
[0059]值得注意的是,上述驗(yàn)證規(guī)則列表未必全面。
[0060]1.2驗(yàn)證規(guī)則驗(yàn)證
[0061]在一些示例中,Π模塊106通過(guò)用戶界面112向用戶110提供反饋,顯示處理模塊108將用戶指定的驗(yàn)證規(guī)則234應(yīng)用到至少一些數(shù)據(jù)集元素的結(jié)果。
[0062]圖2中的用戶界面112配置為針對(duì)數(shù)據(jù)集的給定元素244顯示字段218的值242。用戶可指定(和/或修改)驗(yàn)證規(guī)則234及其相關(guān)聯(lián)的參數(shù)236,處理模塊108自動(dòng)將指定的驗(yàn)證規(guī)則234應(yīng)用到給定數(shù)據(jù)集元素244的字段218的值242,并將驗(yàn)證規(guī)則234應(yīng)用到UI模塊106的結(jié)果提供給UI模塊106,接著UI模塊106通過(guò)用戶界面112將這些結(jié)果反饋給用戶110。通常,驗(yàn)證規(guī)則的應(yīng)用結(jié)果包括通過(guò)/未通過(guò)。通過(guò)或未通過(guò)的結(jié)果可通過(guò)比如用某種顏色、圖案或底紋填充適當(dāng)單元格指示給用戶110。圖2中,與字段I和驗(yàn)證規(guī)則I相關(guān)聯(lián)的單元格包括灰色底紋238,其表示字段I的值未通過(guò)驗(yàn)證規(guī)則I。在其他示例中,通過(guò)在適當(dāng)?shù)膯卧裰邪蚺懦甘痉麍D標(biāo),可將通過(guò)或未通過(guò)的結(jié)果指示給用戶110。例如,可采用單元格中包括紅色感嘆號(hào)圖標(biāo)的方式來(lái)表示未通過(guò)的結(jié)果,單元格中沒(méi)有紅色感嘆號(hào)圖標(biāo)則表示通過(guò)的結(jié)果。在一些示例中,可采用單元格中包括諸如綠色圓圈等圖標(biāo)的方式來(lái)表示通過(guò)的結(jié)果。
[0063]指定驗(yàn)證規(guī)則234時(shí),用戶110通過(guò)導(dǎo)航數(shù)據(jù)集來(lái)評(píng)估該驗(yàn)證規(guī)則對(duì)于該數(shù)據(jù)集不同元素的影響,這一方法是非常有用的。這樣,用戶界面112包括控件246,用戶通過(guò)該控件能選定數(shù)據(jù)集的不同元素(在該示例中,是通過(guò)輸入序列號(hào)的方式來(lái)選定的)。當(dāng)用戶從一個(gè)元素導(dǎo)航到下一個(gè)元素,處理模塊108自動(dòng)將驗(yàn)證規(guī)則234應(yīng)用到當(dāng)前選定的元素。
[0064]在一些示例中,用戶界面112包括一運(yùn)行控件248,通過(guò)該運(yùn)行控件248,可允許處理模塊108將指定的驗(yàn)證規(guī)則234應(yīng)用到該數(shù)據(jù)集的所有元素。將驗(yàn)證規(guī)則234應(yīng)用到該數(shù)據(jù)集之后,處理模塊108會(huì)把將驗(yàn)證規(guī)則234應(yīng)用到該數(shù)據(jù)集的結(jié)果提供給Π模塊106,接著該Π模塊106通過(guò)用戶界面112將這些結(jié)果顯示給用戶110。在一些示例中,與已經(jīng)應(yīng)用的驗(yàn)證規(guī)則234相關(guān)聯(lián)的每一單元格224包括一失敗結(jié)果計(jì)數(shù)指示符240。該失敗結(jié)果計(jì)數(shù)指示符240可顯示未通過(guò)由單元格224指定的驗(yàn)證規(guī)則234的數(shù)據(jù)元素的數(shù)目。
[0065]I.3混合列和自定義驗(yàn)證規(guī)則
[0066]如上所述,用戶110希望的是這么一種驗(yàn)證規(guī)則,其功能未包括在任何預(yù)定義的驗(yàn)證規(guī)則中。在一些示例中,用戶界面112包括將驗(yàn)證規(guī)則的一個(gè)或多個(gè)混合列插入到二維網(wǎng)格225中的選項(xiàng)。通過(guò)驗(yàn)證規(guī)則的混合列,用戶110可為該列中所包括的每一單元格(與給定字段218相關(guān)聯(lián))指定不同的驗(yàn)證規(guī)則。例如,驗(yàn)證規(guī)則的混合列的一個(gè)單元格包括的是“有效值”測(cè)試,而驗(yàn)證規(guī)則的混合列的另一個(gè)單元格包括的是“最大值”測(cè)試。通常,用戶110通過(guò)先輸入測(cè)試名稱然后再輸入測(cè)試規(guī)則參數(shù)(如果該測(cè)試接受規(guī)則參數(shù))而為驗(yàn)證規(guī)則的混合列的給定單元格指定驗(yàn)證規(guī)則。通常,任何可添加到二維網(wǎng)格225作為列的驗(yàn)證規(guī)則可以輸入到驗(yàn)證規(guī)則的混合列的一個(gè)單元格中。關(guān)于驗(yàn)證規(guī)則的混合列的單元格內(nèi)容的一些示例有“不能為空”、“最大值(99)”和“有效值(VM,F(xiàn))”。
[0067]驗(yàn)證規(guī)則的混合列的一大優(yōu)勢(shì)在于用戶界面112的可用性通過(guò)更有效地表征屏幕上很少使用的測(cè)試而得以改進(jìn)了。特別是,用戶110不必將二維網(wǎng)格225的整個(gè)列232專用于只適用于單一字段208的驗(yàn)證規(guī)則。例如,驗(yàn)證規(guī)則的混合列可避免這樣一種情況,即:一項(xiàng)“有效的電子郵件”測(cè)試只適用于單一字段208(例如,‘email_addr(電子郵件_地址)’字段)卻占用了二維網(wǎng)格225的整個(gè)列232,從而浪費(fèi)了寶貴的屏幕空間。
[0068]在其他示例中,用戶110可采用新的、可重復(fù)使用的或自定義的驗(yàn)證規(guī)則234來(lái)擴(kuò)大預(yù)定義的驗(yàn)證規(guī)則列表。用戶界面112為用戶110提供一模板以定義新的驗(yàn)證規(guī)則234的功能。用戶110可采用(例如)一種編程語(yǔ)言或表達(dá)式語(yǔ)言(例如用結(jié)構(gòu)化注釋來(lái)裝飾的DML代碼)在該模板范圍內(nèi)定義期望的自定義功能。保存新的驗(yàn)證規(guī)則234后,該新的驗(yàn)證規(guī)則234就被加入到預(yù)定義的驗(yàn)證規(guī)則列表里了。隨后,用戶110就可采用該新的自定義驗(yàn)證規(guī)則234 了,例如,將該驗(yàn)證規(guī)則從驗(yàn)證規(guī)則列表拖入到二維網(wǎng)格225中,或者雙擊該驗(yàn)證規(guī)則。和預(yù)定義的驗(yàn)證規(guī)則的情況一樣,將該新的驗(yàn)證規(guī)則拖入到二維網(wǎng)格225中或者雙擊該新的驗(yàn)證規(guī)則會(huì)將新的列232添加到二維網(wǎng)格225中,該新的列232與該新的驗(yàn)證規(guī)則相關(guān)聯(lián)。
[0069]不管是預(yù)定義的驗(yàn)證規(guī)則還是自定義的驗(yàn)證規(guī)則,都具有指示是否應(yīng)將該規(guī)則應(yīng)用于空值(null)或空白值(blank)的屬性。如果該驗(yàn)證規(guī)則指出不應(yīng)將其應(yīng)用于空值,則首先需要檢測(cè)該值是否為空,如果為空則不要應(yīng)用該驗(yàn)證規(guī)則,如果不為空則應(yīng)用該驗(yàn)證規(guī)則。如果該驗(yàn)證規(guī)則指出不應(yīng)將其應(yīng)用于空白值,則首先需要檢測(cè)該值是否為空白,只有當(dāng)該值不為空白方才應(yīng)用該驗(yàn)證規(guī)則。
[0070]不管是預(yù)定義的驗(yàn)證規(guī)則還是自定義的驗(yàn)證規(guī)則,都具有邏輯指示屬性,該邏輯指示屬性可用于判定輸入到單元格224中的規(guī)則參數(shù)236的集合對(duì)于該驗(yàn)證規(guī)則是否有效。例如,用戶界面112利用該邏輯來(lái)判定輸入到單元格224中的規(guī)則參數(shù)236的每一集合的正確性,如果判定該規(guī)則參數(shù)不正確(例如,由語(yǔ)法錯(cuò)誤所導(dǎo)致),則在該單元格中顯示一指示符(例如,一個(gè)紅色停止標(biāo)志),并且顯示一條由該邏輯所確定的錯(cuò)誤消息(例如,錯(cuò)誤列表或懸停在該單元格的懸停提示)。檢查規(guī)則參數(shù)正確性的另一示例是語(yǔ)義檢查,例如檢查一指定的查找文件標(biāo)識(shí)符是否實(shí)際上已為處理模塊108所知。
[0071]1.4預(yù)處理列或后處理列
[0072]在一些示例中,用戶界面112可包括一預(yù)處理列,該預(yù)處理列用于對(duì)字段值進(jìn)行初步處理,或者指定由其他列的驗(yàn)證規(guī)則對(duì)特定值進(jìn)行不同的處理。用戶界面112還可包括一后處理列,該后處理列用于應(yīng)用任何動(dòng)作以響應(yīng)由驗(yàn)證規(guī)則所執(zhí)行的測(cè)試的結(jié)果。例如,用戶110通過(guò)預(yù)處理列可指定待從驗(yàn)證中排除的值以及一個(gè)或多個(gè)字段218的驗(yàn)證數(shù)據(jù)類型。例如,用戶110通過(guò)后處理列可指定替換值來(lái)替換一個(gè)元素的現(xiàn)有值(例如,用適當(dāng)?shù)奶鎿Q值來(lái)替換不同類型的無(wú)效值)。
[0073]通常,替換值被輸入到該后處理列的一個(gè)單元格中,且該替換值與一給定字段218相關(guān)聯(lián)。當(dāng)未通過(guò)與給定字段218相關(guān)聯(lián)的一種或多種驗(yàn)證規(guī)則236,則用該替換值替換掉該給定字段218的值242。例如,如果‘Start_date (開(kāi)始_日期)’字段與兩種驗(yàn)證規(guī)則相關(guān)聯(lián),即:最小值(1900-01-01)和最大值(2011-12-31),替換值的一個(gè)示例是1970-01-01。這樣,如果一條給定記錄‘start_date (開(kāi)始_日期)’字段的值低于最小值(即,在1900-01-01之前)或高于最大值(即,在2011-12-31之后),則用替換值(1970-01-01)將該值替換掉。還可在后處理列中指定其他類型的替換值(比如,字符串、日期/時(shí)間等)。
[0074]如上所述,用戶110還可指定一個(gè)或多個(gè)值,所述一個(gè)或多個(gè)值從排除值類型預(yù)處理列中的驗(yàn)證中排除。例如,‘end_date (結(jié)束_日期)’字段的有效數(shù)據(jù)通常僅包括日期信息(例如,1900-01-01)。然而,在一些應(yīng)用程序中,可能較為理想的是,指定另一值(如“ACTIVE (有效)”)對(duì)于‘end_date (結(jié)束_日期)’字段而言也是有效數(shù)據(jù)。這可以通過(guò)將字符串“ACTIVE (有效)”輸入到該排除值類型預(yù)處理列中而得以實(shí)現(xiàn),表示該值“ACTIVE (有效)”對(duì)于‘Start_date (開(kāi)始_日期)’字段而言始終是允許值,并且該驗(yàn)證規(guī)則不需應(yīng)用于該指定的排除值。
[0075]預(yù)處理列還可包括針對(duì)一個(gè)或多個(gè)字段218指定其驗(yàn)證數(shù)據(jù)類型的驗(yàn)證類型列。在一些示例中,用戶110可輸入用于驗(yàn)證字段的DML類型聲明。例如,如果字段218包括表示日期的字符串值,用戶110可輸入日期(‘YYYY-MM-DD’),指定該字符串值實(shí)際上表示的是日期數(shù)據(jù)類型,故而應(yīng)以此方式來(lái)驗(yàn)證。同理,為了驗(yàn)證字符串為小數(shù),用戶110需輸入小數(shù)(
[0076]1.5用戶界面示例
[0077]參見(jiàn)圖3,屏幕截圖闡明的是圖2中用戶界面112的一種實(shí)施方式。用戶界面112配置為允許用戶I1在接收驗(yàn)證規(guī)則反饋時(shí)針對(duì)數(shù)據(jù)集指定驗(yàn)證規(guī)則234。
[0078]如上所