Imports System.Data.SqlClient Imports Infragistics.UltraChart.Shared.Events Imports Infragistics.UltraChart.Shared.Styles
このトピックは、 ドリルダウン チャートの作成(1/5)の続きです。
このフォームは、DataSource だけでなくエンド ユーザーがレベルからレベルに移動する時に必ず変更されるチャート タイプとフォーマット ラベルなどのその他のプロパティを持つひとつの WinChart で構成されます。
エンド ユーザーは Link Label を使用することによってレベルをナビゲートできます。エンド ユーザーがレベルからレベルに移動すると動的に変更します。Link Label はブレッドクラム ナビゲーション スタイルで表示されます。
このアプリケーションで実装される追加の UI 機能は、実際のエンティティ タイプだけでなく現在のレベルを示す 3 つの Label コントロールの使用です。エンド ユーザーがあるレベルに移動するときは常にそのレベルの Label コントロールは異なる色になります。これによってチャートの現在のデータはその特定のエンティティを表します。
Form の上側にあるひとつの標準的な Panel コントロールをドッキングして Form の下側にあるもうひとつの別個の Panel をドッキングすることによって、標準的な Label だけでなく Link Label が Form 上に配置されます。
一番上のパネル内に 3 つの Link Label を配置します。
一番下のパネル内に 3 つの Link Label を配置します。
各ラベルの AutoSize プロパティを True に設定します。
これが実行されて各ラベルのテキスト文字列が調整されると、コントロールのサイズがそれに応じて自動的に変更されるようになります。各ラベルは左手に向かってドッキングされます。テキスト文字列が変わるとラベルは常に正しくフォーマットされます。
コードの記述を開始する前にコードビハインドに使用/インポートのディレクティブを配置します。そうすれば、メンバーは完全に記述された名前を常にタイプする必要がなくなります。この例では、SqlClient 名前空間がインポートされます。データベースに接続しデータを取得するコマンドを実行するために SQL Server 固有のクラスが使用されるからです。 Visual Basic の場合:
Imports System.Data.SqlClient Imports Infragistics.UltraChart.Shared.Events Imports Infragistics.UltraChart.Shared.Styles
C# の場合:
using System.Data.SqlClient using Infragistics.UltraChart.Shared.Events using Infragistics.UltraChart.Shared.Styles
最大、最小、および現在のドリル レベルを設定します。
MAX_DRILL — 3
MIN_DRILL — 1
_currDrill — 1
Visual Basic の場合:
Private Const MAX_DRILL As Integer = 3 Private Const MIN_DRILL As Integer = 1 Private _currDrill As Integer = 1
C# の場合:
private const int MAX_DRILL = 3; private const int MIN_DRILL = 1; private int _currDrill = 1;
ドリルダウン/ドリルアップするには、現在のドリル レベルの変数を増分/減分します。 Visual Basic の場合:
Private Sub DrillDown() _currDrill += 1 If (_currDrill > MAX_DRILL) Then _currDrill = MAX_DRILL End Sub Private Sub DrillBack() _currDrill -= 1 If (_currDrill < MIN_DRILL) Then _currDrill = MIN_DRILL End Sub
C# の場合:
private void DrillDown() { _currDrill += 1; if (_currDrill > MAX_DRILL) _currDrill = MAX_DRILL; } private void DrillBack() { _currDrill -= 1; if (_currDrill < MIN_DRILL) _currDrill = MIN_DRILL; }