Main Content

左右に並べられたテーブル

この例では、ページ上でテーブルを左右に並べて配置する方法を説明します。

この例では、非表示テーブル (境界線も色も付いていないテーブル) の隣接するエントリに、各テーブルを配置します。非表示テーブルによって、挿入されたテーブルが左右に並んで表示されます。

長い完全修飾クラス名を使用せずに済むよう、DOM およびレポートの API パッケージをインポートします。また、レポート オブジェクトも作成します。

import mlreportgen.dom.*
import mlreportgen.report.*

% To create a Word report, change the output type from "pdf" to "docx". 
% To create an HTML report, change "pdf” to “html” or "html-file" for a 
% multifile or single-file report, respectively.
rpt = Report('myreport','pdf');

魔方陣のデータを保持するために、2 つの table オブジェクト (table1 と table2) を作成します。以下で作成する非表示テーブルのセルに収まるように、これらのテーブルの幅を 100% に設定します。また、テーブルの境界線、行の区切り、および列の区切りのスタイルを指定します。

tableStyle = { ...
    Width('100%'), ...
    Border('solid','black','1px'), ...
    ColSep('solid','black','1px'), ...
    RowSep('solid','black','1px') ...
    };

table1 = Table(magic(8));
table1.TableEntriesHAlign = 'center';
table1.Style = tableStyle;

table2 = Table(magic(4));
table2.TableEntriesHAlign = 'center';
table2.Style = tableStyle;

1 行 3 列の非表示レイアウトのテーブル (lo_table) にある唯一の行にテーブルを挿入します。テーブルおよびそのテーブル エントリのいずれにも境界線が定義されていない場合、テーブルは非表示と見なされます。

lo_table = Table({table1,' ',table2});

魔方陣のテーブルに合うように、レイアウト テーブル エントリの幅を指定します。

lo_table.entry(1,1).Style = {Width('3.2in')};
lo_table.entry(1,2).Style = {Width('.2in')};
lo_table.entry(1,3).Style = {Width('3.2in')};

余白の間のページ幅一杯に広がるように、レイアウト テーブルの幅を設定します。ResizeToFitContents を false に設定して、レイアウト テーブル列のサイズ変更を防ぎ、代わりに指定した幅を使用するようにします。

lo_table.Style = {Width('100%'), ResizeToFitContents(false)};

レポートを生成して表示します。

add(rpt, lo_table);
close(rpt);
rptview(rpt);