1

我正在尝试创建(我认为是)一个简单的水晶报表。本质上,我想生成一份报告,列出例如学生每次受到某种纪律处分的情况:

╔═══════════╦═════════════╦════════════╦══════════╗
║ StudentID ║ StudentName ║   Action   ║   Date   ║
╠═══════════╬═════════════╬════════════╬══════════╣
║ 1         ║ Smith, John ║ Suspension ║ 1/1/2012 ║
║ 2         ║ Q, Susie    ║ Detention  ║ 1/5/2012 ║
║ ...       ║ ...         ║ ...        ║          ║
╚═══════════╩═════════════╩════════════╩══════════╝

但是,此信息作为三个单独的表存储在数据库中:

  1. 学生信息,例如他们的 ID 和姓名。
  2. 纪律处分,包括学生的 ID、日期和表明所采取措施的代码。
  3. 将每个代码与操作描述配对的表,因此 1 映射到“拘留”,2 映射到“暂停”,等等。

我不确定如何在 Crystal Reports 中链接这些列,特别是这样我就可以显示一个描述所采取的操作的列,而不仅仅是代码。我认为 SQL 表达式字段可以完成此操作,如下所示:

(
SELECT "ActionCodes"."ActionDesc"
WHERE "DisciplinaryActions"."ActionCode" = "ActionCodes"."ActionCode"
)

不幸的是,将此字段添加到我的报告中只会产生空白行。我是在正确的轨道上,只是在摸索我的查询,还是有更好的路线?

4

2 回答 2

0

首先检查您在数据库中的查询,然后如果有数据,则放置

StudentID、学生姓名、操作、

再次检查 ReportPriview 后,水晶报告的详细信息部分中的日期。

于 2013-02-08T12:51:52.067 回答
0

在 Crystal Reports 中,您需要转到 Database Expert,导航到要从中检索表的数据库。然后使用屏幕中间的 > 按钮,将所有表格移到右侧:学生、学科、描述。

然后,您必须创建左外连接。

从 Student 表中,选择 StudentID 并将其拖到 Disciplinary 的 StudentID。

您应该会看到一个显示从 Student 到 Disciplinary 的箭头的连接 --->

之后,左外连接纪律代码和描述代码。

连接正确后,您应该可以将所需的不同字段拖放到报告中。

您可以使用 SQL 表达式选项,但执行连接会更容易,并且您还可以灵活地在未来使用纪律代码或描述。

如果您需要带有屏幕截图的分步说明,请告诉我。

于 2013-02-08T16:06:48.740 回答