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

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

新規登録して質問してみよう
ただいま回答率
85.48%
JasperReports

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

Eclipse

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

Q&A

解決済

1回答

6961閲覧

jasperReport 帳票つくりに関して

coko1

総合スコア276

JasperReports

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

Eclipse

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

0グッド

1クリップ

投稿2017/01/06 00:29

編集2017/01/06 00:37

お世話になります。

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

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答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
masaya_ohashi

総合スコア9206

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

coko1

2017/01/12 08:21

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問