最近大火的低代碼報表平臺究竟是什麼?
最近低代碼、零代碼很火,網路一搜,各家都鼓吹自己零代碼開發的平臺。 確實,近十年IT的發展以及互聯網產品的推動,使得很多細分領域的工具都呈現出一種簡單易用少開發輕量化的趨勢。
筆者自己也在IT行業做了10多年的開發,開發過類office的套件、數據平臺、也開發過互聯網應用,個人覺得:目前面世的零代碼開發平臺只適合在邏輯簡單的小型軟體,比如一些簡單的數據上報和簡單數據統計功能,比如調查問卷和數據提交類小型的、邏輯簡單的、臨時性的小程式。
但是針對企業複雜業務環境使用的,比如常見的ERP、OA、數據平臺以及銀行、證券等專業性強、邏輯複雜的軟體,充其量還只能算是低代碼開發。 要知道軟體的可開發程度和功能豐富程度是相斥的,和業務的需求滿足豐富度也是相斥的。

就工具而言,無論是低代碼還是零代碼,都是為了解決開發效率問題。
現在很多工具在現有先進技術基礎上抽象出一套可視化的語言和元件。 有些是針對ERP、有些是針對OA、有些是針對可視化表格處理,基本上在某種場景下,這些低代碼平臺的效率提升速度是非常可觀的。 比如我所熟知的報表和BI領域,很多公司都有數據採集、數據處理、數據展示等一系列數據"交互"的需求,具體如報表、填報、數據流轉、數據讀取展示等。
就報表開發這一項需求,以往的操作或者現在大部分小型公司的辦法是:業務數據在資料庫中——需要數據時IT通過sql取——有的會進一步處理成成品數據——匯出Excel給業務——然後業務在Excel中處理數據。
有些公司開發可能會針對一些使用高頻的報表開發自動化,比如java或Python寫一個自動化的腳本。 但這就帶來代碼開發的問題,代碼有bug需要維護,需求要變動需要改代碼。 報表需求又多又雜,每次來個需求就要動手改代碼,挺手工的。 且這樣的公司報表數據,存在於每個人的Excel中,存在於代碼中,沒有平臺承載,無異於裸奔。
於是,在零幾年的時候,就陸續誕生各種報表平臺,一步步將操作可視化、將代碼可視化、將運維、開發相關平臺化、系統化,基本已發展成穩定的低代碼報表開發平臺。 就比如業內翹楚FineReport。
接下來我從功能上深入淺出剖析下這個低代碼報表開發平臺。
開發操作
1、SQL語句可視化編輯
開發報表的重要操作之一就是讀取填寫數據,大部分情況我們都是直接寫SQL。 那成熟的報表開發平台怎麼做?
在操作資料庫數據時,FineReport有一個類Navicat的資料庫可視化操作介面,鏈接資料庫,讀取數據表...... 其次是一個可視化的SQL編輯頁面(如下圖),直接拖拽表和欄位到編輯中,直接生成SQL語句。 當你寫個百八十行SQL的時候,還是能節省不少時間。

2、報表範本零編碼編輯
然後就是設計報表,報表的大部分時間都花在開發報表樣式上,類似Excel,可視化填數據、處理數據、做表格樣式。 FineReport做報表範本的邏輯類似Excel,也不要寫代碼,將相應欄位拖到表格中,全程基本也是可視化編輯。

但是數據展示的邏輯不同。 Excel處理的物件是一個個數據,FineReport處理的對象是資料庫中的數據表字段名。 範本中一個儲存格放一個數據欄位,web端展示時,數據隨欄位橫向或者縱向擴展。

3、參數查詢可視化配置
在很多情況下報表的數據展示,需要根據條件查詢數據、過濾。 通過設置參數綁定數據欄位和過濾的控件(單選框複選框等),通過介面輸入查詢條件來控制報表顯示的內容及形式,而後匯出。 關於參數設置,FineReport有可視化參數介面,用來放置與查詢相關的控件,可以隨意佈局,拖拽設計想要得到的介面效果。


4、可視化dashboard構建
數據可視化方面,FineReport通過決策報表來設計展現,操作上報表、圖表以及各類控件都封裝成了模組,通過元件拖拽操作方式快速製作元件式報表,比傳統格子報表更美觀,可以自適應螢幕的大小和解析度,智慧排布元件佈局,交互效果更佳,極適合構建決策駕駛艙。

另外,配合可視化的參數定義,FineReport能夠實現可視化的多層鑽取功能設置,同一張報表根據不同字段值進行鑽取的功能。

說完開發操作再來談談平臺運維相關。
平臺運維
1、定時調度
報表這塊的定時調度,比如有些報表如日報、月報、季報是需要定期生成、定期發佈,為避免定期重複做,FineReport在平臺上開發了現成的定時任務功能,設定後伺服器會在指定的時間自動完成設定的任務,定時生成報表,定時轉換數據,定時發送郵件、簡訊、移動端用戶端訊息,能指定報表生成目錄,並以Web方式查看報表生成結果。

2、許可權管理
有平臺就有使用者,數據安全方面就要做好許可權管理。 平臺策FineReport配置有可視化的許可權設置精細到單元格的許可權粒度。
通過分級許可權控制功能,可以實現不同分子公司/部門共用系統,各個分子公司/部門有其自己的管理員,並給其下屬員工分配許可權,即超級管理員控制所有許可權,下級管理員只能管理自己職責範圍內的使用者和報表範本。

其他,還有封存好的功能如,集群配置、備份還原、智慧檢測、雲端運維、平臺日誌、資源遷移等,也都平臺化了。
開發相關
低代碼平臺最大的好處是讓程式師可以專注於核心業務邏輯的部分,所有週邊的東西平臺都為你預置了,可以直接調用。
上文說過,軟體的可開發程度和功能豐富程度是相斥的,大部分通用功能都已經模組化集成到軟體中,能應付絕大部分業務需求。 但是企業環境是多變的,業務需求是多變的,個性的不能滿足的部分就要靠開發來實現。
所以FineReport也"留了一手"可開發的部分,其實就是開放介面,開發人員可以使用網頁腳本JS、API 介面等對 FineReport 進行深入的開發與控制,比如前端調用第三方可視化庫,比如和一些非主流的業務系統、資料庫對接,比如需要開發公司特有的平臺介面,做單點登錄集成等等。
最後
再回到低代碼平臺!
對於開發人員來說:
- 低代碼開發解放了開發過程中繁冗、重複性編碼工作,可以有效的降低人工成本。
- 提升開發效率:支援跨平臺部署,可以同時為多個平台構建應用程式。
對於業務人員來說:
- 減少業務團隊與IT部門的溝通成本,IT人員普遍無法切身體驗業務人員實際痛點,業務人員可以通過低代碼開發平臺自定義demo,最終交付IT團隊技術實現。
- 降低產生差錯的概率,低代碼開發元件化,拖拽式降低了因為人為失誤而導致的損失,且出現錯誤可以及時找到錯誤來源並加以完善。
低代碼開發的核心價值在於顯著降低軟體開發的技術門檻,並大幅提升開發效率,縮短專案交付週期。 所以,低代碼可以廣泛應用於企業訊息化建設的各個環節,包括構建企業核心業務系統、實現工作流程訊息化、為行業軟體做客戶化開發。 這已經是軟體應用開發不可阻擋的趨勢!