SHOEISHA iD

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

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

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

ActiveReportsでExcel方眼紙や紙の帳票を帳票システムへ移行しよう

ActiveReportsの新機能を活用して一歩進んだ帳票を作成しよう 第1回

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

CSVファイルから報告書テキストを読み込もう(2)

CSVファイルを設定する

 ActiveReportsへのデータソース(データの供給元)の指定は、「ActiveReports レポートエクスプローラ」で行います。

図10 ActiveReportsレポートエクスプローラの起動
図10 ActiveReportsレポートエクスプローラの起動

 [ActiveReportsレポートエクスプローラ]ウィンドウが開いたら、[データソース]を右クリックして追加を選びます。

 今回はCSVファイルからデータを読み込むので、CSVデータソースを選択して、ファイルパスにCSVファイルを指定してあげるとファイルの内容がすぐにプレビューで確認できます。ヘッダの有無や、デリミタなどの設定もダイアログから選ぶだけで変更できるので、簡単にさまざまな形式のCSVに対応できます。

図11 CSVデータソースの設定
図11 CSVデータソースの設定

 設定が正しければデータソースの中にデータセットが自動的に追加されて、CSVの項目名も自動設定されます。

図12 自動生成されたデータセット
図12 自動生成されたデータセット

CSVの項目と帳票定義項目を紐付ける

 CSVファイルの内容を読み込めるようになったら、帳票定義体上の項目とCSVの項目を結びつけます。印字領域に合わせてTextBoxを配置して、Valueプロパティにドロップダウンリストから項目を選択します。ここで式を指定してファイル内容を変換して印字することも可能です。

図13 プロパティの設定
図13 プロパティの設定

印字プレビューの確認

 ActiveReportsは、プログラムを実行しなくてもデザイナのプレビュー機能により、実際にCSVファイルの値を読み込んで印字イメージを確認できます。

図14 印字プレビューの確認
図14 印字プレビューの確認

プログラムコードの作成

 開発環境での動作であれば、「ActiveReports 11.0J RDLレポートアプリケーション」より新規プロジェクトを作った場合は、自動生成されたコードのrdlxファイル名の修正だけで動作させることができます。

private void Form1_Load(object sender, EventArgs e)
{
    viewer1.LoadDocument(Application.StartupPath + @".\Sheet2.rdlx");
}

 しかし、このままでは帳票定義体の中に絶対パスでCSVファイル名が定義されているため、実行時もCSVファイルが開発環境で指定した場所と同じ場所になければなりません。

 そこでアプリからCSVファイルの場所を指定できるようにします。

 このサンプルではApplication.StartupPathにCSVファイルを配置する前提でコードを作成します。まず、ソリューションエクスプローラでCSVファイルをプロジェクトに追加し、そのプロパティで「常にコピーする」にしておきます。

 準備が整ったら次のようにコードを修正します。

private void Form1_Load(object sender, EventArgs e)
{
    var rptPath = new System.IO.FileInfo(Application.StartupPath + @".\Sheet2.rdlx");
    var rpt = new GrapeCity.ActiveReports.PageReport(rptPath);

    rpt.Report.DataSources[0].ConnectionProperties.ConnectString = "Path=" + Application.StartupPath + ".\\\\Data.csv;Encoding=shift_jis;Locale=ja-JP;TextQualifier=\";ColumnsSeparator=,;RowsSeparator=\\r\\n;HasHeaders=True";

    var runtime = new GrapeCity.ActiveReports.Document.PageDocument(rpt);
    viewer1.LoadDocument(runtime);
}

 このようにデータソースの中のConnectionStringの内容を変更することで読み込むCSVファイルを変更できます。

アプリの実行

 コードが完成したらさっそく実行して確認してみます。ここまでの手順が正しければ、プレビューと同じ内容が画面に表示されます。

図15 実行結果
図15 実行結果

次のページ
そもそもExcel方眼紙でつくられた帳票ファイルがなかったら?

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

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

もっと読む

この記事の著者

初音玲(ハツネアキラ)

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

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

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

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

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/10409 2018/02/02 15:47

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング