gpt4 book ai didi

database - 少显示一条数据库记录的表格工具

转载 作者:搜寻专家 更新时间:2023-10-30 20:12:35 28 4
gpt4 key购买 nike

主要问题是我的查询在 SQL 中以及在表数据集查询预览中运行顺利。我的意思是在表数据集查询数据预览中,它显示了我的数据库表中的 2 条记录。

请找到屏幕截图enter image description here .

同时找到 Jrxml 文件。

<?xml version="1.0" encoding="UTF-8"?>
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="report2" language="groovy" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20">
<property name="ireport.zoom" value="1.0"/>
<property name="ireport.x" value="0"/>
<property name="ireport.y" value="0"/>
<style name="table">
<box>
<pen lineWidth="1.0" lineColor="#000000"/>
</box>
</style>
<style name="table_TH" mode="Opaque" backcolor="#F0F8FF">
<box>
<pen lineWidth="0.5" lineColor="#000000"/>
</box>
</style>
<style name="table_CH" mode="Opaque" backcolor="#BFE1FF">
<box>
<pen lineWidth="0.5" lineColor="#000000"/>
</box>
</style>
<style name="table_TD" mode="Opaque" backcolor="#FFFFFF">
<box>
<pen lineWidth="0.5" lineColor="#000000"/>
</box>
</style>
<subDataset name="Table Dataset 1">
<queryString>
<![CDATA[select lname, fname from test1
order by fname]]>
</queryString>
<field name="lname" class="java.lang.String"/>
<field name="fname" class="java.lang.String"/>
</subDataset>
<subDataset name="New Dataset 1">
<queryString language="SQL">
<![CDATA[select lname, fname from test1
order by fname]]>
</queryString>
<field name="lname" class="java.lang.String"/>
<field name="fname" class="java.lang.String"/>
</subDataset>
<queryString>
<![CDATA[select lname, fname from test1
order by fname]]>
</queryString>
<field name="lname" class="java.lang.String"/>
<field name="fname" class="java.lang.String"/>
<background>
<band splitType="Stretch"/>
</background>
<title>
<band height="79" splitType="Stretch"/>
</title>
<pageHeader>
<band height="35" splitType="Stretch"/>
</pageHeader>
<columnHeader>
<band height="61" splitType="Stretch">
<staticText>
<reportElement x="100" y="41" width="102" height="20"/>
<textElement/>
<text><![CDATA[lname]]></text>
</staticText>
<staticText>
<reportElement x="202" y="41" width="147" height="20"/>
<textElement/>
<text><![CDATA[fname]]></text>
</staticText>
</band>
</columnHeader>
<detail>
<band height="125" splitType="Stretch">
<componentElement>
<reportElement key="table" style="table" x="100" y="0" width="360" height="86"/>
<jr:table xmlns:jr="http://jasperreports.sourceforge.net/jasperreports/components" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports/components http://jasperreports.sourceforge.net/xsd/components.xsd">
<datasetRun subDataset="Table Dataset 1">
<dataSourceExpression><![CDATA[$P{REPORT_DATA_SOURCE}]]></dataSourceExpression>
</datasetRun>
<jr:column width="90">
<jr:detailCell style="table_TD" height="20" rowSpan="1">
<textField>
<reportElement x="0" y="0" width="90" height="20"/>
<textElement/>
<textFieldExpression class="java.lang.String"><![CDATA[$F{lname}]]></textFieldExpression>
</textField>
</jr:detailCell>
</jr:column>
<jr:column width="90">
<jr:detailCell style="table_TD" height="20" rowSpan="1">
<textField>
<reportElement x="0" y="0" width="90" height="20"/>
<textElement/>
<textFieldExpression class="java.lang.String"><![CDATA[$F{fname}]]></textFieldExpression>
</textField>
</jr:detailCell>
</jr:column>
</jr:table>
</componentElement>
</band>
</detail>
<columnFooter>
<band height="45" splitType="Stretch"/>
</columnFooter>
<pageFooter>
<band height="54" splitType="Stretch"/>
</pageFooter>
<summary>
<band height="42" splitType="Stretch"/>
</summary>
</jasperReport>

但 pdf 报告中的输出只有 1 条记录,即最后 1 条。 enter image description here

最佳答案

我在使用 JRBeanCollectionDataSource 时遇到过这种情况。我知道所有数据都在那里,但表格工具总是缺少第一行。看起来主报表在集合上执行了一个“.next()”,然后子报表(又名表)继续处理其余数据

无论如何,我通过 $P{REPORT_DATA_SOURCE}.cloneDataSource() 作为表的数据源表达式解决了这个问题。然后看起来表格以全新的数据源开始并且可以遍历所有项目,因此它可以工作。我不知道您使用的是什么数据源,但您必须想办法在使用子报表之前将光标移动到数据的开头。

所以,总而言之,我在我的 jrxml 文件中这样做了: <dataSourceExpression><![CDATA[$P{REPORT_DATA_SOURCE}.cloneDataSource()]]></dataSourceExpression>

但只是因为我使用的是 JRBeanCollectionDataSource

关于database - 少显示一条数据库记录的表格工具,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6046838/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com