В JasperReports вы всегда устанавливаете абсолютные координаты x и y для позиционирования элементов отчета. Например, в следующем примере отображается черный прямоугольник (верхний левый угол в точке (0,0)), который содержит белое текстовое поле «Hello World», начинающееся с x=70:
<rectangle>
<reportElement x="0" y="0" width="557" height="20" backcolor="#000000" />
<graphicElement fill="Solid">
<pen lineWidth="0"/>
</graphicElement>
</rectangle>
<textField>
<reportElement x="70" y="2" width="100" height="14" style="pageLayoutFont"/>
<textElement textAlignment="Left" verticalAlignment="Middle" />
<textFieldExpression class="java.lang.String">
<![CDATA["Hello World"]]>
</textFieldExpression>
</textField>
Теперь я хочу добиться того же, используя DynamicReports. Это должно работать примерно так:
report().addDetail(
cmp.rectangle()
.setDimension(557, 20).setStyle(...),
cmp.text("Hello World").setStyle(...)
);
Однако я не могу найти способ определить позиционирование (в приведенном выше примере Java текст отображается под прямоугольником, а не внутри него.