クリスタルレポートのグラフ
を作ってみます。
色がでているグラフになると、なんだか本格的ですが、とても簡単。
まずは、いつものデータを取る所。
47都道府県は表示しきれないので、TOP20を取ってきます。
また、今までのサンプルをつぶすのはもったいないので、CrystalReport2を新たに追加。
ここまで出来れば、count_graph.xsdを出力しておきます。
Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click 'グラフ 'MYSQLからデータを読み出す Dim cnstr As String cnstr = "Database=test;Data Source=centos5vm;User Id=vbuser;Password=sa" Dim con As New MySql.Data.MySqlClient.MySqlConnection(cnstr) Try con.Open() Dim sql As String = "SELECT pref,count(*) as post_count FROM KEN_ALL GROUP BY pref ORDER BY count(*) desc limit 20" Dim Cmd As New MySqlCommand(sql, con) Dim myAd As New MySqlDataAdapter Dim dts As New DataSet myAd.SelectCommand = Cmd 'データテーブルに取得 myAd.Fill(dt) 'xsdファイルを保存します。 'DB ---→ xsd ----→ クリスタルレポート 'というデータの流れになります 'dt.WriteXmlSchema("count_graph.xsd") 'プロジェクトに追加したクリスタルレポートオブジェクトを参照 Dim rpt As New CrystalReport2 'デーソースにデータセットを rpt.SetDataSource(dt) 'ビュワーにレポートをセット CrystalReportViewer1.ReportSource = rpt Catch ex As Exception Debug.Print(ex.Message.ToString) MessageBox.Show(ex.Message.ToString) End Try con.Clone() con.Dispose() MessageBox.Show("終了") End Sub |
次は、デザインです。
グラフの挿入を行います。
レポートヘッダ、レポートフッタにしか挿入できないようです。
アンダーレイ機能を使うといろいろできそうですが、今回はヘッダに挿入。
タイトルを設定します。
先ほどのメニューで一般を選択すると
グラフの外観の操作が出来ます。
チャートエキスパートでは、いろんな設定ができます。
グラフの種類が選べます。
横軸と縦軸を選択します。
「変更時」はランダム?な並びに。
「レコードごとに」はSQLの順番になるようです。
「全てのレコード」は、縦軸の合計のようです。
今回は、「レコードごとに」に設定。
北海道が多いですね。
次は愛知。
郵便番号の一番少ない所は?
香川県らしいです。
本当かな???
以上クリスタルレポートのグラフの使い方でした。