首页 文章

获取Crystal Report中的特定单元格

提问于
浏览
2

我有一个Crystal Report链接到SQL Server数据库中的表Customer . 我的报告生成器将执行SELECT SQL并将结果表作为数据源传递给报告 .

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

如何使用Crystal Report执行此操作 . 最新版本现在是2011年 .

1 回答

  • 1

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

    根据您要在其中显示报告的位置,有几种方法可以获取此字段 . 如果您只是想在详细信息部分中显示它,您可以使用这样的简单公式

    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} ...
    

相关问题