蔣步星:“填”?“報(bào)”?
“填”并不重要
填報(bào)功能是國(guó)內(nèi)報(bào)表工具的一個(gè)重要特色。國(guó)外的報(bào)表工具的英文名稱是report,完全沒(méi)有填的意思,而且報(bào)表被歸為BI類產(chǎn)品,講究的是事后分析,也不會(huì)管數(shù)據(jù)的錄入。但在國(guó)內(nèi),報(bào)表則天然被認(rèn)為有填寫(xiě)的功能,即使有強(qiáng)烈BI色彩的報(bào)表平臺(tái),也需要支持填報(bào)功能也方便補(bǔ)錄數(shù)據(jù)。
考察報(bào)表工具的填報(bào)功能時(shí),用戶常常會(huì)注重“填”,也就是看產(chǎn)品提供了多少種編輯組件,這其實(shí)是個(gè)誤區(qū)。
把表格作為一個(gè)整體來(lái)輸入數(shù)據(jù)時(shí),并不需要太多的編輯風(fēng)格,大家可以看看Excel提供了多少種、有多少人叫嚷過(guò)不夠用?如果希望把填寫(xiě)功能用于任何輸入界面時(shí),那確實(shí)需要豐富的編輯風(fēng)格,但這種場(chǎng)景同時(shí)還要求填寫(xiě)組件開(kāi)放足夠的事件方法以便進(jìn)一步細(xì)致控制,而這對(duì)于一次要處理N多單元格的報(bào)表來(lái)說(shuō)就太麻煩了,以致于用戶也懶得學(xué)。填報(bào)表并不適合用于所有界面輸入的場(chǎng)景。
入庫(kù)是關(guān)鍵
填報(bào)功能需要重點(diǎn)考慮的應(yīng)當(dāng)是“報(bào)”,更明確地說(shuō),是解決單元格值與數(shù)據(jù)存儲(chǔ)之間的映射。
顯然,數(shù)據(jù)填寫(xiě)上來(lái)本身并不是目的,用戶還要對(duì)這些數(shù)據(jù)進(jìn)行計(jì)算分析,那么表格內(nèi)數(shù)據(jù)就必須進(jìn)入一個(gè)開(kāi)放的可計(jì)算的存儲(chǔ)體系中。最常見(jiàn)的情況就是數(shù)據(jù)庫(kù)了,所以也可以把這個(gè)動(dòng)作稱為“入庫(kù)”,具體來(lái)講就是要拆分出單元格值寫(xiě)入合適的數(shù)據(jù)庫(kù)表中。有些填報(bào)方案只管填寫(xiě)上傳而不管入庫(kù),填出的表格是一團(tuán)不可拆分的東西,這就把用戶帶進(jìn)了坑,數(shù)據(jù)不可利用,還要投入大量成本再雇傭程序員進(jìn)行解析入庫(kù),有時(shí)因格式不公開(kāi)還只能繼續(xù)找該廠商人員。這是考察填報(bào)功能時(shí)特別要注意的問(wèn)題。
那么,填報(bào)方案設(shè)計(jì)了入庫(kù)功能是否就可以了?那還不夠,對(duì)于單元格值與數(shù)據(jù)存儲(chǔ)的映射,還需要考察如下三個(gè)方面的能力:
有來(lái)有去:入庫(kù)是指填寫(xiě)的數(shù)據(jù)有去向,而填報(bào)表中的數(shù)據(jù)在填寫(xiě)前常常并不是空格子,它首先還要有個(gè)來(lái)源,填寫(xiě)過(guò)程中改寫(xiě)后再入庫(kù);
來(lái)去無(wú)關(guān):來(lái)源和去向不一定是相同,有可能從某些數(shù)據(jù)匯總出來(lái)的中間結(jié)果,補(bǔ)錄或修改數(shù)據(jù)后再寫(xiě)入另一個(gè)地方,這普遍發(fā)生在多級(jí)上報(bào)的場(chǎng)景中;
一來(lái)多去:來(lái)源當(dāng)然只能是一個(gè),但同一套數(shù)據(jù)卻可能需要寫(xiě)入多個(gè)目標(biāo)存儲(chǔ)體系中(不同的數(shù)據(jù)庫(kù)表中);
一般來(lái)說(shuō),這三方面都考慮到了,且使用較為便捷的填報(bào)方案就是不錯(cuò)的了。
技術(shù)型?業(yè)務(wù)型?
話還沒(méi)說(shuō)完。
我們知道,關(guān)系數(shù)據(jù)庫(kù)的表結(jié)構(gòu)需要專業(yè)技術(shù)人員來(lái)設(shè)計(jì),如果使用數(shù)據(jù)庫(kù)作為填報(bào)表的數(shù)據(jù)存儲(chǔ)體系,那么也需要程序人員來(lái)設(shè)計(jì)表格與數(shù)據(jù)庫(kù)的映射。換句話說(shuō),填報(bào)表必須用技術(shù)人員制作,可以說(shuō)成是“技術(shù)型填報(bào)”。這也是當(dāng)前業(yè)界中可用的填報(bào)工具的主要形式。
但現(xiàn)實(shí)并不是這么簡(jiǎn)單。
補(bǔ)錄數(shù)據(jù)常常是業(yè)務(wù)部門(mén)發(fā)起的,如果每件事都找技術(shù)人員協(xié)助,效率必然很低。而且,有時(shí)候出于安全要求,業(yè)務(wù)部門(mén)不想讓其它人員看到填寫(xiě)的數(shù)據(jù)甚至表格。用戶希望開(kāi)發(fā)人員一次性做好應(yīng)用系統(tǒng)后就不需要再參與運(yùn)行過(guò)程了。
這需要填報(bào)工具提供“業(yè)務(wù)型填報(bào)”能力,也就是讓業(yè)務(wù)人員能夠自己繪制填報(bào)表。畫(huà)表本身是不難的,有Excel使用基礎(chǔ)的人都能做到,但業(yè)務(wù)人員不會(huì)設(shè)計(jì)數(shù)據(jù)庫(kù)表結(jié)構(gòu),更不會(huì)在庫(kù)中創(chuàng)建和維護(hù)數(shù)據(jù)表。
這時(shí)候就不能采用關(guān)系數(shù)據(jù)庫(kù)作為存儲(chǔ)體系了。填報(bào)工具需要有兩方面的能力:一方面能根據(jù)用戶畫(huà)的表格自動(dòng)識(shí)別出合理的數(shù)據(jù)結(jié)構(gòu),這樣就可以把數(shù)據(jù)結(jié)構(gòu)化后寫(xiě)入某種格式的文件中;另一方面要提供針對(duì)結(jié)構(gòu)化文件的計(jì)算處理能力,相當(dāng)于取代數(shù)據(jù)庫(kù)來(lái)實(shí)現(xiàn)后續(xù)計(jì)算,仍然是一種開(kāi)放的可計(jì)算的存儲(chǔ)體系,但并不一定是數(shù)據(jù)庫(kù)。這樣,開(kāi)發(fā)人員只要一次性地把用戶角色、上報(bào)控制及統(tǒng)計(jì)范圍等在應(yīng)用中做好,以后再新增或修改填報(bào)表以及針對(duì)填寫(xiě)數(shù)據(jù)的統(tǒng)計(jì)查詢都可以由業(yè)務(wù)人員自己完成了。
潤(rùn)乾怎么處理?
業(yè)務(wù)型填報(bào)的兩個(gè)問(wèn)題都不簡(jiǎn)單,不過(guò)我們都已經(jīng)有了辦法。
對(duì)于問(wèn)題二,潤(rùn)乾有現(xiàn)成方案,我們開(kāi)發(fā)了集算器產(chǎn)品,可以不依賴于數(shù)據(jù)庫(kù)實(shí)現(xiàn)更強(qiáng)大的計(jì)算能力,再配有交互式的界面,可以由業(yè)務(wù)人員自由地完成豐富的統(tǒng)計(jì)分析。
對(duì)于問(wèn)題一,我們?cè)谛聺?rùn)乾報(bào)表5中提供了自動(dòng)識(shí)別數(shù)據(jù)結(jié)構(gòu)的方案。用戶用類似Excel的方法繪制表格,再指定某些單元格的類型,即哪些單元格是用于分類的(維度類),哪些單元格是用于填寫(xiě)的(數(shù)值格),根據(jù)這些程序就能基本正確地分析出合理的數(shù)據(jù)結(jié)構(gòu)。
比如下表:
設(shè)置B3,B10,C10-D13等格是用于分類的維度格,C3-G7,D10-G13等格是用于填寫(xiě)的數(shù)值格,程序?qū)⒛茏詣?dòng)識(shí)別出來(lái)兩組數(shù)據(jù)結(jié)構(gòu)及記錄字段對(duì)應(yīng)的單元格。
對(duì)于用戶來(lái)講,指定單元格類型是個(gè)關(guān)鍵步驟,但難度并不算大,本來(lái)和業(yè)務(wù)知識(shí)相關(guān)性強(qiáng),再通過(guò)一些例子訓(xùn)練也都能掌握。
上面例子中的表格并不是單一數(shù)據(jù)結(jié)構(gòu)的簡(jiǎn)單行式表,這里有不止一個(gè)數(shù)據(jù)結(jié)構(gòu),程序也可以正確地識(shí)別出來(lái),并找出合適的屬性(字段)名稱。

























