2

小切手の印刷に使用するレポートを作成しようとしています。そのレイアウトは、スタブ、スタブ、そしてチェックです。これを行う最善の方法は、スタブの詳細をサブレポート (レポートに 2 回挿入) にし、レポートの通常の詳細をチェック情報にすることだと思いました。サードパーティのデバイスは、その詳細バンドでレポートに渡した情報に基づいて「小切手」を処理します(小切手のマイク部分のアカウント情報を印刷し、署名と盗難防止の「もの」を追加します)。

問題は、サブレポートのレコード数を制限する方法がわからないことです。バンドのマスター、サブレポート プロパティのマスター、およびレポートの高さのサブレポートで高さを設定しようとしました。何も機能していないようでした。みたいなこともやってみました。

($V{REPORT_COUNT} %15) == 0

今、私はJavaの男ではありません。フォームの生成には jasper レポートを使用するか、Python ベースの ERP システムを使用します。

このレポートをどのように設計すればよいかについて何か提案はありますか? また、レポートの「チェック」部分では、1 ページを除くすべてのページに無効な詳細が必要になることに注意してください。

編集

たとえば、ベンダー FOO に 35 の請求書を支払ったとします。レイアウトは、スタブ、スタブ、チェック (それぞれページの 1/3 のサイズ) になります。スタブ 1 とスタブ 2 は、互いに同一のコピーです。したがって、ページ 1 はスタブ 1 に 15 枚の請求書を表示し、次のスタブに同じ 15 枚の請求書を表示し、ページの下 3 番目に現物小切手の詳細を印刷します。ページ 2 には次の 15 枚の請求書が表示されますが (上記と同じレイアウト)、小切手の詳細は無効になっています。最後のページには、残りの 5 つの請求書が表示されます。

ページにミシン目があります。1 つの半券を保持し、小切手の半券をベンダーに送信します。

