在做報表是發現系統會使用一種
firstlast edt
的資料來判斷是否列印
footer
,現在和大家分享一下:
在路徑:
ar->
設定->
**->
**設定
下得到如下配置面板:
可以看到
group:
金額下有乙個字段:合計,這裡選擇的是尾頁。這個欄位的資料**於表:
custformletterparameters. totalsfirstlastpage
。我們這裡設定的是尾頁,即
fistlast::last.
系統中有乙個報表中用到了這個設定(得謝謝
micky
的幫助!),
報表名為:
custcollectionjour
它會設定兩個標誌:
boolean printfooter,showfooter. init
方法時將
printfooter
設定為true。
然後重新了
fetch,
其中代表性的**如下:
boolean fetch()
printfooter= this.totalspage(firstlast::first, showfooter);
……this.send(custcollectionletterjour);
……method send run several times here
……if (element.page() != 1)
else
……element.newpage(true);
element.page(1);
}return true;
}其中呼叫到了方法:
booleantotalspage(firstlastfirstlast, booleanprintnow)
在該方法中
totalsfirstlastpage
是從表custformletterparameters. totalsfirstlastpage
的值。
footer
的excutesection
被重新為:
voidexecutesection()
}整個邏輯類似這樣:
首先printfooter
和showfooter
是true
,每拿到一條
journalheader
,先會執行
printfooter= this.totalspage(firstlast::first, showfooter);
返回始終是
false
,所以在下一次設定
printfooter
前始終不會執行
footer
的excutesection
的super
,也即不會列印
footer
當與此header
相關的所有記錄、資訊都列印完了,這時候執行到了
if (element.page() != 1)
else
即在執行到這裡之前,即使記錄多換頁了,
footer
是不被列印的。這裡判斷是不是已經不在第一頁了,如果不是第一頁,執行
printfooter= this.totalspage(firstlast::last, showfooter);
會將printfooter
設定為true
,所以footer
要被列印了。如果是第一頁,執行
printfooter= showfooter;
由於showfooter
的值在初始後就沒有被改動過,所以也返回
true,
結果就是不管怎麼,到這裡
footer
都是要被列印的。
在此之後
element.newpage(true);
element.page(1);
即新開一頁,重複上面所提的的邏輯。
之所以要去看這個東西,是因為
micky
當時的建議是這樣可以設定是否在最後一頁打東西。從這個結果看,如果
while (queryrun.next())
並非執行一次,那麼這條路是行不通的。就我目前的了解,在執行完之前是沒辦法在**中得到總頁數的。
如果有需要只在最後一頁執行一些**,完全可以在
while (queryrun.next())
之後放入你的處理邏輯。
while
執行完了當然報表的主體內容也就列印完了。
以上是我個人的理解,希望大家多指正!謝謝!
如何使rdlc報表的表頭在每一頁都顯示
開發工具 visual studio 2010 report 版本 report 2010 1.首先使用visual studio 開啟你的rdlc檔案。你會看到rowgroups 和 columns groups,如下圖 操作 選擇 columns groups 右邊的下拉按鈕,選擇 advanc...
DouPHP如何在乙個頁面呼叫多個單頁的內容
首先想到的是通過錨鏈結,跳轉到對應位置。但是如何才能夠在同乙個頁面呼叫多個單頁的內容呢?經過一番琢磨,我想到,既然這4個單頁 4個塊狀 都是一樣的樣式,這就有點像文章或產品的列表的了。把這個頁面當成乙個列表頁,通過foreach來迴圈,是否就能夠達到想要的效果了?動手試了一下,果然可以。那如何做錨鏈...
如何在Excel中通過函式找到最後乙個匹配專案
今天被問到這樣乙個問題 這個問題很多朋友都會想到用vlookup去解決。但事實是vlookup函式可能達不到目的。我們一般可以通過自定義函式來解決,這樣的話,邏輯再複雜也可以處理。下面我寫了乙個簡單的函式,它就是迴圈,從後往前找,找到匹配的就不找了。這與vlookup函式的從前往後找的原理是相反的。...