您好,登錄后才能下訂單哦!
這篇文章的內(nèi)容主要圍繞大數(shù)據(jù)中如何巧用標(biāo)志字段實(shí)現(xiàn)填報(bào)數(shù)據(jù)的暫存與鎖定進(jìn)行講述,文章內(nèi)容清晰易懂,條理清晰,非常適合新手學(xué)習(xí),值得大家去閱讀。感興趣的朋友可以跟隨小編一起閱讀吧。希望大家通過這篇文章有所收獲!
在用戶錄入完數(shù)據(jù)后,如果能確保數(shù)據(jù)正確,可以在頁面端點(diǎn)擊鎖定按鈕,從而將數(shù)據(jù)鎖定,以便防止誤操作對(duì)數(shù)據(jù)產(chǎn)生影響,并且限定鎖定狀態(tài)的數(shù)據(jù)才是有效數(shù)據(jù),在查詢統(tǒng)計(jì)時(shí)只需要統(tǒng)計(jì)有效數(shù)據(jù)。
針對(duì)這個(gè)需求,我們可以在數(shù)據(jù)表中增加一個(gè)標(biāo)志字段,通過該標(biāo)志字段的狀態(tài)來確定數(shù)據(jù)是否處于“鎖定”狀態(tài)。
下面是具體的實(shí)現(xiàn)步驟:
一:在數(shù)據(jù)表中增加字段:flag
FLAG 字段為 0 時(shí)表示數(shù)據(jù)為暫存數(shù)據(jù),為 1 是表示是鎖定數(shù)據(jù)
二:根據(jù)需求制作訂單明細(xì)表,表樣如下圖:
A3 單元格類型為維度格,表達(dá)式為 =dd.(DDID), 字段名稱設(shè)置為:dd.DDID
B3~E3 單元格類型為數(shù)值格,字段名稱分別設(shè)置數(shù)據(jù)表中對(duì)應(yīng)的名稱。
數(shù)據(jù)處理中使用多源 SQL,數(shù)據(jù)來源為:
接下來就看一下如何通過增加標(biāo)志位字段進(jìn)行數(shù)據(jù)控制。
在報(bào)表后追加一數(shù)據(jù)列(F 列),將 F3 單元格設(shè)置成數(shù)值格,并在字段名稱屬性處設(shè)置“FLAG”,這樣就能在 F3 單元格取出狀態(tài)位,其余單元格可根據(jù) F3 的值進(jìn)行是否可寫控制,值為 1 時(shí)為鎖定狀態(tài)。
在 B3~E3 單元格的是否可編輯表達(dá)式中寫入表達(dá)式:F3!=“1”, 這樣當(dāng) F3 單元格的值不為 1(非狀態(tài)鎖定)時(shí),這些單元格可編輯。
現(xiàn)在報(bào)表展現(xiàn)時(shí)就能夠根據(jù)狀態(tài)位的值來控制數(shù)據(jù)是否可被修改了。接下來再看一下,如何控制狀態(tài)位的標(biāo)志值。
用戶操作時(shí)是在頁面端點(diǎn)擊鎖定按鈕,所以可以在點(diǎn)擊該按鈕時(shí)先更改報(bào)表中的狀態(tài)位,然后再執(zhí)行數(shù)據(jù)保存操作,而更改狀態(tài)位的值可以通過 javascript 腳本更改報(bào)表單元格 (F2) 的值來實(shí)現(xiàn)。
接下來看下 F2 單元格設(shè)置,如圖:
F2 單元格既要接受 js 控制,又要將值回寫到數(shù)據(jù)庫表中。在通過多源 SQL 回寫數(shù)據(jù)時(shí),需要設(shè)置表達(dá)式,這里將 F2 單元格類型設(shè)置成數(shù)值型,字段名稱中寫入:a.TYPE,表示 F2 單元格放入對(duì)象 a 中,名字為 TYPE,并且該單元格要讀取數(shù)據(jù)表中的初始值,所以單元格中寫入 =F3。然后在數(shù)據(jù)處理的數(shù)據(jù)去向中設(shè)置如下:
也就是說,保存時(shí)會(huì)將 a.TYPE 的值保存到 FLAG 字段中。這里對(duì)通過 string() 函數(shù)把 a.TYPE 轉(zhuǎn)換成字符串,這樣就可以將 F2 單元格的值保存到數(shù)據(jù)庫表的對(duì)應(yīng)狀態(tài)位中。F 列為控制狀態(tài)列,設(shè)置完成后將列寬設(shè)成 0 即可。
接下來看一下如何動(dòng)態(tài)更改 F2 的值。
1、 在填報(bào)表工具條中增加鎖定按鈕。
填報(bào)表工具條是在 showInput.jsp 中引入的:inputtoolbar.jsp,用文本編輯器打開,在里邊增加一個(gè)按鈕:
<a %>');return false;" href="#">鎖定</a></li>
注:按鈕樣式可自行設(shè)置,此處用簡單的文本。
2、 在 showInput.jsp 中增加 js 函數(shù)
function save(arg1){
document.getElementById(arg1+“0_F”+2).setAttribute(“value”,“1”);
_inputSubmit(arg1);// 保存報(bào)表
}
該 js 函數(shù)控制,如果頁面端點(diǎn)擊鎖定按鈕后,將 F2 單元格的值設(shè)成 1,然后再執(zhí)行保存報(bào)表操作,從而能夠?qū)?biāo)志位保存到數(shù)據(jù)庫中。
頁面如下:
再將 F 列隱藏掉即可(列寬設(shè)成 0)
這樣,我們就實(shí)現(xiàn)了點(diǎn)擊“鎖定”按鈕將數(shù)據(jù)鎖定以防在頁面端再次修改。
如需要在查詢統(tǒng)計(jì)時(shí)只針對(duì)鎖定的有效數(shù)據(jù),那么只需要在 where 條件中增加 FLAG=’1’就行了。
感謝你的閱讀,相信你對(duì)“大數(shù)據(jù)中如何巧用標(biāo)志字段實(shí)現(xiàn)填報(bào)數(shù)據(jù)的暫存與鎖定”這一問題有一定的了解,快去動(dòng)手實(shí)踐吧,如果想了解更多相關(guān)知識(shí)點(diǎn),可以關(guān)注億速云網(wǎng)站!小編會(huì)繼續(xù)為大家?guī)砀玫奈恼拢?/p>
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。