SHOEISHA iD

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

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

現役エンジニア直伝! 「現場」で使えるコンポーネント活用術(ActiveReports)

コンポーネントの組み合わせで実現!
業務要件を満たす帳票アプリケーションの作り方

MultiRow + InputMan + ActiveReports = Windows業務アプリケーション

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

 今回は、MultiRow for Windows Forms 6.0J、InputMan for Windows Forms 6.0J、ActiveReports for .NET 6.0Jを組み合わせて、業務で現在使用している請求明細書をシステム化するというシナリオで、画面と帳票のイメージが近い業務アプリケーションを作成してみたいと思います。

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

画面と帳票のイメージが近い業務アプリケーションを作成

 業務アプリケーションの作成では、画面で入力した内容をそのまま帳票で印刷するなど、画面と帳票が密接に結びついている場合が多々あります。このようなケースに多い要望が、帳票と同じイメージの画面レイアウトです。

 そこで今回は、MultiRow for Windows Forms 6.0J、InputMan for Windows Forms 6.0J、ActiveReports for .NET 6.0Jを組み合わせて、業務で現在使用している請求明細書をシステム化するというシナリオで、画面と帳票のイメージが近い業務アプリケーションを作成してみたいと思います。

 なお、今回のサンプルソースには、下記の3つのサンプルが含まれています。

  • CZ0905Bound
  • CZ0912Bound
  • CZ0912MultiRow

帳票を作成する

 画面と帳票のどちらを先に作成するかはケースバイケースなのですが、画面よりも帳票の方が最終成果物としてのコダワリのあるクライアントが多く、そのようなクライアントの場合は帳票デザインから先に固めてしまうのがよいでしょう。今回も、帳票デザインを最初に確定するためにActiveReports for .NET 6.0Jで帳票を作成することになったと想定して進めていきます。

ActiveReports for .NET 6.0Jの新機能でより紙に近いデザインを実現する

 以前紹介した3.0Jも帳票印刷に必要なさまざまな機能を備えていましたが、最新バージョンである6.0Jでは、さらにその機能が洗練され使いやすくなっています。

 例えば、明細行が1ページあたり30行のデザインを作成した場合に4行しかデータがないと、図1左のように外側の枠線も4行分で終わってしまいますが、6.0Jでは図1右のように外側の枠線は常に30行分の大きさで引くといったことが可能です(サンプル「CZ0912Bound」)。

図1 ActiveReports for .NET 3.0Jと6.0Jの比較
図1 ActiveReports for .NET 3.0Jと6.0Jの比較

 6.0Jではこのような枠線を引くために、CrossSectionBoxとCrossSectionLineという2つのコントロールが追加されています。このコントロールを使うことで、ページヘッダからページフッタまでをまたがって罫線が引けるため、明細行の実データ行数に左右されない印字が可能になっています。

図2 CrossSectionBoxの使用例
図2 CrossSectionBoxの使用例

参照設定を行う

 新規にWindowsアプリケーションのプロジェクトを作成してActiveReports for .NET 6.0Jを使用する場合には、プロジェクトに参照設定を追加します。また、ActiveReports for .NET 3.0Jで作成したプロジェクトを6.0Jで流用するためには3.0Jと6.0Jでは名前空間(「DataDynamics.ActiveReports.ActiveReport3」→「DataDynamics.ActiveReports.ActiveReport」)などが異なるため参照設定をやりなおす必要があります。参照設定は次の手順で行います。

  1. Visual Studioでプロジェクトを開いたら、ソリューションエクスプローラで[参照の追加]をクリックして「参照の追加ダイアログボックス」を表示します。
  2. ダイアログボックスでActiveReports for .NET 6.0Jを使うときの必須コンポーネントである「GrapeCity ActiveReports Document」「GrapeCity ActiveReports for .NET」および「GrapeCity ActiveReports Viewer」を選択して[OK]ボタンをクリックします。
図3 「GrapeCity ActiveReports Document」「GrapeCity ActiveReports for .NET」「GrapeCity ActiveReports Viewer」を追加
図3 「GrapeCity ActiveReports Document」「GrapeCity ActiveReports for .NET」「GrapeCity ActiveReports Viewer」を追加
コラム:ActiveReportsのレポートデザイナで素早く罫線を選択するには

 帳票をデザインしていると罫線と他のコントロールが重なることが多く、ActiveReportsでも下側のコントロールが選択しづらいときがよくあります。このような時は、[表示]-[その他のウィンドウ]-[ActiveReports 6.0Jレポートエクスプローラ]メニューをクリックしてレポートエクスプローラを起動すれば、ツリー表示から目的のコントロールを素早く確実に選択できます。

図4 レポートエクスプローラを起動することで、素早いコントロール選択が可能に
図4 レポートエクスプローラを起動することで、素早いコントロール選択が可能に

データ取得と印刷のコーディング

 サンプル「CZ0912Bound」は、以前の記事でのサンプル「CZ0905Bound」に対して参照設定と名前空間の変更を行い、帳票定義体もCrossSectionBoxコントロールとCrossSectionLineコントロールに変更したサンプルになります。コードの詳しい説明は前回の記事と重複するため割愛しますが、データセットをActiveReportsで印刷するにはリスト1のようなコードを記述します。

リスト1 CZ0912Bound_Form.vb
Public Class CZ0912Bound_Form
    Private Sub Me_Shown(ByVal sender As Object, _
                            ByVal e As System.EventArgs) Handles Me.Shown
        Dim rpt As New Seikyu_Report()

        Application.DoEvents()
        Using _prco As New CZ0912Bound
            rpt.DataSource = _prco.GetRecords("admin", "").Tables(0)
            Viewer1.Document = rpt.Document
            rpt.Run()
        End Using
    End Sub
End Class

次のページ
画面を作成する

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

  • X ポスト
  • このエントリーをはてなブックマークに追加
現役エンジニア直伝! 「現場」で使えるコンポーネント活用術(ActiveReports)連載記事一覧

もっと読む

この記事の著者

初音玲(ハツネアキラ)

 国内SIerのSEでパッケージ製品開発を主に行っており、最近は、空間認識や音声認識などを応用した製品を手掛けています。 個人的には、仕事の内容をさらに拡張したHoloLensなどのMRを中心に活動しています。 Microsoft MVP for Windows Development ブログ:http://hatsune.hatenablog.jp/

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

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

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/4757 2009/12/28 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング