データベースチャートの新しい機能
データセットをロードした場合のより良い速度。
データベースチャートは、フィールドの値をアクセスするためにフィールドの変数を内部的に使用します。大きなデータセットをロードする場合、これらの改良によって高速になります。
サマリーグループ

サマリーは、デザイン時や実行時に設定できます。
DataSetからの全てのレコードは処理(レコードを制限するためにDataSetフィルター特性を使用することができます)され、そして希望のフィールド値は計算されます。
計算オプション:
和, 計算, 最大, 最小, 平均値。
グループ化にするためにDateTimeフィールドを使用する場合、結果を任意で以下のようにグループ化できます。:
時間、日、週、曜日、月、四半期、年
例:
ORDERSテーブルから「SaleDateのMonth毎にAmountPaidの和」のチャートを作成したい場合。

また、実行時でも以下のコードを設定することにより上記の処理が可能です。:
Series1.DataSource := Table1;
Series1.XLabelsSource := '#MONTH#SaleDate';
Series1.YValues.ValueSource := '#SUM#AmountPaid';
Series1.CheckDataSource;
ソート順
デフォルトにより、データベースチャートは、設定されている現在のDataSetのソート順(インデックスキーのフィールド)を使用します。このソート順は、系列値のOrderプロパティの設定を上書きすることができます。
例:
Series1.DataSource := Table1;
Series1.YValues.Order:=loAscending;
DBChart1.RefreshData;

レコードの位置付け
簡単なコードにより、DBChart系列は、各系列ポイントに関連したレコードを保持することができます。たとえば、系列ポイントがクリックされた場合にレコードを位置付けるために使用できます。
<DBChartのDataSetレコードに系列ポイントを設定するためのVCLコード>
1) まず最初に、BookMarkオブジェクトの配列を宣言してください。これは、DataSetの各ポイントのレコードを識別を保持するために使用されます。
BookMarks:Array of TBookMark;
2) 次に、そのブックマークを保持するためにSeriesの「OnAfterAdd」イベントを使用します。:
procedure TDBChartRecordLocate.Series1AfterAdd(Sender: TChartSeries; ValueIndex:
Integer);
begin
if Length(Bookmarks) < ValueIndex+1 then SetLength(Bookmarks,1+ValueIndex);
Bookmarks[ValueIndex]:=Table1.GetBookMark;
end;
3) そして、たとえばSeriesのクリックイベント上で選択されたレコードへ移動するためにブックマークを使用します。:
procedure TDBChartRecordLocate.DBChart1ClickSeries(Sender: TCustomChart; Series:
TChartSeries; ValueIndex: Integer; Button: TMouseButton; Shift: TShiftState; X, Y:
Integer);
begin
Table1.GotoBookmark(BookMarks[ValueIndex]);
end;
4)
フォームを終了する際に、ブックマークの配列を解放してください(メモリの解放)。:
procedure TDBChartRecordLocate.FormDestroy(Sender: TObject);
var t:Integer;
begin
for t:=Low(Bookmarks) to High(Bookmarks) do
Table1.FreeBookMark(Bookmarks[t]);
Bookmarks:=nil;
end;
MIDASの総計フィールド
MIDASのClientDataSetコンポーネントを使用する場合に「総計」として定義されたフィールドは、DBChart内でサポートされます。総計フィールドの数値はプロットされます。
メモ: MidasやClientDataSetサポートは、Delphi / C++ Enterpriseバージョンによみ適用します。
ADO サポート
ADOデータセットは、データベースチャートでサポートされています。
Copyright (C) NEWTONE Corporation. All
rights reserved. |