C1PrintDocumentコントロールのテーブル機能について
C1PrintDocumentコントロールのテーブルは、ドキュメントを作成する際に最も便利な機能の1つで、論理的に無限の列数と行数を持つExcelスタイルのオブジェクトモデルをサポートします。
テーブルを使うことでデータを表形式で表したり、イメージ画像や図形などドキュメント内の他の要素をレイアウトするために使用できます。テーブルはセルで構成され、テーブル内のすべてのセルはTableCellCollection型を持つCellsコレクションによって表され、行列番号を使ってアクセスできます。
Dim tc as TableCell = table1.Cells(10, 4)
TableCell tc = table1.Cells[10, 4];
テーブルのセル、列、および行は、表示オブジェクトではありませんが、表示オブジェクトのプロパティに類似したいくつかのプロパティを備えています。セルの背景色やフォント、文字色、枠線などの属性を設定するには、StyleプロパティやCellStyleプロパティを使用し、それぞれの属性に該当するプロパティを変更します。
table1.Cells(0, 1).CellStyle.BackColor = Color.BlueViolet table1.Cells(0, 1).Style.TextColor = Color.Beige
table1.Cells[0, 1].CellStyle.BackColor = Color.BlueViolet; table1.Cells[0, 1].Style.TextColor = Color.Beige;
また、デフォルトではテーブルにグリッド線はなく、その都度設定します。
作成されるテーブルのサイズですが、幅はドキュメントの幅と同じ幅になり、デフォルトではすべての列の幅が同じになります。行の高さは、セルに入力されるデータによって自動的に設定されます。もちろん、列幅や行の高さを任意のサイズに設定できますが、テーブル全体の幅はドキュメントの幅を超えることはありません。
アプリケーションの構成
では、さっそくアプリケーションを作成していきましょう。今回は、前回の記事で作成したプロジェクトにページを追加して図形描画とテーブルを作成するので、Windowsフォームに変更はありません。使用するコントロールは、C1PrintDocument/C1PrintPreviewControlコントロールだけです。
![作成するWindowsフォーム](http://cz-cdn.shoeisha.jp/static/images/article/5525/Image4.gif)
改ページの挿入
まず、ドキュメントに改ページを挿入して新しいページを追加し、そこにページのタイトルを図形描画で設定します。
改ページは、RenderObjectクラスの「BreakBefore」「BreakAfter」プロパティを使用します。「BreakBefore」プロパティはオブジェクトの前に、「BreakAfter」はオブジェクトの後ろにページ区切りを挿入します。各プロパティには、以下のBreakEnum列挙体のメンバを指定します。
メンバ名 | 値 | 説明 |
None | 0 | 区切りなし |
Page | 1 | 新しいページが開始されます |
Column | 2 | 新しい列が開始されます |
Line | 3 | インラインフローで新しい行が開始されます |
ここでは、空白のRenderTextオブジェクトを作成し、BreakBeforeプロパティを使ってこのオブジェクトの前にページ区切りを挿入します。設定値は、「BreakEnum.Page」です。次に、作成したRenderTextオブジェクトをドキュメントのBodyセクションに追加します。
'*************** 2ページ目を追加 *************************** 'ページ区切りの作成 Dim rt1 As New RenderText rt1.Text = "" rt1.BreakBefore = BreakEnum.Page Me.C1PrintDocument1.Body.Children.Add(rt1)
//*************** 2ページ目を追加 ************************** //ページ区切りの作成 RenderText rt1 = new RenderText(); rt1.Text = ""; rt1.BreakBefore = BreakEnum.Page; c1PrintDocument1.Body.Children.Add(rt1);