報表系統中有一些重要的更新和訊息需要及時和方便的推送給我們,這時候能夠推送到通訊軟體或者我們企業自有的行動app中就在方便不過了,今天就和大家分享一個以微信wechat為例子的專案,看看怎樣通過FineReport報表軟體推送訊息!
場景1:
對於生產類的資料,往往需要監控某個指標是否在規定範圍內,如果超過了閥值,就要通知到相關人員去確認。
這種情況下,可以採用FR的排程設定,監控資料是否超過閥值,如果超過,則自動推送訊息至行動APP端。
場景2:
對於財務類的資料,如月報,不確定填報人何時提交資料的,就需要監控是否已經有新的資料提交上來,然後通知相關人員查看匯總資料。這種情況下,也可以採用FR的排程設定,監控是否有新的資料,如果有,則自動推送訊息至行動APP端。
問題:
在使用訊息提醒時,往往還會遇到一個要求,就是根據資料的不同,需要推送給不同的人。
專案:
我們以一個實際案例來看看推送訊息的使用過程,場景如下:
例如公司要求每個銷售在每月的1號至5號之間需要評估自己這個月的預計簽單額,並且填報到資料庫中月度目標額表中,
不確定銷售會在哪一天提交資料,因此需要監控資料庫是否有新的資料進來,從而推送訊息給這個銷售對應的區域經理。
在每個月的1號從資料庫中的合同明細抽取出各銷售本月的簽單額,與預計額比較,然後推送給銷售告訴他上月銷售目標是否達到。
示意流程圖如下:

相關模板及排程設定設置:
1、監控資料是否更新
這個方案中是用資料庫的觸發器來監控的,大體思路為:
原始資料庫表為plan,新建一張資料庫表plan_new用來保存插入的新資料,在資料庫中定義觸發器如果插入了新的資料,則將新資料保存到plan_new中
填報模板為plan.cpt
註:當然這個監控資料更新可以不用這個方法,也可以使用其他方式,例如sqlserver的話使用CDC變更資料捕獲等方式來監控表資料是否變更,或者用報表來間接判斷等。
2、獲取更新,如果有更新的資料則自動通過wechat微信推送給區域經理
sql查詢更新表plan_new,做成模板plan_manager.cpt
打開排程設定,設置排程設定,模板選擇plan_manager.cpt

因為我們要實時監控,所以執行頻率如設置每隔一分鐘執行一次,當然如果不需要精確到一天的具體時間,可以設置每天執行一次或者每周執行一次,根據需要設置。

執行條件處我們採用公式判斷,B1單元格取的為更新的資料條數,如果B1=0,則表示沒有更新,那麼此次任務不執行
只有當B1>0即有更新資料時,才執行。

生成的結果名字為「銷售預估簽單額」,注意需要給用戶設置可以訪問這個目錄的許可權

並且設置推送wechat微信消息

我們來查看一下效果,模擬銷售A在2015-11-01 15:00錄入的資料

我們來看一下定時器的後台監控,可以看到,在15:01分的時候,排程設定成功了,並發送了消息

而收到的消息則為A提交的資料

例如,我們在2015-11-01 15:05的時候,模擬銷售B提交資料,又會及時推送B的資料

打開消息,看到的是B的資料

3、將不同的資料發送給不同的人
到了下個月1號,我們從資料庫中匯總出每位銷售實際的簽單額,與預估值進行比較,推送訊息給對應的銷售,讓他知道他上個月的目標是否完成。例如,我們取到的資料如下:

這個時候,需要自動給銷售A、D推送訊息告訴他們沒有完成目標,而給銷售B,C推送訊息告訴他們完成了目標。
如果要實現這種,首先需要製作模板,將資料根據用戶進行過濾,實現不同的用戶登錄,只能看他自己的資料
例如這邊的模板real.cpt,在sql中資料用用戶名進行過濾

如銷售A登錄時,只看到銷售A的資料

然後我們再來設置排程設定

設置每個月的1號執行任務

結果報表為「目標完成情況」,設置根據用戶選擇不同的內容

然後在設置推送wechat微信消息

啟動後,每個月的1號就會把上個月每個銷售的目標完成結果推送給他。
而打開看到的只有他自己的資料,例如D收到的消息打開就是

其他
這個方案,不僅僅適用於推送wechat微信消息,也適用於推送訊息至app客戶端,只需將排程設定最後一步設置為「推送訊息」即可,如下圖: