繁体   English   中英

如何在Crystal Reports 2008中显示同一详细信息部分中的当前和以前的记录?

[英]How can I show, in Crystal Reports 2008, the current and previous record on the same Detail section?

我想知道水晶报告中是否有办法做以下事情:

我有一个包含这样数据的表:

ID       MeshName      RetainedWeight
    654      3.3 inches    20.00
    789      3.0 inches    20.00
    321      1.4 inches    20.00
    ...

我需要在这样的水晶报告中展示它们:

Title Here                                       %
    Retained 3 inches                               33.3
    Retained 2.3 inches, passing 3 inches           33.3
    Retained 1.4 inches, passing 2.3 inches         33.3
    Retained ... inches, passing 1.4 inches         ...

所以,正如你所看到的,我需要显示当前记录以及前一个记录的MeshName ,任何想法?

我在想:可能有一些变量保留了以前的MeshName ......?

您可以使用上一个下一个功能来引用上一个或下一个详细信息行中的值。

因此,在您的示例中,它可能是一个名为@Title的公式,其中包含以下文本:

"Retained " & ToText({MyTable.Inches}) & " inches, passing " & ToText(Previous({MyTable.Inches})) & " inches"

您还可以使用PreviousIsNullNextIsNull函数来确保您没有上一行或第一行的问题。

如果ID值始终是连续的(即“先前记录”,则表示当前记录的ID为1的记录),您可以在SQL端而不是在水晶报告中进行。 我假设你说“桌子”你正在使用数据库。 这是一个完整的例子(我在这个例子中使用了Oracle):

CREATE TABLE DATA (ID NUMBER, MeshName VARCHAR2(50), RetainedWeight NUMBER(25,2))

INSERT INTO DATA VALUES (1,'3 inches',20.00);
INSERT INTO DATA VALUES (2,'2.3 inches',20.00);
INSERT INTO DATA VALUES (3,'1.4 inches',20.00);

SELECT 'Retained ' || a.meshname || 
       CASE
         WHEN b.id IS NOT NULL THEN
           ', passing ' || b.meshname
         ELSE
           ' '
       END
  FROM DATA a
 LEFT OUTER JOIN DATA b
   ON b.id = a.id-1
 ORDER BY a.id

SELECT查询的结果是:

Retained 3 inches 
Retained 2.3 inches, passing 3 inches
Retained 1.4 inches, passing 2.3 inches

2.如果您想尝试直接在水晶中进行,那么您可以查看Previous功能。 这是一个可能有用的链接: http//www.tek-tips.com/viewthread.cfm? qid = 1460030& page = 9

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM