Paul,
Please consider adding the following mod to reportwriter.py
1) It moves the pagefooter generation from beginpage to endpage which allows
us to put info in the pagefooter that is record specific (ie looks at the
last record printed on the page vs first)
2) It fixes a page numbering problem if a deferred page is printed and the
group setting to reset page numbers is set
Thanks,
Larry'
--- C:/Users/owner/AppData/Local/Temp/reportWriter.-revBASE.svn002.tmp.py
Wed Sep 2 14:05:08 2009
+++ C:/dabo/dabo/lib/reportWriter.py Wed Sep 2 13:59:25 2009
@@ -865,7 +865,9 @@
More documentation will come.
"""
_clearMemento = True
-
+
+ # LAL - Initialize being_deferred attribute to track if we are
generating a deferred page
+ being_deferred = False
def storeSpanningObject(self, obj, origin=(0,0), group=None):
"""Store the passed spanning object for printing when
the group or
page ends. Pass the group expr to identify group
headers, or None to refer
@@ -1659,7 +1661,7 @@
return maxBandHeight
maxBandHeight = getTotalBandHeight()
-
+
if band in ("groupHeader", "groupFooter",
"detail", "ReportBegin", "ReportEnd"):
extraHeight = 0
if band == "groupHeader":
@@ -1674,7 +1676,11 @@
if y < check or maxBandHeight
is None:
if
self._currentColumn >= columnCount-1:
+ #LAL -
Set being_deferred
+
self.being_deferred=True
endPage()
+ #LAL -
Clear being_deferred
+
self.being_deferred=False
beginPage()
else:
self._currentColumn += 1
@@ -1795,8 +1801,17 @@
def beginPage():
# Print the static bands that appear below
detail in z-order:
+ #for idx, group in enumerate(groups):
+ #vv =
self._groupValues[group["expr"]]
+ #if vv["curVal"] !=
group.getProp("expr"):
+ #rp =
eval(group.get("resetPageNumber", "False"))
+ #if rp:
+
#self._pageNumber = 0
+
self._pageNumber += 1
- for band in ("pageBackground",
"pageHeader", "pageFooter"):
+ #LAL - Move pagefooter write to endpage
+ #for band in ("pageBackground",
"pageHeader", "pageFooter"):
+ for band in ("pageBackground",
"pageHeader"):
printBand(band)
self._brandNewPage = True
@@ -1805,6 +1820,10 @@
x =
self.getPt(self.ReportForm["Page"].getProp("MarginLeft"))
self.drawSpanningObjects((x,y))
printBand("pageForeground")
+
+ #LAL
+ printBand("pageFooter")
+
self.Canvas.showPage()
def reprintGroupHeaders(y):
@@ -1860,20 +1879,30 @@
vv =
self._groupValues[group["expr"]]
if vv["curVal"] !=
group.getProp("expr"):
rp =
eval(group.get("resetPageNumber", "False"))
- if rp and
self._recordNumber == 0:
-
self._pageNumber = 1
- elif rp:
-
self._pageNumber = 0
+
+ #LAL - Change logic
for resetting the page number
+ pgreset=False
+ # Reset page number
if this is not a deferred page
+ if not
self.being_deferred and rp:
+
pgreset=True
+
vv["curVal"] =
group.getProp("expr")
np =
eval(group.get("startOnNewPage", "False")) \
and self.RecordNumber > 0
if np and not
brandNewPage:
endPage()
+
self._pageNumber = 0
+
pgreset=False
beginPage()
y = None
brandNewPage = True ## don't start multiple new pages
+
y =
printBand("groupHeader", y, group)
-
+
+ #LAL - If we still
need to reset the pageNumber
+ if pgreset:
+
self._pageNumber=1
+
# print the detail band:
y = printBand("detail", y)
self._recordNumber += 1
--- StripMime Report -- processed MIME parts ---
multipart/alternative
text/plain (text body -- kept)
text/html
---
_______________________________________________
Post Messages to: [email protected]
Subscription Maintenance: http://leafe.com/mailman/listinfo/dabo-users
Searchable Archives: http://leafe.com/archives/search/dabo-users
This message:
http://leafe.com/archives/byMID/!~!UENERkVCMDkAAQACAAAAAAAAAAAAAAAAABgAAAAAAAAAafA2fnYuPUOMNFpIYnBEQcKAAAAQAAAAauxvcLxMwE61/[email protected]