溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

報表工具之?dāng)?shù)據(jù)校驗竟可以如此簡單

發(fā)布時間:2020-08-04 16:22:25 來源:ITPUB博客 閱讀:161 作者:rqgxy 欄目:編程語言

在報表開發(fā)過程中,為了保證信息準(zhǔn)確無誤入庫, 我們經(jīng)常會被要求對報表增加校驗以保證數(shù)據(jù)類型和格式的正確。比如:工資金額最多只允許包含兩位小數(shù)、郵政編碼必須是全數(shù)字組成的 6 位數(shù)且首位數(shù)字不能是 0 等等。面對多種多樣、層出不窮的校驗需求,如果都寫 js 來實現(xiàn)的話,那工作量真是…(你懂得),那么有沒有一款報表神器,能輕松搞定這些校驗?zāi)兀?

呵呵呵…

下面我就給大家推薦一下解救我的神器— 潤乾報表 ,此神器提供了強有力的校驗方法,例如通過設(shè)置單元格的數(shù)據(jù)類型、在填報單元格校驗或格間校驗里寫校驗公式、自定義有效性驗證腳本,等等。利用好這些手段,就能擺脫大量寫 js 的命運。

下面我們就 分類 說明一下,潤乾報表是怎么實現(xiàn)各種校驗的。

數(shù)據(jù)類型校驗 – 栗子 1:

要求:

工資錄入的數(shù)據(jù)必須是數(shù)值。

設(shè)置如下:

選中工資所在單元格 H3,右側(cè)屬性 -- 表達(dá)式 -- 數(shù)據(jù)類型 ,選擇數(shù)值型即可。

報表工具之?dāng)?shù)據(jù)校驗竟可以如此簡單

效果:

當(dāng)工資輸入非數(shù)值時,單元格失去焦點后,便會彈出提示“請輸入數(shù)值!”,如下圖

報表工具之?dāng)?shù)據(jù)校驗竟可以如此簡單

單元格類型校驗 - 栗子 2:

這個栗子我們從多個較多進行分析講解:

角度 1:

要求在原來數(shù)據(jù)類型的基礎(chǔ)上,限定工資最多可錄入兩位小數(shù)。

設(shè)置如下:

菜單欄 中選擇 填報 – 單元格校驗 ,新增單元格校驗表達(dá)式,其中,

表達(dá)式為:(/^\d{0,8}\.{0,1}(\d{1,2})?$/).test(H3)

意為:H3 單元格內(nèi)容必須包含 0 ~ 8 位整數(shù),可帶 0 ~ 1 個小數(shù)點和 1 ~ 2 位小數(shù)

出錯提示為:工資金額,最多兩位小數(shù) 如下圖

報表工具之?dāng)?shù)據(jù)校驗竟可以如此簡單

效果:

當(dāng)輸入工資金額小數(shù)多于兩位時,單元格失焦后,便會彈出預(yù)先指定提示信息,如下圖:

報表工具之?dāng)?shù)據(jù)校驗竟可以如此簡單

角度 2:

要求郵政編碼必須輸入 6 個數(shù)字組成的數(shù)值串且首位數(shù)值不能為 0 。

設(shè)置如下:

菜單欄 中選擇 填報 – 單元格校驗 ,新增單元格校驗表達(dá)式,其中

表達(dá)式為:D5.toString().match(/^[1-9]\d{5}$/

意為:D5 單元格的字符串,首位必須是 1-9 之間的數(shù)字,其 5 位后隨意取 5 位數(shù)字。

出錯提示為:郵政編碼必須是首位不為 0 且長度需為 6 位的純數(shù)字 如下圖

報表工具之?dāng)?shù)據(jù)校驗竟可以如此簡單

效果:

當(dāng)輸入郵政編碼輸入數(shù)值串為數(shù)超出 6 位且首位數(shù)字為 0 時,單元格失焦后,便會彈出預(yù)先指定提示信息,如下圖:

報表工具之?dāng)?shù)據(jù)校驗竟可以如此簡單

角度 3:

要求員工表中姓名列必須填寫,不能為空。

設(shè)置如下:

菜單欄 中選擇 填報 – 單元格校驗 ,新增單元格校驗表達(dá)式,其中

表達(dá)式為:C3!=null&&C3!=""

出錯提示為:姓名不能為空! 如下圖

報表工具之?dāng)?shù)據(jù)校驗竟可以如此簡單

效果:

當(dāng)管理員錄入員工信息忘記輸入姓名時,單元格失焦后,便會彈出預(yù)先指定提示信息,如下圖:

報表工具之?dāng)?shù)據(jù)校驗竟可以如此簡單

有效性校驗?zāi)_本 – 栗子 3:

要求:

篩選面板中選擇的截止日期不能早于起始日期,否則給出提示且不能進行查詢。

設(shè)置如下:

篩選面板 菜單欄 報表 報表屬性 其他選項卡, 有效性校驗?zāi)_本 中寫入方法,如下圖:

報表工具之?dāng)?shù)據(jù)校驗竟可以如此簡單

其中,startDate 為起始日期的 web 變量名,endDate 為截止日期的 web 變量名。

方法為:

if (getParamValue(“startDate”) > getParamValue(“endDate”)){

alert(“起始日期不能大于截止束日期!”);

return false;

}

return true;

效果:

當(dāng)篩選面板中選擇的起始時間早于截止時間時,點擊查詢便會彈出提示,提醒用戶修改。如下圖

報表工具之?dāng)?shù)據(jù)校驗竟可以如此簡單

格間校驗 - 栗子 4:

要求:

報表組中的關(guān)聯(lián)項需要保持一致,或者計算后結(jié)果保持一致。例如:報表組中包含訂單表和訂單明細(xì)表,那么訂單明細(xì)表中所有產(chǎn)品的訂單金額總和就必須跟訂單表中的訂單金額保持一致,否則,給出錯誤提示不允許數(shù)據(jù)入庫。

設(shè)置如下:

報表組中 菜單欄 填報 格間校驗 ,新增格間校驗表達(dá)式,其中

表達(dá)式為:訂單!H6== 訂單明細(xì)!G5

出錯提示為:訂單明細(xì)中總金額和訂單中金額不一致!

注:表達(dá)式中“訂單”和“訂單明細(xì)”分別代表報表組中訂單表和訂單明細(xì)表的 sheet 頁名稱,見下圖標(biāo)注,H6 和 G5 分別對應(yīng)訂單表和訂單明細(xì)表中的單元格,感嘆號為連接符

報表工具之?dāng)?shù)據(jù)校驗竟可以如此簡單

效果:

訂單明細(xì)中,所有產(chǎn)品金額總和為 1810,如下圖:

報表工具之?dāng)?shù)據(jù)校驗竟可以如此簡單

那么如果在訂單明細(xì)中輸入其他值,在提交保存時,就會給出錯誤提示。如下圖:

報表工具之?dāng)?shù)據(jù)校驗竟可以如此簡單


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI