「プロジェクト」 - 「新しい項目の追加」より
クリスタルレポートを追加。
名前は、「HiraCryRepo1.rpt」にした。
てきとーでいいが、これが後でClass名になる。
便利そうな自動機能があるが、人に勝手なことをされると嫌がる性格なので、
「空のリポートを作成」を選択。
こんな雰囲気の画面になる。
レポートヘッダーとかページヘッダーとか意味わからんが
レポートヘッダー | 最初に一回だけ出る |
ページヘッダー | 各ページの最初に毎回登場 |
詳細 | データ1行ごとに1回出る、感じ |
レポートフッター | 最後に一回だけ出る ページフッターよりは上 |
ページフッター | 各ページの最後に毎回登場 |
なんとなく具体的にイメージすると、
レポートヘッダー | はしがきや目次 |
ページヘッダー | 各ページの上にある章のタイトル等のヘッダー |
詳細 | 本文 |
レポートフッター | 作者あとがき |
ページフッター | 各ページの下に出ているページ番号とか |
を右クリックしてメニューを出し、
「データベースの追加/削除」を選択
どのメニューにもいえることだが、一番上の「データベースフィールド」というのは選択しても何も起きない。
ただの、メニュータイトルのようだ・・・。
こんな画面になるので、
「その他のデータソース」 - 「ADO.NET (XML)」の横の「+」をクリック
こんな感じの画面が出るので、「Visual Studioデータクラスを使用」をチェックし、先ほど作ったオリジナルのデータセットを選択する。
ここで、あるはずなのに、表示されないことがよくあるが、謎である。
しばらく待っていると出てきたり、よくわからん。
どうも、うまく出ないときは、全部保存して、再起動するといけるようだ。
一度失敗してから再起動するのがいいという噂もある。
なんじゃそら。
完了を押すと、このように、さっき作った「Table1」が見えている。
いい感じだ。
後は、右側に持っていくと完成。
さっき作成したテーブルのカラムばっちり見えている。
いい感じ。
ドラッグすると貼り付けられる。 とりあえず、今回は「レポートヘッダー」に貼り付けることにした。
こんな感じ。
1度使ったカラムは、こんな感じにマークが付く。
Formに「CrystalReportViewer」を貼り付ける。 (さっきのままだと、DataGridがじゃまなので、DockのFillをやめるとか、それはてきとーに。)
こんな感じで並べてみた。
Anchorを設定しておくと、何かと幸せ。
コードはこんな感じで追加
HiraCryRepo1 cr = new HiraCryRepo1(); crystalReportViewer1.ReportSource = cr;さっきのクリスタルレポートはHiraCryRepo1クラスになっているので、インスタンス化して、CrystalReportViewerの「ReportSource」に設定するだけ。
さて、実行してみると、
あれれ。おかしなことを聞いてくるぞ。
そう、さっきクリスタルレポートで設定したデータセット「HiraDataSet」はあくまで、ガワだけで中身がないのだ。
データセットの中身(HiraDaraSetのインスタンス)をクリスタルレポートに渡してやらないといけない。
ま、わかりやすいわな。
こんな感じ。
cr.SetDataSource(ds);CrystalReportViewerに渡す前に書いた方がいいみたい。 ま、簡単やね。
いい感じで出てます。
ひらちゃんのページ |