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

回答1件
0
ベストアンサー
レコードを横に何列か出力するにはレポートのプロパティのColumn Countを1から増やせば2列、3列と作れます。ただし、このやり方は今回の例で言うと1ページ目にあ行、か行、2ページ目にさ行、た行、と、2グループごとに改ページされます。同じページにあ行、か行、さ行、た行、とはできません。
参考にSampleDBのADDRESSを使って、FAMILYNAMEの頭文字でグループ分けした例を記載します。
XML
1<?xml version="1.0" encoding="UTF-8"?> 2<!-- Created with Jaspersoft Studio version 6.3.1.final using JasperReports Library version 6.3.1 --> 3<!-- 2017-01-12T16:06:43 --> 4<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"> 5 <property name="com.jaspersoft.studio.data.defaultdataadapter" value="Sample DB"/> 6 <property name="com.jaspersoft.studio.data.sql.tables" value=""/> 7 <queryString> 8 <![CDATA[SELECT 9 ADDRESS.*, 10 LEFT(FIRSTNAME, 1) AS INITIAL 11FROM 12 ADDRESS 13ORDER BY 14 FIRSTNAME ASC, LASTNAME ASC]]> 15 </queryString> 16 <field name="ID" class="java.lang.Integer"/> 17 <field name="FIRSTNAME" class="java.lang.String"/> 18 <field name="LASTNAME" class="java.lang.String"/> 19 <field name="STREET" class="java.lang.String"/> 20 <field name="CITY" class="java.lang.String"/> 21 <field name="INITIAL" class="java.lang.String"/> 22 <group name="Group1" isStartNewColumn="true"> 23 <groupExpression><![CDATA[$F{INITIAL}]]></groupExpression> 24 <groupHeader> 25 <band height="30"> 26 <textField> 27 <reportElement x="0" y="0" width="180" height="30" uuid="bafc7f05-cf4b-4ef2-a8ad-c0dcc5bde689"/> 28 <textElement textAlignment="Center" verticalAlignment="Middle"/> 29 <textFieldExpression><![CDATA[$F{INITIAL}]]></textFieldExpression> 30 </textField> 31 </band> 32 </groupHeader> 33 </group> 34 <background> 35 <band splitType="Stretch"/> 36 </background> 37 <detail> 38 <band height="30" splitType="Stretch"> 39 <textField> 40 <reportElement x="0" y="0" width="40" height="30" uuid="25435954-762f-4c10-a091-d88208af26e4"/> 41 <textFieldExpression><![CDATA[$F{ID}]]></textFieldExpression> 42 </textField> 43 <textField> 44 <reportElement x="40" y="0" width="70" height="30" uuid="ea068eb0-2b6d-4108-91c8-0580f795498f"/> 45 <textFieldExpression><![CDATA[$F{LASTNAME}]]></textFieldExpression> 46 </textField> 47 <textField> 48 <reportElement x="110" y="0" width="70" height="30" uuid="9f6b0647-66ec-43bb-aa8e-56a4e8374c09"/> 49 <textFieldExpression><![CDATA[$F{FIRSTNAME}]]></textFieldExpression> 50 </textField> 51 </band> 52 </detail> 53</jasperReport>
###追記
肝心なところは以下のとおりです。
- レポートのプロパティでColumn Countを増やすことでDetailが横並びにできる
- グループのisStartNewColumnをtrueにすることでグループごとに隣の列に出力される
- クエリはちゃんとグループごとにソートされていないとおかしなことになる
投稿2017/01/12 07:30
編集2017/01/12 07:34総合スコア9210
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/01/12 08:21