0

我是iReport的初学者,我不会编程Java,所以我希望你能给我一个想法。

我已经设法制作了一张图表,显示所有客户在 2 月、3 月等月份订购的频率。

我就是这样做的:

在类别表达式中,我有: $F{Month}

在价值表达我有: $F{count(Orders)}

但我想显示只有一位客户(例如客户 a)在 2 月、3 月等月份订购的频率。

我可以使用以下值:
月份、订单和客户(这里保存了所有客户名称)

- - - -// - - - - - -更新 - - - - - - - // - - - - - - - ----------------------

我想显示一个图表,代表客户每月的总订单。但我试图在一张图表(堆叠)中显示我的 3 个客户(我的数据库只有 3 个)。

例如(见上图):我想显示 2 月份客户 A(黄色)的总订单。我想在 2 月份显示来自客户 B(蓝色)的总订单,对于客户 C 也是如此。

客户应该堆叠显示(每个月 3 个),每个客户应该有不同的颜色,加上每个客户的总订单应该显示......如上图所示:客户 A(黄色)总共下了 3 个订单2 月,客户 B(蓝色)在 2 月共下了 2 个订单,客户 C..etc。

非常重要的是每个月显示 3 个客户...堆叠。

我该怎么做呢?

我欣赏每一个想法。

4

2 回答 2

1

创建一个带有您的客户名称 $P{customerName} 和另一个需要月份 $P{month} 的参数

像这样将这两个参数传递给你的 sql

SELECT customer_name, order_count FROM customers
bla.. bla..
WHERE customer_name=$P{customerName} and month=$P{month}

然后创建一个只有一个系列的图表,将一位客户显示为一种颜色。不像你的有 3 种颜色。随意询问更具体的细节。

于 2013-05-14T12:33:52.397 回答
1

根据我从您的问题中了解到的情况,您希望显示一个图表,该图表代表客户每月的总订单量。为此,您无需使用堆叠条形图。您可能想要使用条形图来满足您的目的。如果您想查看每个客户的图表,请创建一个参数$P{customer}并将其传递到您的查询中。

请参阅iReport-Ultimate-Guide-3有关如何创建参数并在查询中使用它的文档。

例如:

select customer,month,count(orders) 
from <your table> 
where customer=$P{customer} 
group by month

如果您只想查看一位客户的详细信息,上述方法将有效。

**Here is my solution after your update.**

从您的更新来看,您似乎想代表所有客户每月的总订单量。并且您想使用堆叠图表来表示。

那么您所做的是正确的,但错过了将字段添加到您的“系列表达式”

将您的现场客户添加到您的系列表达式中,这将解决您的问题,即

Series Expression : $F{customer}
Category expression : $F{Month}
Value expression  : $F{count(Orders)}

这将以您指定的格式显示图表。

于 2013-05-14T13:29:55.337 回答