潤乾報表/引用自身格內數據

在實際的報表工作中我們經常會遇到,需要取自身單元格內數據的情況,該如何處理呢?看下面的一個簡單案例:

在一張填報單中,我們需要自動計算價格,由成本與利潤相加,但是庫中的數據有的由於折扣等原因,售價一格中已經有數據,這時候要保留原數據。

先依下圖還原場景:

 

將A2與B2的填報屬性設置爲可寫:

 

這時候,如果我們單純地在C2單元格填報屬性,自動計算中寫入${C2}==''?${A2+B2}:${C2}是不行的,而且自動計算基於JAVA語言,也不能夠使用value()這種函數。

 

這種情況下,我們通常會採取複製一個C2到其他單元格,然後在C2中引用那個單元格就可以了,當然這是一種辦法,但是對於數據量大的報表來說,大量的引用以及單元格的計算會影響效率。所以必須想辦法在C2的自動計算中引用C2的值。

 

我們可以在D列中加入輔助運算列,如圖:

注意要勾選掉可視或者選中隱藏列屬性。

 

然後我們在C2格的自動計算中使用document對象:

document.getElementById("report1_C"+${D2}).innerText==''?${A2+B2}:document.getElementById("report1_C"+${D2}).innerText

 

顯示結果如下:

其中,第1,2,5行的數據是保留的,3,4行則是通過自動計算出來的。

在處理大量數據的時候,這種算法將會節約近一倍的時間。在編寫SQL語句時,爲了方便維護,增強拓展性,算法的優化非常重要。在需要單條數據的時候,select1將比select節約大量時間,從庫中引出數據,大量的sum(),count()函數等也會使程序變得拖沓,合理使用SQL臨時表,合理利用js函數,都將使得我們的運算更加流暢。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章