Создание нескольких гистограмм с помощью C# и dundas
Привет, ребята. У меня проблемы с добавлением гистограмм в мой код. Что мне нужно сделать, так это из круговой диаграммы сделать гистограмму для каждой фигуры. К сожалению, мне трудно это делать. Основная цель, которую я пытаюсь сделать, - это создать отдельную подробную гистограмму на основе GroupName. Это мой код C#:
void StartReport10()
{
Chart c = Chart11;
string str = ConfigurationManager.ConnectionStrings["SLRC_debug"].ConnectionString;
SqlConnection con = new SqlConnection(str);
SqlDataAdapter da = new SqlDataAdapter("sp_SLRC_GetReport_MajorAndMinorCauseCategories", con);
da.SelectCommand.CommandType = CommandType.StoredProcedure;
da.SelectCommand.CommandTimeout = 60; //(1 minute)
da.SelectCommand.Parameters.Add(new SqlParameter("@rtype", SqlDbType.Int)).Value = Timeline10.RangeTypeIndex;
da.SelectCommand.Parameters.Add(new SqlParameter("@y1", SqlDbType.Int)).Value = Convert.ToInt32(Timeline10.FYFrom);
da.SelectCommand.Parameters.Add(new SqlParameter("@r1", SqlDbType.Int)).Value = Convert.ToInt32(Timeline10.RangeFrom);
da.SelectCommand.Parameters.Add(new SqlParameter("@y2", SqlDbType.Int)).Value = Convert.ToInt32(Timeline10.FYTo);
da.SelectCommand.Parameters.Add(new SqlParameter("@r2", SqlDbType.Int)).Value = Convert.ToInt32(Timeline10.RangeTo);
int top = Int32.Parse(tbTop1.Text);
da.SelectCommand.Parameters.Add(new SqlParameter("@top", SqlDbType.Int)).Value = top;
da.SelectCommand.Parameters.Add(new SqlParameter("@MROProjFilter", SqlDbType.VarChar)).Value = MROProjReport3.GetSelectedMROProjFilter;
da.SelectCommand.Parameters.Add(new SqlParameter("@TradeIntercoFilter", SqlDbType.VarChar)).Value = TradeInterco3.GetSelectedIntercoTradeFilter;
if (CustomerFilter2.IsEnabled && CustomerFilter2.IsValid)
{
string a = CustomerFilter2.GetStrSelection;
da.SelectCommand.Parameters.Add(new SqlParameter("@str", SqlDbType.VarChar)).Value = a;
}
DataSet ds = new DataSet();
da.Fill(ds);
ds.Tables["Table"].TableName = "Table_for_Major";
ds.Tables["Table1"].TableName = "Table_for_Detailed";
c.DataSource = ds.Tables["Table_for_Major"];
c.Series.Clear();
c.Series.Add("Default");
c.Series[0].ValueMemberX = "GroupName : %";
c.Series[0].ValueMembersY = "% of Total LineCount";
c.Series[0].Type = SeriesChartType.Pie;
c.Series[0]["PieLabelStyle"] = "Inside";
c.Series[0]["PieDrawingStyle"] = "SoftEdge";
c.Series[0].ShowInLegend = false;
c.DataBind();
//Chart Title
c.Palette = ChartColorPalette.Dundas;
c.Titles.Clear();
c.Titles.Add("PDSL Major & Minor Cause Categories");
c.Titles[0].Font = new Font("Arial", 14, FontStyle.Bold);
c.Titles.Add(Timeline10.FYRangeFrom + " - " + Timeline10.FYRangeTo);
c.Titles[1].Font = new Font("Arial", 8, FontStyle.Regular);
c.ChartAreas[0].Area3DStyle.Enable3D = true;
c.ChartAreas[0].Area3DStyle.XAngle = 5;
1 ответ
Я нашел этот список необходимых шагов для создания диаграммы:
Основные шаги:
- Инициализируйте элемент управления Chart. Определите любые нестандартные свойства.
- Инициализируйте ChartArea. Определите любые нестандартные свойства. Каждая область ChartArea имеет коллекцию Axis (X,Y и X2,Y2), поэтому при необходимости обязательно установите эти свойства.
- Инициализируйте серии, которые будут отображаться на графике. Без Серии нет точек отображения для отображения, поэтому обязательно создайте хотя бы одну.
- По желанию, создать легенду.
- Добавьте DataPoints к серии.
- Добавьте элементы ChartArea, Series и Legend в Chart.
- Добавьте элемент управления Chart к элементу страницы.
И вот ссылка на полную страницу с примером (Dundas).
Вы можете создать отдельную диаграмму (-объекты) или попробовать добавить новую ChartArea в существующую диаграмму и установить Series["barchart"].ChartArea = "ChartArea2"
разрешить разные типы диаграмм в одном и том же объекте диаграммы.