Crystal Reports中按年,月,周,日动态分组

Mol*_*och 4 crystal-reports

这一定很简单,但我似乎无法找到答案.

我有一个简单的查询:

SELECT InvoiceTotal, InvoiceDate, InvoiceNoUnit from InvoiceLineItem
Run Code Online (Sandbox Code Playgroud)

我希望从我的应用程序中显示在Crystal Reports中.我希望能够让用户更改一个参数,以便根据用户选择的粒度级别按日期对结果报告进行分组,而不是构建许多报告.

EG:我希望用户能够选择"按月",报告按月分组(相应的图表按月显示.然后用户"按周"运行报告,报告逐周更改.

我希望他们在我的应用程序中选择此项,并让我将参数传递给CR以更改分组.

有什么建议?

Lit*_*les 5

您可以创建一个参数,用户可以选择"年","月","日"等.

从那里,您可以创建一个公式,根据上面的参数指定分组,然后在报表中创建一个使用此公式进行分组的分组.

我没有方便的Crystal Reports,但公式看起来像这样:

IF @UserDefinedGrouping = "Year" THEN
    DATEPART(yyyy, {Table.InvoiceDate})
ELSEIF @UserDefinedGrouping = "Month" THEN
    DATEPART(m, {Table.InvoiceDate})
ELSEIF @UserDefinedGrouping = "Quarter" THEN
    DATEPART(q, {Table.InvoiceDate})
' etc...
Run Code Online (Sandbox Code Playgroud)