如何在Crystal Reports中水平显示多个结果?

时间:2015-12-04 19:18:02

标签: crystal-reports

我需要帮助才能在单个水平配置中显示我的8个结果。我的工单有一张带有检查清单的表格。检查清单是8个问题的通过或失败。每个CAT都有自己的代码,内容为IF {F_CHECKLISTS.CHK_TEXT}='one of the TEST Name' THEN {@pass-fail}我为8个测试组中的每一个设置了相同的代码

当我提取数据并按WO对其进行分组时,每行重复8次,详细信息为通过或失败:

stair pattern

如果我压制细节并将其放入组尾,我只得到最后的结果:

single

1 个答案:

答案 0 :(得分:0)

尽管此类报告可以像Cross-Tab / Pivot-Table更好地管理。据我所知,Crystal Reports(最高版本9,不能说更高版本)不支持非数字支点。因此,在Sql支持级别可以更好地处理这种情况。

尽管如此,对于固定级别的要求,例如您的案例中的8个问题可以使用。您需要创建三个公式字段f_Resetf_Concatf_Print,并按以下方式设置其值:

  1. f_Reset:将默认结果初始化为fail

    WhilePrintingRecords;
    stringVar Q1 := "fail";
    stringVar Q2 := "fail";
    stringVar Q3 := "fail";
    stringVar Q4 := "fail";
    stringVar Q5 := "fail";
    stringVar Q6 := "fail";
    stringVar Q7 := "fail";
    stringVar Q8 := "fail";
    stringVar st_Final := "";
    
  2. f_Concat:检查所有问题的结果

    WhilePrintingRecords;
    if {F_CHECKLISTS.CHK_TEXT} = 'Test 1 Name' then stringVar Q1 := {@pass-fail};
    if {F_CHECKLISTS.CHK_TEXT} = 'Test 2 Name' then stringVar Q2 := {@pass-fail};
    if {F_CHECKLISTS.CHK_TEXT} = 'Test 3 Name' then stringVar Q3 := {@pass-fail};
    if {F_CHECKLISTS.CHK_TEXT} = 'Test 4 Name' then stringVar Q4 := {@pass-fail};
    if {F_CHECKLISTS.CHK_TEXT} = 'Test 5 Name' then stringVar Q5 := {@pass-fail};
    if {F_CHECKLISTS.CHK_TEXT} = 'Test 6 Name' then stringVar Q6 := {@pass-fail};
    if {F_CHECKLISTS.CHK_TEXT} = 'Test 7 Name' then stringVar Q7 := {@pass-fail};
    if {F_CHECKLISTS.CHK_TEXT} = 'Test 8 Name' then stringVar Q8 := {@pass-fail};
    
  3. f_Print:准备最终显示结果

    WhilePrintingRecords;
    stringVar st_Final := stringVar Q1 + "    " + stringVar Q2 + "    " + stringVar Q3 + "    " + stringVar Q4 + "    " + stringVar Q5 + "    " + stringVar Q6 + "    " + stringVar Q7 + "    " + stringVar Q8;
    
  4. 接下来,执行以下步骤:

    1. 通过任何一个常用字段(例如{2}中的WO)在论坛中插入一个论坛。
    2. f_Reset公式字段放在“组标题”
    3. 在“详细信息”部分中放置f_Concat公式字段
    4. 在报告页脚中放置并格式化报告页脚中OpenArea Description的所有其他字段,就像它们在详细信息部分中一样(只是一个没有8个结果字段的详细信息部分的副本
    5. f_Print公式字段放在“组尾”部分,并将其拉伸到所有8个结果标题(单个 f_print 公式字段,以显示所有8个结果
    6. Suppress群组标题
    7. Suppress详细信息部分
    8. 基本思想是将所有结果连接到一个字符串,然后一次显示它。您可能需要调整f_Print中的连续空格,即+ " ",以便将值与8个结果标题对齐。