水晶报告 - 公式研讨会

时间:2013-08-06 15:54:37

标签: crystal-reports

我创建了一份水晶报告,根据订单编号对产品进行分组。

我创建了一个公式,根据每个产品上名为“差异”的字段是否等于0,显示“部分完成”或“完全完成”文本。如果“差异”为0,则显示“完全完成”,反之亦然。

我需要做的是显示整个订单号的相应消息(即,如果订单的任何产品有差异!= 0然后显示'部分完成'。如果所有产品都有差异=对于订单= 0,然后显示'完全完成'。

这是我到目前为止尝试的代码:

StringVar ouputText;

if {AD_999_SB_Fulfillment__Summary.FulfillmentPicking.Difference} = 0 then
    ouputText := 'Full'
else
    ouputText := 'Partial';

ouputText;

我假设我需要某种for循环来遍历订单的所有产品,并检查是否有任何订单有差异!= 0然后根据所有产品是否有更新消息差异== 0或其中一个产品通过产生差异来打破条件!= 0。

1 个答案:

答案 0 :(得分:1)

循环是一个长时间的过程,而不是根据"订单"然后将产品放在细节部分。这将自动循环订单中的整个产品。

  1. 创建名称为reset的公式并将其放在组头中。代码如下。

    共享stringVar数组y;

    y:=" ";
    
    join(y);
    
  2. 创建公式并将其放在详细信息部分。这将获取结果并将其存储在数组中以供将来使用。使用以下代码。

  3. StringVar ouputText;

    共享stringVar数组y;

    如果{AD_999_SB_Fulfillment__Summary.FulfillmentPicking.Difference} = 0则         y:= y +'完整'     其他         y:= y +'部分';

    if {AD_999_SB_Fulfillment__Summary.FulfillmentPicking.Difference} = 0 then
        ouputText := 'Full'
    else
        ouputText := 'Partial';
    
    ouputText;
    
    1. 在组页脚中创建另一个公式,以显示订单的结果是完整还是部分。

      共享stringVar数组y;

      如果"部分"在y 然后"部分" 否则"完全&#34 ;;