SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

ComponentZine(ComponentOne)

テキストデータから印刷ドキュメントを作成する.NETアプリケーションに表機能を追加する

続・ComponentOne StudioのReports for Windows Formsを使ったWindowsアプリケーションの作成

  • このエントリーをはてなブックマークに追加

セルにデータを入れる処理

 テーブルができたら、各セルにテキストデータを入れていきます。StreamReaderクラスを使ってテキストファイルから1行ずつ読み込み、左の列のセルから順番に行を変えながら挿入していきます。

 まず、RenderTextオブジェクトを作成します。そして、ファイルからデータを1行読み込んでこのオブジェクトのTextプロパティに代入します。Cellsプロパティの引数に行列番号を指定し、RenderObjectプロパティにRenderTextオブジェクトを代入します。これで、指定したセルにテキストデータを持ったRenderTextオブジェクトが設定されます。あとは、セルの位置を移動させながら、RenderTextオブジェクトを設定していきます。

Visual Basic
'セルにデータを入れる
fname = Application.StartupPath & "\sample_data.txt"
Try
    Dim sr As StreamReader = New StreamReader(fname, System.Text.Encoding.Default)
    For row = 0 To 10
        For col = 0 To 2
            Dim celltext As RenderText = New RenderText(Me.C1PrintDocument1)
            celltext.Text = sr.ReadLine()

            ' テキストを含むセルを追加
            table1.Cells(row, col).RenderObject = celltext
        Next
    Next
    sr.Close()
Catch ex As Exception
    MessageBox.Show(ex.Message)
End Try
C#
//セルにデータを入れる
fname = Application.StartupPath + "/sample_data.txt";
try
{
    StreamReader sr = new StreamReader(fname, System.Text.Encoding.Default);
    for(row=0; row<=10; row++)
    {
        for(col=0; col<=2; col++)
        {
            RenderText celltext = new RenderText(c1PrintDocument1);
            celltext.Text = sr.ReadLine();

            // テキストを含むセルを追加します。
            table1.Cells[row, col].RenderObject = celltext;
        }
    }
    sr.Close();
}
catch (Exception ex)
{
    MessageBox.Show(ex.Message);
}
セルにデータが入る
セルにデータが入る

見出し行の装飾

 最後に、見出しの行の文字色を変えます。見出しのセルを塗りつぶすには、Rowsプロパティで11行目全体のセルのスタイルを表すCellStyleオブジェクトを取得し、BackColorプロパティに色情報を設定します。セルの文字はRenderObjectプロパティでRenderTextオブジェクトを指定し、そのStyleオブジェクトを取得してTextColorプロパティに色情報を設定します。セルとセルの中にあるテキストは、それぞれ違うオブジェクトになっている点に注意してください。

見出し行の背景色と文字色が設定された
見出し行の背景色と文字色が設定された

 作成したテーブルをBodyセクションに追加し、ドキュメントを生成してできあがりです。

Visual Basic
table1.Rows(0).CellStyle.BackColor = Color.BlueViolet
table1.Rows(0).Style.TextColor = Color.Beige

' テーブルをドキュメントに追加
Me.C1PrintDocument1.Body.Children.Add(table1)
Me.C1PrintDocument1.Generate()
C#
//見出しのセルを塗りつぶす
table1.Rows[0].CellStyle.BackColor = Color.BlueViolet;
table1.Rows[0].Style.TextColor = Color.Beige;

// テーブルをドキュメントに追加
c1PrintDocument1.Body.Children.Add(table1);
c1PrintDocument1.Generate();

まとめ

 テーブルはデータを分かりやすく見せるための常套手段です。特に、日本人は表組が大好きなようで、ドキュメント作成には欠かせないものになっています。

 C1PrintDocumentコントロールは、このように簡単にテーブルを作成できます。列幅や行の高さの設定、セルの塗りつぶし、文字色、罫線設定などを自在に行うことができるので、独自のスタイルの表をドキュメントに組み込むことができます。

 また、GDI+を使ったグラフィックス描画機能を使うことができるため、例えば角度の付いた文字やグラデーションブラシによる塗りつぶしなど、ドキュメントをグラフィックスで装飾する操作も自在に行えます。

 アプリケーションにドキュメント作成機能を組み込みたいという方はぜひ、C1PrintDocumentコントロールの導入を検討してみてはいかがでしょうか。

製品情報

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
ComponentZine(ComponentOne)連載記事一覧

もっと読む

この記事の著者

瀬戸 遥(セト ハルカ)

8ビットコンピュータの時代からBASICを使い、C言語を独習で学びWindows 3.1のフリーソフトを作成、NiftyServeのフォーラムなどで配布。Excel VBAとVisual Basic関連の解説書を中心に現在まで40冊以上の書籍を出版。近著に、「ExcelユーザーのためのAccess再...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/5525 2010/10/26 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング