Domanda

Quindi sto vincendo un elenco di oggetti aziendali personalizzati a un grafico RAD, per questo istanza, una panoramica delle entrate mensili per un anno. Le date che sto impostando per l'etichetta dell'asse X non sono rese come ciò che le ho imposta.

Ecco il mio codice di base, puoi vedere che ottenere un elenco di Monthledger oggetti per un determinato anno. Il Monthledger L'oggetto ha proprietà diverse, ma quelle principali per questo scenario sono Montledger.full_date e MITHLEDGER.REVENUE_AMOUNT.

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);

Ecco i dati che avrei ottenuto nell'elenco per il 2011 (Full_Date || Revenue_Amount):

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

Quello che mi aspetto di ottenere è un bel grafico con 12 mesi, ma 13 colonne finiscono per essere graficamente e le date etichettate non sono affatto uguali a quelle che ho convertito in data di automazione OLE.

Ho allegato uno screenshot del risultato grafico:enter image description here

Che cosa sto facendo di sbagliato?

È stato utile?

Soluzione

Come posso vedere dalla tua immagine, il grafico traccia le barre con il passaggio di 30 giorni. Ciò è causato dall'intervallo automatico della xaxis. Poiché il grafico non può definire un passaggio puntuale di 1 mese (i mesi hanno un numero diverso di giorni), lo xaxis ha definito automaticamente che 30 giorni sono i più appropriati. Impostazione di una gamma manuale non ti aiuterà, quindi ti suggerisco di utilizzare una categoria X anziché 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
            }); 
   } 

È possibile rimuoverlo - RadChart1.DefaultView.Chartarea.axisx.isdatetime = true; poiché non è più necessario.

Saluti, Evgenia

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top