如何使用 jasper 报告在同一行中打印两个带空格的 phone 数字?

How to print two phone numbers with spaces in the same row using jasper reports?

我需要在同一行中用空格或逗号打印两个数字 442233378,556664446 以这种方式我需要使用 jasper reports.I 打印,我使用变量 $F(alias_name) 来打印这些 numbers.But 它正在打印出页面,如中所示image 它必须在第一个数字 printed.Please 帮助我的行上方打印数字。

我认为您只需更改查询即可获得解决方案。 我在您的 alias_name 字段中添加了一个 GROUP_CONCAT 函数,您可以阅读更多关于它的作用 here.

SELECT
  GROUP_CONCAT(DISTINCT alias_name SEPARATOR ', ') AS alias_name
FROM
  service_alias
WHERE
  service_id IN
    (
      SELECT
        id
      FROM
        service
      WHERE
        order_id IN
          (
            SELECT
              id
            FROM
              purchase_order
            WHERE
              id IN
                (
                  SELECT
                    order_id
                  FROM
                    order_process
                  WHERE
                    invoice_id = $P{invoiceId}
                )
            AND
              period_id != 1
          )
    )

这是添加到 entityDetails.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="Entity details" pageWidth="595" pageHeight="875" whenNoDataType="AllSectionsNoDetail" columnWidth="595" leftMargin="0" rightMargin="0" topMargin="0" bottomMargin="0" >
<property name="com.jasperassistant.designer.GridHeight" value="12"/>
<property name="com.jasperassistant.designer.GridWidth" value="12"/>
<property name="com.jasperassistant.designer.SnapToGrid" value="false"/>
<property name="com.jasperassistant.designer.Grid" value="false"/>
<property name="ireport.zoom" value="1.0"/>
<property name="ireport.x" value="0"/>
<property name="ireport.y" value="0"/>
<parameter name="invoiceId" class="java.lang.Integer"/>
<queryString>
 <![CDATA[
   SELECT
     GROUP_CONCAT(DISTINCT alias_name SEPARATOR ', ') AS alias_name
   FROM
     service_alias
   WHERE
     service_id IN
       (
         SELECT
           id
         FROM
           service
         WHERE
           order_id IN
             (
               SELECT
                 id
               FROM
                 purchase_order
               WHERE
                 id IN
                   (
                     SELECT
                       order_id
                     FROM
                       order_process
                     WHERE
                       invoice_id = $P{invoiceId}
                   )
               AND
                 period_id!=1
             )
       )
 ]]>
</queryString>
 <field name="alias_name" class="java.lang.String"/> 
<title>
 <band splitType="Stretch"/>
</title>
<detail>
 <band height="62">
     <textField isBlankWhenNull="true">
         <reportElement x="50" y="5" width="197" height="15" />
         <textElement>
             <font size="10" isBold="true"/>
         </textElement>
         <textFieldExpression class="java.lang.String"><![CDATA[$F{alias_name}]]></textFieldExpression>
     </textField>
     <image>
         <reportElement x="18" y="4" width="18" height="13" />
         <imageExpression><![CDATA["/opt/apps/openbrm-2.0/openbrm/resources/logos/phone-symbol.png"]]></imageExpression>
     </image>
 </band>
</detail>
</jasperReport>