私たちのチャートを描くためにdotNETCHARTINGを使用していますが、彼らはSeriesCollection
のためにSeries
を受け入れています。これは私が取り組んでいる新しいチャートです。以前のものはすべて、示された値と抽出された値の1対1の関係にあります。今私は12:12の値のリストとして示す値のリストを持っています。私はOne SeriesからTwo Seriesに移行する必要があります
私は現在、実際のデータと過去12ヶ月間の予算を表示していますが、Series
のデータは2 Series
です。私はデータをソートし、必要に応じてリストしました。
制限事項:.NET 3.5(VS2008)、dotNETCHARTING。
毎月12枚のSQLを作成し、予算に合わせて12枚のSQLを作成しなければならないと、非常に悲しい解決策になります。私が必要としていないものから、各リストを別々に分ける方法を見つけるとすぐにSeries
。
各モジュールにはList<ModuleValue>
がありますが、私はDictionary<int, List<ModuleValue>>
で試してみましたので、各シリーズの値(12か月)に別々のリストを持たせることができました。
私はそれぞれの値のリストに対して、リストの各値をSeries
に追加しました。リストの値がなくなるまで繰り返します。 (Foreach
:Foreach
)
私の質問は、誰でも私に可能な解決策の指針を教えてもらえますか?以下のグラフは、1つの列が並んでいない場合、同じ時間枠(月)で開始し終了した場合、正しいと言います。たとえば1月の予算と1月の実際の予算を比べると、私はdotNETCHARTINGモジュールについて質問しているわけではありません。私は、この中間に、モジュールにデータをどのように送り込むかを尋ねています。
メインロジックボディ:
protected override void CreateChildControls() { base.CreateChildControls(); //_chart.Type = ChartType.Combo; _chart.DefaultSeries.Type = SeriesType.Line; // Up for change - between here IList listSeries = new List(); listSeries.Add(GetSeries(_module)); // This line should be listSeries = GetMultipleSeries(_module); or to that effect. foreach (var series in listSeries) { _chart.SeriesCollection.Add(series); } // Up for change - and here // This shows the title above the chart: _chart.Title = _module.Title; // This shows the title below the chart: //_chart.XAxis.Label = new Label(_module.Title); _chart.TitleBox.Line.Color = Charter.BackgroundColor; base.SetAreaStyles(); base.SetLinkUrl(_module.LinkUrl); }
このロジックは、古いロジックで、あるとして残るべき - 他のすべてのチャートは、それに依存しているため。 参照点として使用できます。このロジックがロックされていると考えてください
これは新しいLogicであり、必要なロジックを反映するように変更する必要があります。これは自由であると考えてください。
protected List GetMultipleSeries(FrontModule module) { List listSeries = new List(); Series series = new Series(module.Title); foreach (var keyPair in module.DictionaryValues) { string sFieldTitle = keyPair.Value.Text; Element element = new Element(sFieldTitle, keyPair.Value.Value); element.Color = Charter.GetColor(keyPair.Value.ColorIndex); series.Elements.Add(element); string sToolTip = string.Format ("{0}: {1:N0}" , keyPair.Value.Tooltip , keyPair.Value.Value); element.ToolTip = sToolTip; if (!string.IsNullOrEmpty(keyPair.Value.LinkUrl)) { element.URL = Page.ResolveUrl(keyPair.Value.LinkUrl); } ChartTooltip += string.Concat(sToolTip, ", "); } listSeries.Add(series); ChartTooltip += "\n"; return listSeries; }
これは続編行のデータを一覧表示する、すべきではない方法です。それはそれがすべての必要なデータを持っていることを示しています。
あなたが追加できるものはありがたいです。ありがとうございました。
オハイオ州には何かがあります。私はそれをテストさせてください。乾杯。 – DoStuffZ
YES ... I LOVE U MAN ..;) – DoStuffZ
@DoStuffZ:私は助けてくれると嬉しいです。 –