Dies ist das erste Mal, dass ich ReportLab verwendet habe, habe ich versucht, ein vorhandenes Skript zu bearbeiten, das genau das tut, was ich tun möchte, aber ich bekomme den folgenden Fehler, wenn ich versuche und ausgeführt das Skript.ReportLab - Fehler beim Erstellen einer Tabelle
Script -
import os, arcgisscripting, datetime, getpass, string
from reportlab.lib.pagesizes import A4
from reportlab.platypus import *
from reportlab.lib import colors
from reportlab.lib.styles import ParagraphStyle
myWorkspace = r"W:\City.gdb"
myReportFolder = r"W:\Reports"
myLogosFolder = r"W:\Logos"
OpenPDF = "true"
gp = arcgisscripting.create(9.3)
#setup geoprocessor
gp.workspace = myWorkspace
gp.toolbox = "analysis"
gp.OverwriteOutput = 1
mySelectedGroupsFC = myWorkspace + os.sep + "SelectedGroups"
myNewBusinessFC = myWorkspace + os.sep + "New_Businesses"
myBufferFC = myWorkspace + os.sep + "Buffer"
myReportTable = myWorkspace + os.sep + "FINAL_TABLE"
#obtain Selected groups
mySelGroupsCursor = gp.searchcursor(mySelectedGroupsFC)
mySelectedGroups = mySelGroupsCursor.next()
#obtain New Business groups
myNewBusinessCursor = gp.searchcursor(myNewBusinessFC)
myNewBusiness = myNewBusinessCursor.next()
#obtain Buffer
myBufferCursor = gp.searchcursor(myBufferFC)
myBuffer = myBufferCursor.next()
#setup PDF doc
Author = getpass.getuser() #gets OS user name
pdf_file_name = myNewBusiness.POSTCODE
pdf_file = myReportFolder + os.sep + pdf_file_name + ".pdf"
doc = SimpleDocTemplate(pdf_file, pagesize=A4)
#array of report elements
parts = []
#
#HEADER
#
parstyle = ParagraphStyle(name='Title', fontName='Helvetica', fontSize=12, alignment=1, spaceAfter=20)
p = Paragraph('<b><u>Report</u></b>', parstyle)
parts.append(p)
p = Paragraph('The following community groups are located within <b><u>' + myBuffer.Buffer + 'metres of - <b><u>' + myNewBusiness.Postcode + '<\b><\u>.',parstyle)
parts.append(p)
#
#TABLE
#
while myBuffer:
parstyle = ParagraphStyle(name='Title', fontName='Helvetica', fontSize=11, alignment=0, spaceAfter=15, spaceBefore =15)
p = Paragraph('<b><u>Community groups within ' + myBuffer.Buffer + ' metres of ' + myNewBusiness.Postcode + '</u><\b>', parstyle)
parts.append(p)
data = []
parstyle = ParagraphStyle(name='Title', fontName='Helvetica', fontSize=11, alignment=0)
while mySelectedGroups:
selectedGroups_desc = 'Community ID:'+ '<i>' + mySelectedGroups.Community_ID + '<\i>' + 'Organisation Name :' + mySelectedGroups.Organisation_Name
p = Paragraph(selectedGroups_desc, parstyle)
mySelectedGroups = mySelGroupsCursor.next()
#build and format table
t=Table(data, colWidths=(100,100))
t.setStyle(TableStyle([
('ALIGN',(0,0),(-1,-1),'CENTER'),
('VALIGN',(0,0),(-1,-1),'TOP'),
('INNERGRID', (0,0), (-1,-1), 0.25, colors.black),
('BOX', (0,0), (-1,-1), 0.25, colors.black),
('TOPPADDING', (0,0), (-1,-1), 10),
]))
parts.append(t)
myBuffer = myBufferCursor.next()
#Footnote
parstyle = ParagraphStyle(name='Title', fontName='Helvetica', fontSize=11, alignment=0, spaceAfter=15, spaceBefore=15)
p = Paragraph('''Should you have any further questions **''', parstyle)
parts.append(p)
#Build document
doc.build(parts)
del mySelGroupsCursor, myNewBusinessCursor, myBufferCursor
#Open document
if OpenPDF == "true":
os.startfile(pdf_file)
Der Fehler, ich erhalte, ist:
Traceback (most recent call last):
File "C:\Python25\Lib\site-packages\Pythonwin\pywin\framework\scriptutils.py", line 325, in RunScript
exec codeObject in __main__.__dict__
File "H:\Report_v2.py", line 100, in <module>
t=Table(data, colWidths=(100,100))
File "C:\Python25\Lib\site-packages\reportlab\platypus\tables.py", line 236, in __init__
raise ValueError("%s must have at least a row and column" % self.identity())
ValueError: <[email protected] 0 rows x unknown cols>... must have at least a row and column
Alle Ideen, was ich tun muss, wie ich ein bisschen am kämpfen.
Danke.