我想知道水晶报告中是否有办法做以下事情:
我有一个包含这样数据的表:
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
......?
答案 0 :(得分:3)
您可以使用上一个和下一个功能参考上一个或下一个详细信息行中的值。
因此,在您的示例中,它可能是一个名为@Title的公式,其中包含文本:
"Retained " & ToText({MyTable.Inches}) & " inches, passing " & ToText(Previous({MyTable.Inches})) & " inches"
您还可以使用 PreviousIsNull 和 NextIsNull 函数来确保您没有上一行或第一行的问题。
答案 1 :(得分:1)
如果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