0

誰かが助けてくれることを願っています。VisualStudio2005ビジネスインテリジェンスプロジェクト内でDundasChartingfor ReportingServicesv2.2を使用しています。私がやろうとしているのは、シリーズの中心にあるポイントを拡張して、一方の側からもう一方の側までチャート領域全体にまたがるようにすることです。

したがって、シリーズの中央にマーカーを配置するのではなく(シリーズは折れ線グラフとして定義されていますが)、チャートの一方の端からもう一方の端までの線が必要です。

助けてください。

4

1 に答える 1

0

何度もいじくり回した後、問題の解決策を見つけました。結局、グラフの両側に2つのポイントを指定し、それらの間に線を引くことになりました。これは、[詳細]セクションにあるチャートの[ペイント後]イベントで実行されます。

また、トレンドラインのY軸定数を含むパラメーターをパラメーターセクションに追加しました。

解決策については、以下のコードを参照してください。

// Parameter: chartObj     - represents the chart object 
// Parameter: sender       - the chart object that will be painted
// Parameter: e            - arguments that contain the graphics object
// Parameter: codeParams   - user defined code parameters

double stripValue = Double.Parse(codeParams["Std"].ToString()); 

PointF p1 = new PointF(); 
p1.X = (float)chartObj.ChartAreas["Default"].AxisX.Minimum; 
p1.X = (float)chartObj.ChartAreas["Default"].AxisX.ValueToPixelPosition(p1.X); 

p1.Y = (float)chartObj.ChartAreas["Default"].AxisY.ValueToPixelPosition(stripValue); 


PointF p2 = new PointF(); 
p2.X = (float)chartObj.ChartAreas["Default"].AxisX.Maximum; 
p2.X = (float)chartObj.ChartAreas["Default"].AxisX.ValueToPixelPosition(p2.X); 

p2.Y = (float)chartObj.ChartAreas["Default"].AxisY.ValueToPixelPosition(stripValue); 


e.ChartGraphics.Graphics.DrawLine(new Pen(Color.FromArgb(255, 0, 0, 0), 1), p1, p2);
于 2011-08-03T13:15:59.487 に答える