如何获取Telerik报告图表以按日期和格式对该x轴进行排序?

时间:2016-05-05 16:31:57

标签: telerik telerik-mvc telerik-reporting

我有一张带有图表的Telerik报告。图的x轴是一系列日期。我们的客户希望这些日期按照从最旧到最近的顺序排列。他们还希望格式化的日期不包括日期的时间部分。过去的一天我试过让它发挥作用,无法弄明白。有人可以解释一下如何做到这一点吗?

我开始使用基于此查询的图表:

SELECT AnalysisNumber
    , convert(varchar, DateSampled, 01) as DateSampled
    , ViscosityAt100C
FROM tblSample
ORDER BY a.DateSampled ASC

从最旧到最近的顺序,结果看起来是正确的: enter image description here

但会生成一个图表,其中日期不按顺序排列:

enter image description here

我无法开始包含图表的所有设置,但我认为这是相关部分。让我知道是否还有其他东西可以告诉你。

enter image description here

请注意,排序是通过DateSampled进行的,当然,现在文本不是日期。

如果我删除了那个排序(试图保留SQL查询中的原始排序),图表将不再起作用:

enter image description here

所以我尝试使用日期而不是文本。查询现在是这样的:

SELECT AnalysisNumber
    , DateSampled
    , ViscosityAt100C
FROM tblSample
ORDER BY a.DateSampled ASC

...输出看起来一样:

enter image description here

,图表如下所示:

enter image description here

日期按照我想要的方式排序,但所有日期都有一个我不想要的时间元素,因为它不相关,而且占用的空间太大。

我尝试在SQL中更改类型:

Cast(DateSampled as Date) as DateSampled

但它仍然在图表中显示时间。

我尝试使用x轴的属性对其进行格式化:

enter image description here

但它没有改变日期的格式。实际上,更改为该属性中的任何格式都没有改变任何内容。

最后,我尝试在查询中包含字符串和日期:

SELECT AnalysisNumber
    , convert(date, DateSampled) as DateSampledText
    , DateSampled
    , ViscosityAt100C
FROM tblSample
ORDER BY a.DateSampled ASC

并使用DateSampledText进行分组,使用DateSampled进行排序:

enter image description here

它再次破坏了我的图表:

enter image description here

我尝试将文字版本添加到排序和其他变体中,但从未将图表恢复到显示数据的位置。

对图表进行排序和格式化听起来并不困难。这应该是投入生产之前的最后一个变化,我已经花了这么多时间。有人能告诉我如何使这项工作?谢谢!

2 个答案:

答案 0 :(得分:0)

我相信您需要更改图表的比例。我认为默认情况下它是Category Scale,但在使用日期时,您需要将其更改为DateTime比例。

在图形属性中,您设置X轴的格式,应该有一个名为Scale的属性。尝试将其设置为DateTime。

基思

答案 1 :(得分:0)

您无法格式化日期的原因是图表将它们视为字符串。

您需要将x轴更改为Category Scale类型,而不是X。类别比例是默认值,例如,当您绘制苹果,橘子和梨的数量时,它更适合。 在独立报表设计器中,设置位于 Presentation Category>下。坐标系> cartesiancoordinatesystem1> X轴>规模

...

除了更改比例类型之外,因为比例表达式现在不仅仅是一个字符串,您还需要在线系列上设置"=Fields.DateSampledText"值。

此设置位于演示文稿类别>下系列> lineseries1> X
由于某些未知原因,该设置不应为"DateSampledText",而应为r.mytable。文档令人恼火,没有这样的细节。