Pregunta

Así que estoy vinculando una lista de objetos comerciales personalizados a un gráfico RAD, para este caso, una descripción general de los ingresos mensuales durante un año. Las fechas que estoy configurando para la etiqueta del eje X no se representan como lo que las he establecido.

Aquí está mi código básico, puede ver que obtenga una lista de mensajero objetos para un año determinado. los mensajero El objeto tiene diferentes propiedades, pero las principales para este escenario son Monthledger.full_date y Messledger.Revenue_AMont.

List<monthLedger> year = getYearRevenueByMonth(2011);

DataSeries ser = new DataSeries();

foreach(monthLedger month in year)
{
    ser.Add(new DataPoint 
            { 
                YValue = Convert.ToDouble(month.Revenue_Amount), 
                Label = month.Revenue_Amount.ToString("0.00###"), 
                XValue = month.Full_Date.ToOADate()
            });
}


radChart1.DefaultView.ChartArea.AxisX.IsDateTime = true;
radChart1.DefaultView.ChartArea.AxisX.AutoRange = true;
radChart1.DefaultView.ChartArea.AxisX.DefaultLabelFormat = "dd-MMM";
radChart1.DefaultView.ChartArea.DataSeries.Add(ser);

Aquí están los datos que obtendría en la lista para 2011 (Full_Date || Ingress_amount):

  • {01/01/2011 12:00:00 AM} || 0.00
  • {01/02/2011 12:00:00 AM} || 0.00
  • {01/03/2011 12:00:00 AM} || 0.00
  • {01/04/2011 12:00:00 AM} || 0.00
  • {01/05/2011 12:00:00 AM} || 0.00
  • {01/06/2011 12:00:00 AM} || 0.00
  • {01/07/2011 12:00:00 AM} || 0.00
  • {01/08/2011 12:00:00 AM} || 0.00
  • {01/09/2011 12:00:00 AM} || 0.00
  • {10/01/2011 12:00:00 AM} || 0.00
  • {11/01/2011 12:00:00 AM} || 246.50
  • {12/01/2011 12:00:00 AM} || 311.60

Lo que espero obtener es un buen gráfico con 12 meses, pero 13 columnas terminan siendo gráficas y las fechas etiquetadas no son las mismas que las que he convertido en la fecha de automatización de OLE.

He adjuntado una captura de pantalla del resultado gráfico:enter image description here

¿Qué estoy haciendo mal?

¿Fue útil?

Solución

Como puedo ver en su imagen, el gráfico traza las barras con un paso de 30 días. Esto es causado por el rango automático del xaxis. Dado que la tabla no puede definir un paso puntual de 1 mes (los meses tienen diferentes días), el xaxis definió automáticamente que 30 días es el más apropiado. Establecer una gama manual no te ayudará, así que le sugiero que use una XCategory en lugar de XValue:

foreach(monthLedger month in year) 
   { 
    ser.Add(new DataPoint  
            {  
                YValue = Convert.ToDouble(month.Revenue_Amount),  
                Label = month.Revenue_Amount.ToString("0.00###"),  
                XCategory = month.Full_Date
            }); 
   } 

Puede eliminar esto - Radchart1.defaultview.chartarea.axisx.isdateTime = true; ya que ya no es necesario.

Saludos, Evgenia

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top