我們使用dotNETCHARTING來描繪我們的圖表,他們接受Series
爲他們的SeriesCollection
。這是我正在處理的一個新圖表,所有以前的圖表都顯示值與提取值之間存在1:1的關係。現在我有一個值列表,顯示爲值列表12:12。我需要從一個系列移動到兩個系列
我目前有我的2列數據顯示(實際與預算過去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月份的實際值相比,我並不是在詢問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); }
這種邏輯是舊的邏輯,應該保持原樣 - 因爲所有其他圖表依靠它。 可以作爲參考。考慮鎖定這個邏輯。
protected Series GetSeries(FrontModule module) { Series series = new Series(module.Title); foreach (var value in module.Values) { string sFieldTitle = value.Text; Element element = new Element(sFieldTitle, value.Value); element.Color = Charter.GetColor(value.ColorIndex); series.Elements.Add(element); string sToolTip = string.Format ("{0}: {1:N0}" , value.Tooltip , value.Value); element.ToolTip = sToolTip; if (!string.IsNullOrEmpty(value.LinkUrl)) { element.URL = Page.ResolveUrl(value.LinkUrl); } ChartTooltip += string.Concat(sToolTip, ", "); } ChartTooltip += "\n"; return series; }
這是新的邏輯,應該改變以反映所需的邏輯。考慮這是免費的。
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; }
這是應該不應該,在sequal線列表數據。雖然它顯示它具有所有必需的數據。
我很感激你可以添加任何東西。謝謝。
哦,你在那裏說些什麼。讓我測試一下。乾杯。 – DoStuffZ 2010-11-22 13:17:08
是的...我愛你......;) – DoStuffZ 2010-11-22 13:27:55
@DoStuffZ:很高興能幫到你。 – 2010-11-22 13:48:53