原報表樣式如下:
我們希望根據做小計和合計功能,希望實現的報表結果如下:
第一步:
先按要求設計如下報表:
此處主要說明三個sum(C1)的配置,基礎配置不在復述,如果基礎配置有問題,請查閱資料 https://www.w3cschool.cn/ureport/
第一個sum(C1)配置
根據表格展示結果,我們可以看出,第一個sum(C1)我們是希望根據B1的展示結果不同做不同小計統計,根據Ureport的計算模型,對於父格而言,父格展開時會帶動子格一起展開,如父格向下展開,則帶其下所有子格及子格的子格一起向下展開。所以我們如果希望B1向下展開是也能帶動C2向下拓展,那么必須保證B1是C2的父格。如果B1設置為C2的上父格,那么C1與C2不存在任何關系,此時將會在統計C1下所有值的累計,顯然不滿足,所以只能講B1設置為C2的左父格。如圖所示
此時預覽效果如下:
會發現小計只計算C1第一行的值這是因為C1是C2的上父格,根據Ureport2計算模型,只會累加第一行的值。為了統計C1所有行的值,只有保證C1與C2不具有關系即可。一般將C2的上父格設置為無。
此時預覽效果如下:
會發現基本滿足要求,但是小計沒有在每一列B1里展示。這時只要對小計對應的格子,也就是B2設置跟C2一樣的左父格和上父格即可。
預覽效果如下:
總結:
對於Ureport的小計或者合計統計,首先判斷表格是希望根據哪個格子做分組小計或者合計統計(上例B1),然后將填寫表達式的格子(上例C2)的左父格設置為對應希望做分組統計的格子,上父格設置為無(如果希望分組小計的格子(B1)的數據展開方向是向右展開則相反,比如上例的數據方向是向下展開,所以是上父格設置為無,左父格設置為B1,如果數據方向是向右,則上父格設置為B1,左父格設置為無)。並且注意其他所在行的格子也要設置為與填寫表達式的格子相同的左父格和上父格(上例B2)
第二個sum(C1)配置
根據表格樣式,很容易看出根據A1做分組合計,根據上面總結,很容易得到對於C3的父格配置,如下圖所示:
記住對於A3也要相同的配置
預覽效果如下:
第三個sum(C1)配置
根據表格樣式很容易得到總計是對於整個報表的統計,此處它不存在是對於那個格子的分組合計問題。根據上面的總結,我們可以得到配置為:
最終展示結果為:
具有共同上父格的求和問題
如圖所示,A2的上父格是A1,A2處欲獲取A1所有值求和。
總結:
如果具有上父子格關系的匯總,只需要設置子格的父格均為無即可(上例中A2的設置)。
經典例子
交叉表的合計運算:
展示效果為:
交叉表例子中C3還有其他設置方法:
方法1:
方法2: