gpt4 book ai didi

java - 数据库表中的标题和详细信息

转载 作者:行者123 更新时间:2023-12-01 15:36:00 26 4
gpt4 key购买 nike

我需要一个编辑器来创建一些报告,所有报告都有标题(公司名称、地址、电话、图像),该标题是从名为“公司”的表中读取的,并包含该公司所有客户的详细示例。

我如何在 iReports 中执行此操作?

有什么方法可以链接我的报告中的两个表(公司和客户)?因为“报表查询”只允许我一句话。

我使用 Java Swing 和 MySql 数据库。

感谢您的有用评论。

Report example

最佳答案

I need an editor to create some reports, all reports have header (company name, address, phone, image) that is read from a table called companies and have a detailed, example all customers of the company. How could i do this in iReports?

您可以查看this samplesJasperReports distribution package包含许多其他示例(在文件夹 %jasperreports%\demo\samples 中)。 iReport 文件夹 %iReport%\ireport\samples 中还有多个示例。

您的示例报告非常简单。

创建此类报告的步骤可以如下所示:

  1. image 元素(带有公司 Logo )和多个(或一个)staticText 元素(带有公司联系信息)添加到 Title 区域.
  2. 添加查询(用于从 MySQL 数据库获取数据),其中包含字段(idClient名称地址您的样本)
  3. 将带有列标题的 staticText 元素添加到列标题区域 - 它将成为数据网格的列标题
  4. 将带有字段的 textField 元素添加到 Detail 区域 - 它将成为网格中的数据

您应该阅读 JasperReports Ultimate Guide 。这是一个很棒的教程。

示例jrxml文件(在iReport中设计):

<?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="sample_company" language="groovy" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20">
<queryString>
<![CDATA[SELECT idClient, name, address FROM customers_table]]>
</queryString>
<field name="idClient" class="java.lang.Integer"/>
<field name="name" class="java.lang.String"/>
<field name="address" class="java.lang.String"/>
<title>
<band height="108" splitType="Stretch">
<staticText>
<reportElement x="171" y="53" width="183" height="55"/>
<textElement textAlignment="Center" verticalAlignment="Middle" markup="styled"/>
<text><![CDATA[<style isBold="true" forecolor="blue">ABC COMPANY</style>
Main Avenue and 9th Street
Tel: (593) 4 - 2066765
e-mail: info@abc.com]]></text>
</staticText>
<image>
<reportElement x="245" y="3" width="41" height="50"/>
<imageExpression><![CDATA["abc_logo.png"]]></imageExpression>
</image>
</band>
</title>
<columnHeader>
<band height="20">
<staticText>
<reportElement x="11" y="0" width="160" height="20"/>
<textElement textAlignment="Center" verticalAlignment="Middle"/>
<text><![CDATA[Id Client]]></text>
</staticText>
<staticText>
<reportElement x="171" y="0" width="183" height="20"/>
<textElement textAlignment="Center" verticalAlignment="Middle"/>
<text><![CDATA[Name]]></text>
</staticText>
<staticText>
<reportElement x="354" y="0" width="172" height="20"/>
<textElement textAlignment="Center" verticalAlignment="Middle"/>
<text><![CDATA[Address]]></text>
</staticText>
</band>
</columnHeader>
<detail>
<band height="20" splitType="Stretch">
<textField>
<reportElement x="11" y="0" width="160" height="20"/>
<box leftPadding="10"/>
<textElement/>
<textFieldExpression><![CDATA[$F{idClient}]]></textFieldExpression>
</textField>
<textField>
<reportElement x="354" y="0" width="172" height="20"/>
<box leftPadding="10"/>
<textElement/>
<textFieldExpression><![CDATA[$F{name}]]></textFieldExpression>
</textField>
<textField>
<reportElement x="171" y="0" width="183" height="20"/>
<box leftPadding="10"/>
<textElement/>
<textFieldExpression><![CDATA[$F{address}]]></textFieldExpression>
</textField>
</band>
</detail>
</jasperReport>

结果将是(报告导出为 pdf 格式):

The report in PDF format

更新:

要使用公司信息填充标题,您可以使用区域。您可以阅读有关群组的信息here .

您的查询将如下所示:

SELECT c.idClient, c.name, c.address, cmp.name AS companyName, cmp.contactInfo, cmp.id AS idCompany FROM customers c, companies cmp WHERE cmp.id=c.idCompany SORT BY cmp.id

您还应该为 companies 表中的数据添加报表字段 (companies.namecompanies.contactInfocompanies.id,例如):

    <field name="companyName" class="java.lang.String"/>
<field name="contactInfo" class="java.lang.String"/>
<field name="idCompany" class="java.lang.String"/>

之后,您应该添加idCompany(来自公司的唯一 key 表)。然后将带有字段(companyNamecontactInfo)的 textField 元素放入乐队。

关于java - 数据库表中的标题和详细信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8831747/

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