マスターレポートの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="ap_checks" language="groovy" pageWidth="612" pageHeight="792" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="3fb75d91-5293-4c89-8450-938a5ac37235">
    <property name="ireport.zoom" value="1.0"/>
    <property name="ireport.x" value="0"/>
    <property name="ireport.y" value="0"/>
    <parameter name="SUBREPORT_DIR" class="java.lang.String" isForPrompting="false">
        <defaultValueExpression><![CDATA["/Users/pkraus/iReport/"]]></defaultValueExpression>
    </parameter>
    <queryString>
        <![CDATA[select

appay.id, appay.batch_id, appay.date, appay.payment_type_id, appay.vendor_id,appay.total,
appay.check_number,
vendors.code as vendor_code,vendors.name as vendor_name,
locations.name,locations.address_one,locations.address_two,locations.city,
states.code as state_code,locations.zip_code

from
ap_payments as appay,
ap_payment_types,
vendors,
locations,
states


where
appay.payment_type_id = ap_payment_types.id and
ap_payment_types.print_check = 't' and
vendors.id = appay.vendor_id and
locations.id = vendors.remit_to_id and
states.id = locations.state_id]]>
    </queryString>
    <field name="id" class="java.lang.Integer"/>
    <field name="batch_id" class="java.lang.Integer"/>
    <field name="date" class="java.sql.Date"/>
    <field name="payment_type_id" class="java.lang.Integer"/>
    <field name="vendor_id" class="java.lang.Integer"/>
    <field name="total" class="java.math.BigDecimal"/>
    <field name="check_number" class="java.lang.String"/>
    <field name="vendor_code" class="java.lang.String"/>
    <field name="vendor_name" class="java.lang.String"/>
    <field name="name" class="java.lang.String"/>
    <field name="address_one" class="java.lang.String"/>
    <field name="address_two" class="java.lang.String"/>
    <field name="city" class="java.lang.String"/>
    <field name="state_code" class="java.lang.String"/>
    <field name="zip_code" class="java.lang.String"/>
    <detail>
        <band height="200" splitType="Stretch">
            <subreport isUsingCache="true" runToBottom="false">
                <reportElement uuid="71baa8ec-c623-4032-a2b0-381776857ee6" x="0" y="0" width="572" height="152"/>
                <subreportParameter name="check_id">
                    <subreportParameterExpression><![CDATA[$F{id}]]></subreportParameterExpression>
                </subreportParameter>
                <connectionExpression><![CDATA[$P{REPORT_CONNECTION}]]></connectionExpression>
                <subreportExpression><![CDATA[$P{SUBREPORT_DIR} + "ap_checks_stub.jasper"]]></subreportExpression>
            </subreport>
        </band>
        <band height="178"/>
        <band height="163">
            <textField>
                <reportElement uuid="00182356-2626-4e23-90bf-c8ab35d9bd11" x="380" y="54" width="56" height="20"/>
                <textElement/>
                <textFieldExpression><![CDATA[$F{date}]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement uuid="042dac2b-6fb5-401d-ab90-11c60cecfa98" x="17" y="114" width="100" height="20"/>
                <textElement/>
                <textFieldExpression><![CDATA[$F{address_one}]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement uuid="ec25e5af-5b4d-4f5a-8197-62a84e0b5773" x="17" y="125" width="100" height="20"/>
                <textElement/>
                <textFieldExpression><![CDATA[$F{address_two}]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement uuid="37d3f097-e308-4601-9e1e-e21be81ad57a" x="17" y="134" width="100" height="20"/>
                <textElement/>
                <textFieldExpression><![CDATA[$F{city}]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement uuid="9df87896-ea75-4411-aeb6-db0b1484d219" x="178" y="134" width="100" height="20"/>
                <textElement/>
                <textFieldExpression><![CDATA[$F{zip_code}]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement uuid="d99d514e-893b-4b45-ae2b-b8677cee6ed9" x="98" y="134" width="100" height="20"/>
                <textElement/>
                <textFieldExpression><![CDATA[$F{state_code}]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement uuid="926d835e-adc4-4f4b-a29f-5fa18d45090c" x="17" y="74" width="100" height="20"/>
                <textElement/>
                <textFieldExpression><![CDATA[$F{vendor_code}]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement uuid="6a8349b5-c86a-4ffc-87b7-84000ebef6af" x="17" y="105" width="100" height="20"/>
                <textElement/>
                <textFieldExpression><![CDATA[$F{vendor_name}]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement uuid="ed874ea2-a95d-47cd-bf8e-b2b559a5dbbf" x="472" y="54" width="100" height="20"/>
                <textElement/>
                <textFieldExpression><![CDATA[$F{check_number}]]></textFieldExpression>
            </textField>
        </band>
    </detail>
</jasperReport>

サブレポートの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="ap_checks_stub" language="groovy" pageWidth="572" pageHeight="100" columnWidth="555" leftMargin="0" rightMargin="0" topMargin="0" bottomMargin="0" uuid="31589b1a-6d6a-40ff-870b-e84e52104956">
    <property name="ireport.zoom" value="1.0"/>
    <property name="ireport.x" value="0"/>
    <property name="ireport.y" value="0"/>
    <parameter name="check_id" class="java.lang.Number"/>
    <queryString>
        <![CDATA[select
pi.id as payment_id, pi.payment,
vi.number,vi.date,
ap_payments.check_number, vendors.code
from
payment_invoices as pi,
vendor_invoices as vi,
ap_payments,
vendors


where
vi.id = pi.invoice_id and
ap_payments.id = pi.check_id and
ap_payments.vendor_id = vendors.id and
pi.check_id = 1]]>
    </queryString>
    <field name="payment_id" class="java.lang.Integer"/>
    <field name="payment" class="java.math.BigDecimal"/>
    <field name="number" class="java.lang.String"/>
    <field name="date" class="java.sql.Date"/>
    <field name="check_number" class="java.lang.String"/>
    <field name="code" class="java.lang.String"/>
    <columnHeader>
        <band height="24" splitType="Stretch">
            <staticText>
                <reportElement uuid="424923c4-ac9f-4763-919e-afe81870fb6f" x="0" y="0" width="100" height="20"/>
                <textElement/>
                <text><![CDATA[number]]></text>
            </staticText>
        </band>
    </columnHeader>
    <detail>
        <band height="28" splitType="Stretch">
            <textField>
                <reportElement uuid="4b06f8cf-15d3-44a3-9edf-31e5f760fac6" x="0" y="0" width="100" height="20"/>
                <textElement/>
                <textFieldExpression><![CDATA[$F{number}]]></textFieldExpression>
            </textField>
            <break>
                <reportElement uuid="278dc135-0e6b-4d47-84bc-b3bf79c90edf" x="0" y="20" width="100" height="1">
                    <printWhenExpression><![CDATA[$V{REPORT_COUNT} <= 15]]></printWhenExpression>
                </reportElement>
            </break>
            <textField>
                <reportElement uuid="80635d70-845f-4893-9f42-f13a064a255d" x="298" y="8" width="100" height="20"/>
                <textElement/>
                <textFieldExpression><![CDATA[$V{REPORT_COUNT}]]></textFieldExpression>
            </textField>
        </band>
    </detail>
    <pageFooter>
        <band height="24" splitType="Stretch">
            <textField>
                <reportElement uuid="bc3035b9-7989-46a4-abf6-ff10ec486a60" x="0" y="0" width="100" height="20"/>
                <textElement/>
                <textFieldExpression><![CDATA[$F{code}]]></textFieldExpression>
            </textField>
        </band>
    </pageFooter>
    <lastPageFooter>
        <band height="24">
            <textField>
                <reportElement uuid="3d6e71b0-7fb7-40ec-9e04-529f39003e71" x="0" y="0" width="100" height="20"/>
                <textElement/>
                <textFieldExpression><![CDATA[$F{code}]]></textFieldExpression>
            </textField>
        </band>
    </lastPageFooter>
</jasperReport>
4

1 に答える 1

2

試す

 $V{REPORT_COUNT} == 15+(($V{PAGE_NUMBER}-1)*15)

サブレポート詳細バンドのブレークの Print When 式。

于 2013-05-06T15:28:09.607 に答える