概要
普段の実務でActiveReportsを使用していますが、なかなか生成AIを活用できていないため、本記事で検証してみました。
注意事項・免責事項
本記事について
- 本記事は個人の検証プロジェクトです
- ActiveReports試用版を使用しています
- 商用利用時は正式ライセンスが必要です
- メシウス社の公式見解ではありません
- あくまで個人的な試みであり、推奨される開発手法とは限りません
- 生成AIによる出力結果は必ず手動で確認してください
メシウス社について
本記事で使用しているActiveReportsは、株式会社メシウス(MESCIUS inc.)が開発・販売する優れた.NET帳票コンポーネントです。
公式サイト: https://developer.mescius.jp/activereports
より詳しい情報や正式な開発ガイドは、公式ドキュメントをご参照ください。
背景と課題
ActiveReportsのコントロール確認において、以下の課題がありました。
- Visual Studioのデザイナーで各コントロールを一つずつクリックして確認する必要がある
- コントロールのプロパティチェックに時間がかかり、確認作業の負担が大きい
開発環境
| 名称 | バージョン | 説明 |
|---|---|---|
| Windows | 10 | OS |
| Visual Studio | Community 2022 | ActiveReportsのプレビュー表示用 |
| VS Code | latest | 生成AI(Claude, GitHub Copilot)の利用 |
| .NET Framework | 4.8 | Windows Formsのフレームワーク |
アーキテクチャ図
GitHub Copilot利用時のフロー
従来のActiveReportを使う方法
導入手順
ActiveReportsのサンプルを用意
メシウス社が公開しているサンプルプロジェクトを使用します。
GitHub Copilotの設定
プロジェクトのルートディレクトリに以下のファイルを配置します。
.github/copilot-instructions.md
GitHub Copilotのカスタム指示ファイルです。ここでカスタムコマンド /getReportConrolList を定義します。
主要な設定内容(クリックで展開)
## カスタムコマンド
### /getReportConrolList
ActiveReports の .rdlx ファイルからコントロールリストを抽出し、一覧表示するコマンドです。
#### 使用方法
/getReportConrolList <帳票ファイル名.rdlx>
#### 機能
1. rdlxファイル解析
- 指定されたレポートファイルを読み込み
- 主要コントロール要素を抽出(TextBox, Table, Image, Line等)
- 各コントロールの属性情報を取得
2. 出力内容
- コントロール名、タイプ、位置、サイズ
- データバインディング(Value/式)
- スタイル情報(色、フォント等)
3. 出力形式
- Markdown表形式で整形
- `<ファイル名>_controllist.md` として自動保存
.github/activereports-design-guide.md
rdlxファイルの解析方法とActiveReportsの設計ガイドラインを記述します。
主要な内容(クリックで展開)
## rdlx解析のポイント
### 主要タグ
- <dd:Name>: 帳票名
- <DataSetName>: データソース
- <Top>, <Left>: 位置
- <Width>, <Height>: サイズ
- <Value>: 値/式
- <Style>: スタイル定義(背景色、文字色、フォント等)
### データフィールド
パターン: Fields!【FieldName】.Value
### 計算式
- Sum(): 集計
- IIF(): 条件分岐
- RowNumber(): 行番号
.github/report-design-template.md
生成される設計書のテンプレートです。このテンプレートに基づいてAIがコントロール情報を自動入力します。
実際にレビューを実行
レビュー対象
サンプルレポートには、テキストボックスやテーブルなどのコントロールが含まれています。
一部のコントロールは、フォント、背景色、高さなどがカスタム命令で規定したルールと異なる場合があります。
GitHub Copilotでコントロールリストを生成
/getReportConrolList ActiveReport/Report/Invoice_bluegray.rdlx
結果
GitHub Copilotが以下のような情報を自動的に抽出してMarkdown形式で出力してくれました。
主な出力内容:
- コントロール一覧(タイプ、位置、サイズ、データバインディング、スタイル情報)
- テーブル構造の詳細(ヘッダー行、詳細行の情報)
- 計算式の一覧
- カラーパレット
- データフィールド一覧
- レポート設定(用紙サイズ、余白など)
生成されたコントロールリストの一部(クリックで展開)
## コントロール一覧
| No | コントロール名 | タイプ | Top | Left | Width | Height | データバインディング/値 | スタイル概要 |
|----|---------------|--------|-----|------|-------|--------|------------------------|------------|
| 1 | TextBox1 | Textbox | 0.383667cm | 0cm | 6.299212in | 2.3495cm | 請求書 | 背景色:#697683, 文字色:#efedea, フォント:IPAゴシック 36pt, 中央揃え |
| 2 | TextBox2 | Textbox | 3.939666cm | 0cm | 6.7381cm | 0.75cm | =Fields!CustomerName.Value+" 御中" | 文字色:#505050, フォント:IPAゴシック 14pt, 下線:#697683 |
...(省略)...
## カラーパレット
| 色コード | 用途 |
|---------|------|
| #697683 | ヘッダー背景色, 線色, 枠線色 |
| #efedea | ヘッダー文字色 |
| #505050 | 本文文字色, 枠線色 |
| #E6E2DD | テーブル交互行背景色 |
生成されたコントロールリストの確認
以下の画像は生成されたコントロールリストの一部です。
コントロールの詳細情報が表形式で整理されており、確認しやすくなっています。
効果
導入の容易性
VS CodeとGitHub Copilotの環境があれば、すぐに試すことができます。
カスタム指示ファイルをプロジェクトのルールに合わせて作成するだけで利用可能です。
導入工数
ほぼゼロ。既存の環境にカスタム指示ファイルを配置するのみです。
削減効果
プロパティチェックにかかる時間:1回あたり約15分の削減(個人の検証環境での測定結果)
まとめと所感
生成AIとの親和性
ページレポート(.rdlx)はXML形式で記述されているため、生成AIとの親和性が高いです。ActiveReportsの過去のバージョンでも、同様の手法で生成AIを活用できる可能性があります。
今回の取り組みについて
今回はGitHub Copilotのカスタム指示機能を活用しましたが、Claudeのスラッシュコマンドなど、他の生成AIツールにも応用できると考えています。
留意点
生成AIによるコントロールリストの自動生成は、初期確認や一覧化の作業を大幅に効率化できます。ただし、生成AIは開発を支援する補助ツールとして位置づけ、最終的な品質確認はActiveReportsデザイナーでの確認と併用することを推奨します。
重要: 本記事で紹介した手法は、あくまで個人の検証プロジェクトでの試みです。実際のプロジェクトに適用する際は、組織のコーディング規約や品質基準に従い、十分なテストと確認を行ってください。
今後の展開
今後は以下のような取り組みを検討しています。
- 作成した帳票が共通設計ルールに準拠しているか自動レビューする仕組みの構築
- GitHub Copilot Agentモードを活用した、より高度な自動編集機能の実装
参考
ActiveReports公式リソース
製品ページ: https://developer.mescius.jp/activereports
公式ドキュメント: https://docs.mescius.jp/help/activereports-18/#overview.html
サンプル集: https://github.com/MESCIUSJP/ActiveReports-Invoice-Reports-Sample
技術ブログ: https://devlog.mescius.jp/category/activereports/
GitHub Copilot - カスタム指示


