Crystal Report 1字段应该在同一行

时间:2013-02-05 06:34:14

标签: crystal-reports crystal-reports-2008 crystal-reports-2010 crystal-reports-8.5

我正在使用Crystal Reports,我有这样的输出:

     NumberId         ART_No          InkColor
     ------------------------------------------
     0010             23003             BLUE
     0010             23003             RED
     0010             23003             GREEN
     0013             23004             ORANGE
     0013             23004             PINK
     0013             23004             WHITE
     0015             23007             GREEN
     0015             23007             PINK

有什么方法可以使输出(在Crystal Reports中)像这样甚至不使用SQL脚本:

     NumberId         ART_No          InkColor
     ------------------------------------------
     0010             23003             BLUE, RED, GREEN
     0013             23004             ORANGE, PINK, WHITE
     0015             23007             GREEN, PINK

由于

1 个答案:

答案 0 :(得分:2)

你需要做一些事情来实现这一点。

  1. NumberId创建一个组。

  2. 取消群组标题。

  3. 创建一个FormulaField;我们称之为@ColorReset。它应包含以下代码:

    WhilePrintingRecords;
    stringVar Colors := "";
    

    将其放在您的群组标题中。每次击中组标题时,这将重置Colors stringVar。

  4. 取消详细信息部分。

  5. 创建另一个FormulaField;我们称之为@ColorAppend。它应该连接像这样的值:

    WhilePrintingRecords;
    stringVar Colors := Colors + ", " + {YourTable.InkColor};
    

    将其放入您的详细信息部分。每次细节部分循环时,这将构建您的颜色字​​符串。

  6. 再创建一个FormulaField来显示颜色,称为@ColorsShow。它将显示如下颜色:

    WhilePrintingRecords;
    StringVar Colors;
    
    RIGHT(Colors, LEN(Colors) - 2);    // Strip off the leading comma and space
    

    将其与NumberIdART_No

  7. 一起放在您的群组页脚中

    您的最终结果应该是:

    ---------- Group Header 1 ----------
    /////////// @ColorReset ////////////
    
    ------------- Details --------------
    ////////// @ColorAppend ////////////
    
    ---------- Group Footer 1 ----------
    [NumberId] [ART_No] [@ColorsShow]
    

    看起来有点初衷,但它非常简单。