SHOEISHA iD

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

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

5分でわかるActiveReports帳票

5分でわかるActiveReports帳票-罫線・折り返しとプレビュー・印刷(2007年度版)

ActiveReportsの罫線・折り返しとプレビュー・印刷

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

罫線とデータの折り返しが含まれる帳票-「データ表示」

複数のデータフィールドを1つのTextBoxで表示する

 お店の名前と住所の項目ですが、別々のテキストボックスに貼り付けると、先ほど説明したように、縦線コントロールが二つのコントロールをまたいでいるため、折り返した際に重なって表示されてしまいます。

 そこで、二つの項目を同じTextBoxにまとめて表示させることで、重なりを回避します。1つのTextBoxコントロールに複数の値を表示させるには、DataFieldプロパティを次のように設定します。

DataFieldの設定
DataFieldの設定

 ShopNameはテーブルの店名、ShopZipは郵便番号、ShopAdress1とShopAdress2は住所のカラム名です。先頭に「=」をつけると、ソース上の記述のようにプロパティを設定することができます。

 二つの項目のフォント設定が異なる場合は、TextBoxコントロールではなく、RichTextBoxコントロールを用います。RichTextBoxコントロールはテキストの表示に複数のフォントや色を設定することのできるコントロールです。

RichTextBoxで部分的にテキストのフォントを変更する(C# 2.0)
//リッチテキストのフォント設定
Font richTextHeaderFont = new Font("MS 明朝", 12f, FontStyle.Bold);

//リッチテキスト内の範囲指定をする
this.richTextBoxShopNameAdress.SelectionStart = 0;
this.richTextBoxShopNameAdress.SelectionLength
 = this.textBoxShopName.Text.Length;

//選択した部分のフォントを変更する
this.richTextBoxShopNameAdress.SelectionFont = richTextHeaderFont;
RichTextBoxで部分的にテキストのフォントを変更する(VB.NET 2005)
'リッチテキストのフォント設定
Dim richTextFont As New Font("MS 明朝", 12.0F, FontStyle.Bold)

'リッチテキスト内の範囲選択をする
RichTextBox1.SelectionStart = 0
RichTextBox1.SelectionLength = Me.TextBoxShopName.Text.Length

'選択したフォントを変更する
RichTextBox1.SelectionFont = richTextFont

 このサンプルでは、店名の長さを取得するためと背景色をつけるために、店名のみをDataFieldに設定したtextBoxShopNameというTextBoxを配置しています。

できあがりイメージ
できあがりイメージ

書式つき文字列にデータをバインドする

RichTextBoxコントロールでのデータバインド

 RichTextコントロールでは、テキスト内にデータフィールドの値をバインドして表示させることができます。リッチテキストコントロールをダブルクリックするとテキストの編集が可能ですが、そこで

(消費税 [!TaxAmt]円)

 のように記述すると、データフィールドの値をバインドすることができます。

RichTextBoxコントロールの編集イメージ
RichTextBoxコントロールの編集イメージ

 [! ]内はFieldsのカラム名を指定します([フィールドの追加]からも指定できます)。

 データソース(バウンドフィールド)の場合、はじめから値が入っていますが、自分で編集した値を組み込む場合は、前々回紹介したようにアンバウンドフィールドを作成(実行時にフィールドを追加)して使用してください。

RichText
RichText
RichText
RichText

TextBoxコントロールでのデータバインド

 TextBoxコントロールのOutputFormatプロパティには、書式文字列を指定できます。

TextBoxコントロールに書式文字列を設定する(1)(C# 2.0)
private void  detail_Format(object sender, EventArgs e)
{
  TextBoxDtilTaxAmt.OutputFormat = "\\(消費税 ###,###,##0\\円)";
}
TextBoxコントロールに書式文字列を設定する(1)(VB.NET 2005)
Private Sub Detail_Format( _
        ByVal sender As System.Object, _
        ByVal e As System.EventArgs) Handles Detail.Format

    TextBoxDtilTaxAmt.OutputFormat = "\\(消費税 ###,###,##0\\円)"
End Sub

 この例では書式を指定する(###,###,##0)の前後にも「消費税」や「円」などの文言が含まれています。金額の範囲が0以上であることが保証されていればこの方法でよいのですが、マイナスの値が入ってくると「-(消費税 3,000 円)」のように、書式の外側にマイナス記号が表示されてしまいます。

 このような場合はReportStartイベントでTextBoxコントロールのOutputFormatプロパティに書式のみを指定し、前後の文言はdetail_formatイベントで再設定することで、「(消費税 -3,000 円)」のように期待する結果を出力することができます。

TextBoxコントロールに書式文字列を設定する(2)(C# 2.0)
private void  NewActiveReport1_ReportStart(object sender, EventArgs e)
{
  TextBoxDtilTaxAmt.OutputFormat = "###,###,##0";

}
private void detail_Format(object sender, EventArgs e)
{
  TextBoxDtilTaxAmt.Text
     = "(消費税 " + TextBoxDtilTaxAmt.Text + "円)";
}
TextBoxコントロールに書式文字列を設定する(2)(VB.NET 2005)
Private Sub NewActiveReport1_ReportStart( _
        ByVal sender As System.Object, _
        ByVal e As System.EventArgs) Handles MyBase.ReportStart
  TextBoxDtilTaxAmt.OutputFormat = "###,###,##0"
End Sub

Private Sub Detail_Format( _
        ByVal sender As System.Object, _
        ByVal e As System.EventArgs) Handles Detail.Format
  TextBoxDtilTaxAmt.Text = _
            "(消費税 " + TextBoxDtilTaxAmt.Text + "円)"
End Sub

次のページ
ActiveReportsのプレビュー・印刷機能

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

  • X ポスト
  • このエントリーをはてなブックマークに追加
5分でわかるActiveReports帳票連載記事一覧

もっと読む

この記事の著者

宮本奈紗(ミヤモトナサ)

株式会社システムインテグレータ ERPソリューション部所属。ERPシステムの設計・開発に従事。業務でActiveReportsを使用。

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

渡辺俊史(ワタナベトシフミ)

株式会社システムインテグレータ パッケージ開発部所属。ECサイト構築パッケージの設計・開発に従事。VSUG(Visual Studio User Group) データベース・データアクセスフォーラムリーダー。blog...

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

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

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/1845 2014/02/06 11:25

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング