質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.50%

  • Eclipse

    1703questions

    Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

  • JasperReports

    42questions

    JasperReportsはオープンソースの帳票生成ツールです。JasperReportはPDF, HTML, Microsoft Excel, ODT, XML等の様々なフォーマットのものをエクスポートします。

jasperReport 帳票つくりに関して

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 1
  • VIEW 1,314

coko1

score 165

お世話になります。

現在上記のようなイメージで帳票を作ろうと試みています。データの参照方法はDBを使ったもので、A4白紙のテンプレートを使用しています。
ここで質問なのですが、
1.1グループごとを縦に表示していくのではなくて、横に表示していく方法。
2.1の続きとして、2つのグループ(画像上【あ行~か行】【は行~や行】)を1行として、2つごとに行を変えて表示させたい
3.1行ごとに長いものに枠を合わせる方法。(画像上1行目はあ行、2行目はは行の枠の長さに合わせている)
以上3つのことがわからなくて困っています。どちらかでもわかる方がいたら知恵を貸していただけると助かります。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

0

レコードを横に何列か出力するにはレポートのプロパティのColumn Countを1から増やせば2列、3列と作れます。ただし、このやり方は今回の例で言うと1ページ目にあ行、か行、2ページ目にさ行、た行、と、2グループごとに改ページされます。同じページにあ行、か行、さ行、た行、とはできません。
参考にSampleDBのADDRESSを使って、FAMILYNAMEの頭文字でグループ分けした例を記載します。

<?xml version="1.0" encoding="UTF-8"?>
<!-- Created with Jaspersoft Studio version 6.3.1.final using JasperReports Library version 6.3.1  -->
<!-- 2017-01-12T16:06:43 -->
<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" columnCount="3" pageWidth="595" pageHeight="842" columnWidth="185" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="58eacb39-66ae-476d-b3d6-069d8226173f">
    <property name="com.jaspersoft.studio.data.defaultdataadapter" value="Sample DB"/>
    <property name="com.jaspersoft.studio.data.sql.tables" value=""/>
    <queryString>
        <![CDATA[SELECT
    ADDRESS.*,
    LEFT(FIRSTNAME, 1) AS INITIAL
FROM
    ADDRESS
ORDER BY
    FIRSTNAME ASC, LASTNAME ASC]]>
    </queryString>
    <field name="ID" class="java.lang.Integer"/>
    <field name="FIRSTNAME" class="java.lang.String"/>
    <field name="LASTNAME" class="java.lang.String"/>
    <field name="STREET" class="java.lang.String"/>
    <field name="CITY" class="java.lang.String"/>
    <field name="INITIAL" class="java.lang.String"/>
    <group name="Group1" isStartNewColumn="true">
        <groupExpression><![CDATA[$F{INITIAL}]]></groupExpression>
        <groupHeader>
            <band height="30">
                <textField>
                    <reportElement x="0" y="0" width="180" height="30" uuid="bafc7f05-cf4b-4ef2-a8ad-c0dcc5bde689"/>
                    <textElement textAlignment="Center" verticalAlignment="Middle"/>
                    <textFieldExpression><![CDATA[$F{INITIAL}]]></textFieldExpression>
                </textField>
            </band>
        </groupHeader>
    </group>
    <background>
        <band splitType="Stretch"/>
    </background>
    <detail>
        <band height="30" splitType="Stretch">
            <textField>
                <reportElement x="0" y="0" width="40" height="30" uuid="25435954-762f-4c10-a091-d88208af26e4"/>
                <textFieldExpression><![CDATA[$F{ID}]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement x="40" y="0" width="70" height="30" uuid="ea068eb0-2b6d-4108-91c8-0580f795498f"/>
                <textFieldExpression><![CDATA[$F{LASTNAME}]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement x="110" y="0" width="70" height="30" uuid="9f6b0647-66ec-43bb-aa8e-56a4e8374c09"/>
                <textFieldExpression><![CDATA[$F{FIRSTNAME}]]></textFieldExpression>
            </textField>
        </band>
    </detail>
</jasperReport>

追記

肝心なところは以下のとおりです。

  • レポートのプロパティでColumn Countを増やすことでDetailが横並びにできる
  • グループのisStartNewColumnをtrueにすることでグループごとに隣の列に出力される
  • クエリはちゃんとグループごとにソートされていないとおかしなことになる

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/01/12 17:21

    ありがとうございます!参考にさせていただきます!

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.50%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • Eclipse

    1703questions

    Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

  • JasperReports

    42questions

    JasperReportsはオープンソースの帳票生成ツールです。JasperReportはPDF, HTML, Microsoft Excel, ODT, XML等の様々なフォーマットのものをエクスポートします。