【发布时间】:2013-12-10 23:21:57
【问题描述】:
我正在尝试使用表中与该组中包含的记录所链接到的行不同的行中的记录来创建组名公式。
首先,我的数据中有 group 这个词,所以为了避免混淆,我将它用斜体表示以区别于 Crystal Reports 中的组。
我从中提取此组名记录的表有:
- {GroupSection.Group} 我们库存数据库中的组项
- {GroupSection.Section} 部分(这些就像嵌套在每个库存组中的子组)。
- {GroupSection.Description} 问题从这里开始,因为 {GroupSection.Group} 和 {GroupSection.Section} 的描述都存储在这里。
这是我的表格示例:
{GroupSection.Group} {GroupSection.Section} {GroupSection.Description}
3.00 0.00 PRECAST CONCRETE PRODUCT
3.00 50.00 MISC PRECAST CONCRETE PRODUCT
3.00 99.00 *Z* MISC PRECAST CONCRETE PRODUC
4.00 0.00 CEMENT SUPPLIES
4.00 50.00 MISC CEMENT SUPPLIES
4.00 99.00 *Z* MISC CEMENT SUPPLIES
此表中的第一行和第四行是对 {GroupSection.Group} 的描述(它们在 {GroupSection.Section} 行中有一个 0.00),其余的是对 {GroupSection.Section} 的描述。此报告中包含的实际数据在不同的表中,并且与此表中的前两个字段具有相同的两个字段,但不是第三个字段,因此需要链接到并使用此表来进行描述组名。另一个表没有记录链接到 0.00 的行。
我希望我的组树看起来像这样:
3. PRECAST CONCRETE PRODUCT
50 MISC PRECAST CONCRETE
99 *Z* MISC PRECAST CONCRETE
4. CEMENT SUPPLIES
50 MISC CEMENT SUPPLIES
99 *Z* MISC CEMENT SUPPLIES
这是我现在在最高组的组名公式中使用的有缺陷的公式:
ToText (left(Cstr({GroupSection.Group}),2))+ " " + ToText (If {GroupSection.Section} <> 0 then {GroupSection.Description} Else " ")
这是内部嵌套组的组名公式(工作正常):
ToText (left(Cstr({GroupSection.Section}),2))+ " " + ToText ({GroupSection.Description})
这就是我的组树现在的样子:
3. MISC PRECAST CONCRETE
50 MISC PRECAST CONCRETE
99 *Z* MISC PRECAST CONCRETE
4. MISC CEMENT SUPPLIES
50 MISC CEMENT SUPPLIES
99 *Z* MISC CEMENT SUPPLIES
如您所见,我需要从表中的第一行获取外部组的名称,即使它将组中的记录链接到表中的第二行和第三行。有意义吗?
我尝试在公式中使用previous(),但它给出了以下错误:无法使用此函数,因为它必须稍后进行评估。
编辑:我也只是尝试再次添加同一个表并将其链接到 group 和一次链接到 section 并且它适用于组名称,但现在我有 190 万条记录,确实是重复的。所以除非我能弄清楚如何修复多条记录,否则这是行不通的。
“。”在组名描述中是一个不相关的问题。这是我能做的最好的让 3.00 显示为 3 和 50.00 显示为 50。
感谢您的帮助!
为用户 @Promethean 编辑 2013 年 12 月 30 日:
对不起,我是 SQL 命令表的新手。我从另一个报告中获取了一个命令表并对其进行了一些更改。这是我走了多远:
SELECT
"GroupSection"."Group",
"GroupSection"."Section",
"GroupSection"."Description"
FROM ("SpruceDotNet"."dbo"."InventoryCommon" "InventoryCommon" with (nolock)
INNER JOIN
"SpruceDotNet"."dbo"."GroupSection" "GroupSection" with (nolock)
ON "InventoryCommon"."Group"="GroupSection"."Group")
WHERE
"GroupSection"."Section"=0
ORDER BY
"InventoryCommon"."Group"
您是否有机会使用此信息来修改您的命令表,以便像我这样的假人可以跟随它?看起来您将其中一个字段添加了两次,但我没有关注所有内容。
然后如何将命令表加入到包含更详细信息的更大表中?我必须使用正确的联接类型,以免最终重复记录?
非常感谢任何帮助。
【问题讨论】:
标签: crystal-reports crystal-reports-2008