水晶报告(有)声明

时间:2010-01-16 09:31:24

标签: asp.net sql crystal-reports

我有一个像

这样的SQL查询
SELECT
             GNTD_SCHEDULE_CODE SCHEDULE,
             GNTD_PARENT_ACCT PARENT_ACCOUNT,
             GNTD_ACCOUNT_CODE ACCOUNT,
             GNTD_COMP_CODE,
             SUM(CONVERT(FLOAT, ISNULL(GNTD_CUR_MNTH_ACT, 0))) CURR_MONTH_END,
             SUM(CONVERT(FLOAT, ISNULL(GNTD_PRV_PRD_ACT, 0))) PREV_MONTH_END,
             SUM(CONVERT(FLOAT, ISNULL(GNTD_CUR_YEA_YTD_ACT, 0))) CURR_YEAR_END,
             SUM(CONVERT(FLOAT, ISNULL(GNTD_LST_YEA_YTD_ACT, 0))) PRV_YEAR_END
    FROM  GLAS_NLMR_PROCESSED_DATA 
    WHERE    GNTD_COMP_CODE  = '1' 
 AND GNTD_ACCT_TYPE = 'P' AND 
GNTD_DEP_CODE = isnull ( '01' , GNTD_DEP_CODE)
GROUP BY GNTD_COMP_CODE , GNTD_SCHEDULE_CODE , GNTD_PARENT_ACCT , GNTD_ACCOUNT_CODE
HAVING ( SUM ( isnull ( GNTD_CUR_YEA_YTD_ACT , 0)) <> 0) OR ( SUM ( isnull ( GNTD_CUR_MNTH_ACT , 0)) <> 0)

我正在使用asp.net crystal report公式编辑器转换上面的查询,如

{GLAS_NLMR_PROCESSED_DATA.GNTD_COMP_CODE} = {?Company} and
if({?Dept Code})=""
then
  {GLAS_NLMR_PROCESSED_DATA.GNTD_DEP_CODE}="01"
else
  {GLAS_NLMR_PROCESSED_DATA.GNTD_DEP_CODE} = {?Dept Code} and

我不知道如何在水晶报告中使用分组和声明。

我怎么样?

1 个答案:

答案 0 :(得分:1)

您可以通过右键单击并选择插入 - &gt;向报表添加分组。分组,然后选择要分组的字段。重复此过程以添加更多组。

报告中的“拥有”有点棘手。你需要使用抑制公式。在组页脚中创建摘要字段(右键单击,插入 - &gt;摘要,选择字段和'sum'操作)。然后,在专家部分中,添加单击“抑制”按钮并添加如下公式:

WhilePrintingRecords;
Sum({summary_field_name}) = 0;

在组标题,详细信息和组页脚中添加此公式,然后对要实现的每个“having”子句再次执行此操作。

仅供参考 - 使用您已有的查询,可以在数据库中更有效地完成此操作。

修改:更多信息

您不使用公式编辑器来创建摘要字段。使用插入 - &gt;如上所述的摘要创建字段。然后,在“抑制”公式中,从“报告字段”列表中选择新摘要字段。它将被命名为“Sum of”