Graphique Silverlight Telerik Sortie de date inattendue pour les étiquettes de l'axe X

StackOverflow https://stackoverflow.com/questions/8400882

  •  28-10-2019
  •  | 
  •  

Question

Je lie donc une liste d'objets métier personnalisés à un graphique Rad, pour cet exemple, un aperçu des revenus mensuels pour un an. Les dates que je définis pour le libellé de l'axe X ne sont pas du tout représentées comme je les ai définies.

Voici mon code de base, vous pouvez voir qui obtient une liste d'objets monthLedger pour une année donnée. L'objet monthLedger a des propriétés différentes, mais les principales pour ce scénario sont monthLedger.Full_date et monthLedger.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);

Voici les données que j'obtiendrais dans la liste pour 2011 (Full_Date || Revenue_Amount):

  • {01/01/2011 00:00:00} || 0,00
  • {01/02/2011 00:00:00} || 0,00
  • {01/03/2011 00:00:00} || 0,00
  • {01/04/2011 00:00:00} || 0,00
  • {01/05/2011 00:00:00} || 0,00
  • {01/06/2011 00:00:00} || 0,00
  • {01/07/2011 00:00:00} || 0,00
  • {01/08/2011 00:00:00} || 0,00
  • {01/09/2011 00:00:00} || 0,00
  • {01/10/2011 00:00:00} || 0,00
  • {01/11/2011 00:00:00} || 246,50
  • {01/12/2011 00:00:00} || 311,60

Ce que je m'attends à obtenir est un joli graphique de 12 mois, mais 13 colonnes finissent par être représentées et les dates étiquetées ne sont pas du tout les mêmes que celles que j'ai converties en OLE Automation Date.

J'ai joint une capture d'écran du résultat graphique: entrez la description de l'image ici

Qu'est-ce que je fais de mal?

Était-ce utile?

La solution

Comme je peux le voir sur votre image, le graphique trace les barres avec un pas de 30 jours.Cela est dû à la plage automatique du XAxis.Étant donné que le graphique ne peut pas définir une étape ponctuelle de 1 mois (le mois a un nombre de jours différent), le XAxis a automatiquement défini que 30 jours est le plus approprié. La définition d'une plage manuelle ne vous aidera pas donc je vous suggère d'utiliser une XCategory au lieu 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
            }); 
   } 

Vous pouvez supprimer ceci - radChart1.DefaultView.ChartArea.AxisX.IsDateTime= true; car il n'est plus nécessaire.

Salutations, Evgenia

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top