私は reportlab を初めて使用し、これまでのところ満足していますが、修正方法がわからない状況に陥っています。列数が異なる行があるため、サブテーブルを使用してテーブルを作成しようとしています。基本的に、各行がそれ自体でテーブルであるテーブルを作成しようとしています。Table コンストラクターが正常に完了し、有効なテーブルを返すという点で、これは機能しているようです。しかし奇妙なのは、ドキュメント (SimpleDocTemplate インスタンス) を作成しようとすると、「テーブル インスタンスに属性 ' len ' がありません」というエラーが表示されることです。私のレポート生成コードは次のとおりです。
#create the document and data list
doc = TimeEntryReportDocTemplate(response)
elements = []
#add the Sustainable Development and Construction header
elements.append(add_sdc())
#add the header rows
elements.append(add_header(start_date, end_date, department, unit, employee, project_name))
#create the column header table
t = create_column_header_table(grouping_type)
results = []
results.append(t)
#elements.append(t)
#get the grouped line item tables for inclusion
#elements = tabulate_line_items(line_items, grouping_type, elements)
results = tabulate_line_items(line_items, grouping_type, results)
final_table = Table(results, repeatRows=1)
elements.append(final_table)
doc.build(elements)
print final_table は、実際には Table(...data...) # end テーブルにラップされたデータを示しています。ビルドしようとしてもうまくいかないのはなぜですか? テーブルを返す各メソッドをテストしましたが、それらは機能します。「要素」変数を使用してドキュメントをビルドすると、ドキュメントは正常にビルドされます。各ページの要素コレクションの最初の行を繰り返す必要があるだけなので、テーブルのテーブルを作成しようとしています。もっと簡単な方法はありますか?