Как убрать поле с первой страницы, используя отчеты Jasper? - PullRequest
0 голосов
/ 02 октября 2018

Я создаю отчет в формате PDF с использованием JasperReport (jrxml).Я новичок в JasperReport, поэтому понятия не имею, как убрать поля с первой страницы.

Мои требования - к отчету в формате PDF, первая страница - к титульной странице, где я показываю логотип компании и информацию о компании, а послетитульная страница Я показываю все необходимые данные.

см. мой код jrxml, я не показываю весь код, просто показывающий, где я использую код поля

<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="rpt_survey_analysis" pageWidth="842" pageHeight="595" orientation="Landscape" columnWidth="802" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="df013db5-f76e-44d3-b0df-bcbc46d93160">
</jasperReport>

в этом коде, я установилtopMargin, bottomMargin, leftMargin, rightMargin, но это поле влияет на все страницы.Но я хочу повлиять на это поле, кроме обложки.Так как же это сделать?

1 Ответ

0 голосов
/ 02 октября 2018

Вам необходимо установить 0 полей в отчете, вы можете не иметь разные поля для разных полос

С Понимание полос

Ширина полосы равна ширине страницы (исключая правое и левое поля).

Как только у вас будет нулевое поле, несколько решений могут быть:

  1. Поместите ваши элементы в другие группы, чтобы создать "фальшивку""Пример поля x="20"

  2. Используйте компонент кадра с положением x на поле и добавьте к нему другие компоненты.пример

    <frame>
        <reportElement x="20" y="0" width="550" height="40" uuid="0d4ab012-9161-4f37-b8e0-c6ddcdd3d550"/>
        <staticText>
            <reportElement x="0" y="0" width="550" height="30" uuid="3dc51fb0-0bc3-46f6-9259-fb8d9fd1f884"/>
            <text><![CDATA[Text at position 0 in a frame]]></text>
        </staticText>
    </frame>
    
  3. Использовать вложенный отчет с полем .

main.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="NoMargins" pageWidth="595" pageHeight="842" whenNoDataType="AllSectionsNoDetail" columnWidth="595" leftMargin="0" rightMargin="0" topMargin="0" bottomMargin="0" isTitleNewPage="true" uuid="4e2c1a7a-cbfd-4d60-9fe7-61aea15cc321">
    <property name="com.jaspersoft.studio.data.defaultdataadapter" value="One Empty Record"/>
    <queryString>
        <![CDATA[]]>
    </queryString>
    <title>
        <band height="79" splitType="Stretch">
            <rectangle>
                <reportElement x="0" y="0" width="595" height="51" backcolor="#0015FF" uuid="e6616fe4-fed9-44aa-a8a6-2c296c6ab508">
                    <property name="com.jaspersoft.studio.unit.width" value="pixel"/>
                </reportElement>
            </rectangle>
        </band>
    </title>
    <summary>
        <band height="53" splitType="Stretch">
            <subreport>
                <reportElement x="0" y="0" width="595" height="50" uuid="b654e952-f1e1-4b90-a4ca-2cf3abe9f6f4"/>
                <connectionExpression><![CDATA[$P{REPORT_CONNECTION}]]></connectionExpression>
                <subreportExpression><![CDATA["with margins.jasper"]]></subreportExpression>
            </subreport>
        </band>
    </summary>
</jasperReport>

подотчет , с полем

<?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="with margins" pageWidth="595" pageHeight="842" whenNoDataType="AllSectionsNoDetail" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" whenResourceMissingType="Error" uuid="cccf2b18-4f7c-464c-bd9c-13dbb62af3b0">
    <queryString>
        <![CDATA[]]>
    </queryString>
    <title>
        <band height="35" splitType="Stretch">
            <staticText>
                <reportElement x="0" y="0" width="555" height="30" uuid="66542837-c420-4e7c-a760-dd55ccff2d17">
                    <property name="com.jaspersoft.studio.unit.width" value="pixel"/>
                </reportElement>
                <text><![CDATA[My report with margin]]></text>
            </staticText>
        </band>
    </title>
</jasperReport>

Выход

result

Возможно, я бы предпочел решение 1 или 2 в простом отчете, в более сложных отчетах может быть преимуществом иметь первое в отдельном отчете

...