如何在報表最後一頁打東西及系統的乙個類似小方法

2021-04-19 05:54:17 字數 2438 閱讀 9334

在做報表是發現系統會使用一種

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函式的從前往後找的原理是相反的。...