[reportlab-users] Getting Nested table aligned to top
Robin Becker
robin at reportlab.com
Fri Jul 31 05:22:21 EDT 2009
Mike Driscoll wrote:
> Hi,
>
> It looks like my post got eaten due to my screenshot, so I have uploaded
> it to flickr: http://www.flickr.com/photos/25220999@N03/3773123700/
>
> I am trying to get a set of nested tables to align at the top. There are
> 6 rows in the screenshot. The first row is 3 "Earnings", the 2nd is the
> four row table, the 3rd is three "Deductions", the 4th is the 5 row
> table, etc. Notice that the bottom row has the first two columns lower
> the the last one. Is there a way to force that row to be aligned at the
> top? Right now, I use the following code:
>
> tblThree = Table(data3, colWidths=colWidths, style=LIST_STYLE,
> hAlign="LEFT", vAlign="TOP")
>
> This does not work. Does anyone have a better idea? I am using Python
> 2.5 on Windows XP with the latest ReportLab.
>
> Thanks,
>
> Mike
This single row example shows nested tables aligned right, top.
###############################################################
from reportlab.lib import colors
from reportlab.platypus.doctemplate import SimpleDocTemplate
def getTable(x=0):
data=[('','Europe','Asia'),
('Quarter 1',100,200),
('Quarter 2',100,400),
]
W=[62,26,26]
H=[24,16,16,18]
if x:
data[3:3] = [('Quarter 3',103,404),('Quarter 4',104,396)]
H[3:3] = [16,16]
LR = ['Total',300,600]
for j in xrange(1,len(LR)):
LR[j] = sum([data[i][j] for i in xrange(1,len(data))])
data.append(LR)
return Table(data,W,H,style=TableStyle([('GRID', (0,0), (-1,-1), 0.25,
colors.black),('FONTSIZE',(0,0),(-1,-1),8)]))
T=Table([[getTable(0),getTable(0),getTable(1)]],
style=TableStyle([
('ALIGN', (0,0), (-1,0), 'RIGHT'),
('VALIGN', (0,0), (-1,-1), 'TOP'),
('GRID', (0,0), (-1,-1), 0.25, colors.red),
]),
)
SimpleDocTemplate('tnestt.pdf', showBoundary=1).build([T])
###############################################################
--
Robin Becker
More information about the reportlab-users
mailing list