Jasper reports 父表\字段\名称的表达式语法

Jasper reports 父表\字段\名称的表达式语法,jasper-reports,Jasper Reports,如果我的JasperReport报告显示来自以下SQL查询的数据: SELECT "invoices"."invoice_id", "invoices"."name", "invoices"."contact_id", "relationship_contacts"."name", FROM "invoices" LEFT JOIN "contacts" AS "relationship_contacts" ON ("invoices"."contact_id" = "relation

如果我的JasperReport报告显示来自以下SQL查询的数据:

SELECT 
"invoices"."invoice_id", 
"invoices"."name", 
"invoices"."contact_id", 
"relationship_contacts"."name", 
FROM "invoices"
LEFT JOIN "contacts" AS "relationship_contacts" ON ("invoices"."contact_id" = "relationship_contacts"."contact_id")
如何在JRDesignExpression.setText()中指定invoices.name和relationship_contacts.name?这似乎是无效的:

$F{relationship_contacts.name}

通常在iReport中,您只需单击“读取字段”即可运行查询,并让iReport定义所有返回的字段和报表中的字段。在您的例子中,字段的名称似乎与您在SQL结果集中的想法不完全相同。尝试显式指定它:

SELECT
  "relationship_contacts"."name" as the_name
FROM ...

那么这肯定会起作用:
$F{the_name}

你能把你的jrxml文件的片段和查询和字段一起发布吗?@AlexK,在这里,但它不会有太大帮助,因为它是通用代码,连接(以及由此产生的字段名称的模糊性)只会在特定的报告中发生:是的,我刚刚尝试了iReport,注意到它为每个字段创建了一个别名,并随后在XML中的$F{}语法中使用该别名。例如,
选择contacts.“name”作为contacts\u name…
我想这样做是为了解决这个问题。如果有文档记录或者没有必要,那就好了。谢谢你的帮助。