2011-10-01 33 views
2

我有一个Crystal Report链接到SQL Server数据库中的Customer表。我的报表生成器将执行SELECT SQL并将结果表作为数据源传递到报表中。获取Crystal Report中的特定单元格

在报告中,我有一个字段,我希望此字段在表格的特定行索引和列索引处显示单元格数据(也许我知道列名称)。例如,我的字段应显示数据源第3行第2列的单元格。

我该如何使用Crystal Report来做到这一点。最新版本现在是2011.

回答

1

首先,为了使行号具有任何意义,您需要使用ORDER BY子句(通过排序报表)查询表。没有它,你不能对数据库中的“原始记录顺序”做任何假设,因为实际上没有。

有几种方法可以获取此字段,具体取决于要在其中显示报告的位置。如果你只是想表明它在细节部分,你可以使用一个简单的公式是这样

if rownumber = 3 then {table.column}

如果你想在页脚,而不是显示它,你可以利用一个变量,而不是:

whileprintingrecords; 
numbervar thedatavariable; 
if recordnumber = 3 then thedatavariable := {table.column}

在报告的详细信息部分中抛出该公式,然后您可以在脚注中自由使用数据变量。

现在对于列:如果列索引不是动态的,您可以看到哪个列对应...例如,如果表的列是customer_id,customer_name,那么列2将始终只是客户名称。如果索引号会改变,就像通过参数一样,你可以制作这样的公式

select {?colIndexParameter} 
case 1 : {table.customer_id} 
case 2 : {table.customer_name} ...