• 締切済み

iReportを出力するために

今、トムキャットとMySQLを使いながら簡単なHPを作っています。 サーブレットを使って、HPを出力しているのですが、 そのHPに入力された情報をXmlファイルに出力して、 iReportに出力しようとしています。 殆ど初心者なので、色々調べながらやってたのですが、 もう何がなにやらになってしまいました。 HPの画面上には、2個ボタンがあり1個はDBからデータを 取得して、画面に表示させます。(これはできてます) もう1個のボタンで画面の表示情報をxmlファイルに落として iReportを呼び出して帳票出力をしようとしているのですが そこが全く出来ない状態です。 簡単なサンプルなど分かりやすく教えて頂けませんか。 よろしくお願い致します。

  • Java
  • 回答数2
  • ありがとう数4

みんなの回答

  • askaaska
  • ベストアンサー率35% (1455/4149)
回答No.2

画面のデータをXMLに変換する →まずはXMLに出力するデータをサーバに送る(もしくはSession内に格納しておく) データベースから取得した内容をXMLに出力するのよね。 取得した内容を再度サーバ側に送るなり 取得したときにHttpSessionに格納しておくなりすればいいじゃない。 これでデータの準備はOKね。 次XMLファイルの作り方。 方法は2つ。 ・JavaのXML用のAPIを使う方法 ・FileWriterでベタに出力する方法 かっこいいのは前者、簡単なのは後者 バタフライとビート板バタ足くらいの難易度の差があるわ。 前者については「Java Dom」でぐぐればサンプルはいくつも見つかるわ。 後者については「FileWriter」でぐぐれば見つかるわ。

HAL009
質問者

お礼

askaaskaさんに教えて頂いたのを調べた結果出来ました。 ありがとうございました。

  • askaaska
  • ベストアンサー率35% (1455/4149)
回答No.1

まったくできないのはなぜ? おそらく 「何かを知らない」 のが原因だと思うんだけど たとえば 1.そもそもiReportの使い方がわからない 2.iReportを使う流れはできている、でもXMLの作り方がわからない 3.XML作ることはできるけど、画面の情報をどうやってXMLに落としていいのかわからない などね

HAL009
質問者

補足

早速のご回答ありがとうございます。 ノートパッドで出力するデータを入れたxmlファイルを作成し、 iReportで帳票の作成までは出来ています。 2~3が分かっていません。 質問の内容が曖昧で申し訳ありません。

関連するQ&A

  • Active reportの処理に関して

    現在、Visual Studio2008で、C#とActive report、 MySQLを用いて帳票を作成しようとしています。 Active reportのサンプルに記述してあるバウンド処理や、アンバウンド処理 でMySQLから取得した情報を直接帳票に出力する事はできるようになりました。 但し、一般的なイメージとしては、印刷ボタンが押された段階で、画面上からの検索条件 を取得し、それをベースにDBへ検索しにいった結果をデータセットへ格納し、それを 帳票で使用して出力するようなイメージがありました。。。 そもそもその考え方が間違っているのでしょうか??? 私の知識不足ではあるかとは思いますが、上記のバウンド処理やアンバウンド処理では、 画面からの条件での検索がうまくいきません。 どういう形で出力するのが一般的なのでしょうか??? また、そのサンプル的なものも教えて頂ければ幸いです。 よろしくお願いします。

  • 帳票出力について

    現在、Javaを使用したWebアプリ開発を行っており 下記の処理でローカル環境(開発用PC)では正常にいくが、サーバ環境では異常終了 となる事象が発生しております。 どなたか対応策をご存じな方がいましたらご回答よろしくお願い致します。 また未実施調査もあり、その調査方法が不明なため合わせてご回答よろしく お願い致します。 ■処理概要 画面に帳票ボタンがあり、そのボタンを押下すると別ブラウザに 帳票(PDF)が出力される。 ■処理内容(帳票ボタン押下) (1)DBから帳票出力対象となるデータを抽出 (2)(1)で抽出したデータを加工 (3)(2)で加工した帳票データを、帳票定義体とバインド (4)(3)でバインドした帳票を別ブラウザに表示 ■異常終了概要 押下されたボタンによって出力する帳票が異なり、 帳票出力対象データが大量にある場合、ある1つの帳票だけが 1時間ほど待っても出力結果がかえってこなかった。 そのためログを確認すると「java.net.SocketException: Broken pipe」が発生していた。 ※それ以外の帳票については正常に帳票出力される。 ■異常終了発生箇所について サーバ環境でログを確認したところ、処理内容の(3)までは正常に処理されており (4)の別ブラウザに表示する際に異常終了となっていた。 (4)の詳細処理内容として、(3)で作成した帳票データ(バインド済み帳票)を javax.servlet.HttpServletResponse.getOutputStreamで取得したOutputStreamに 書き込み、そのOutputStreamをflushする処理になっている。 ※異常終了は「帳票データをOutputStreamに書き込み」時に発生している。 ======================================= 現在、異常終了となる帳票処理について調査した結果以下の事が判明した。 ■調査内容 ・大量データ時に異常終了となる帳票は、データを減らすと正常に帳票出力される。 ・他帳票と比べ、帳票データ作成時間が長い。 ※1.帳票データ作成時間は、帳票データをOutputStreamに書き込む時間は含んでいない。 ※2.上記帳票はデータを減らし調査している。 ・他帳票と比べ、帳票のファイルサイズは小さい ・1つのPCをWebサーバ、APサーバ、DBサーバとしている。サーバ環境内容として OS:Linux(CentOS) Web:Apache AP:Tomcat DB:PostgreSQL ・帳票データ作成時間が5分を越える場合、当事象(broken pipeエラー)が発生する。 ※1.帳票データ処理にJavaのSleepメソッドで5分超える/越えない時間を設定し調査した。 ※2.Tomcat、Apacheの設定ファイル(Web.xml,Server.xml,httpd.conf)を確認したが 5分(300秒、600000ミリ秒)の記載箇所は見つからなかった。 ※3.帳票データ作成時間が5分を超える=サーバからクライアントへの応答が5分以上ない ・IEの仕様で「サーバーからデータが返されるまでのタイムアウト時間(5分)が設定されている」 との記事があり、レジストリを修正しタイムアウト時間を60分にしたが解決しなかった。 ・対象データに問題がない(Linuxで扱えない文字などはない)事を確認した。 ■調査方法不明 ・Linux側(サーバ)でクライアントへ5分応答がない場合、コネクションを切断しているのでは ないかと考えた(ネットワークの設定など)が、どの設定ファイルを確認すればよいか分からない。 ※もしそれが原因だった場合の対応方法についても

  • CSVファイルへ出力

    jspとjavaBeansを使用しています。 顧客情報をDBから検索して明細を画面出力し帳票印刷する ために、データをCSVファイルへ出力したいのですが、 どうやってCSVファイルへ出力するのでしょうか? ごく簡単な形式でいいので教えて下さい。

    • ベストアンサー
    • Java
  • java log4jの環境設定

    調べてみたのですが、参考になるページが見当たらなかったので(私が理解できなかっただけかもしれませんが。。) ご質問させていただきます。 表題の件です。javaのサーブレットを用いてログ出力する為にlog4jを使用しています。 そのため、log4j.xmlにファイルの出力先やらなんやらを記述しています。(これが通常だと思います) tomcatのWEBアプリケーションパッケージですので、DB接続等の設定は「META-INF/context.xml」に記述(Javaアプリ側で名前解決してDatasourceとして取得)しています。 上記からDB接続情報、ログの出力先情報はそれぞれ別ファイル(XML)から取得していますが、環境依存する値なので、編集するならひとつのファイルから行いたいです。 できれば、log4jのファイル出力先情報等をcontext.xmlにて記述して解決したいです。 (理由:tomcat6/servlet2.5を使用しており、tomcat6のdbcpを使用してコネクションプーリングしている為、DB接続の方法は変更したくない為) 以上、ご存知の方ご教授お願いできますでしょうか。

    • ベストアンサー
    • Java
  • Tomcatのスレッドを破棄する方法

    はじめまして。 使用ツール:Tomcat 6.0 前提条件:Tomcatのserver.xmlでmaxThreads="1"と記述し、同時にスレッドが1つしか動作しないようにしている 質問: ブラウザでDBに登録されている全ての情報を取得し表示する時の動作。 ブラウザ(情報取得ボタン押下) ↓ サーブレット:DB(情報取得) ↓ ブラウザ(結果出力)  DBからの情報取得の処理が多少時間がかかってしまうため、その間にブラウザの中止ボタンが押下されてしまう場合があります。  その場合、ブラウザ⇔HTTPサーバ(Tomcat)でのセッションは切れているのですが、サーブレットの処理は継続して行われています。  再度、情報取得ボタンが押下されると、前提条件でスレッドが1つしか作成しないようにしているため、前の処理が終了するまで待機しするという形になっています。  この場合、中止→取得→中止→取得と何度も繰り返される(IEの場合取得ボタンを連打でも可)と、さらに結果の出力が遅くなるということがおきてしまいます。  これを解決するために、Tomcatが新しいリクエストを受け取った場合、現在のスレッドを破棄するといった形にできればと考えています。  上記の考えで調査を行っているのですが、良い情報を見つけることが出来ません。    実際にTomcatが現在実行中のスレッドを破棄し、新しいリクエストを受付けて処理を実行するといったようなことはできるのでしょうか?  ご存知の方がいらっしゃったら、どうか助言をよろしくお願いいたします。

  • javaサーブレットでjspへのフォワード処理と、ファイルに出力処理を行いたいのですが。。

    今javaサーブレットとjspでツール作成中です。 DBにアクセスして、その内容をCSVファイルに書き出すというツールなのですが、サーブレットではjspにフォワードという処理と、ファイルに出力という処理の二つを同時に行うことができるのでしょうか。 たくさんの本やサイトにそれぞれ片方の処理だけする場合は載っているのですが、両方を並行して処理させる場合のサーブレットの書き方がわかりません。。 jspからの情報をもとにサーブレットでDAOを生成、DBにアクセスし、検索結果をDTO(一行の情報はBean)に格納し、それをサーブレットからjspにフォワード&CSV出力というものを作りたいと思っています。 よろしくお願いします。

  • チェックボックスにチェックしたものを削除

    はじめまして。 htmlのフォームタグからjavaサーブレットを用いて、表形式で出力した検索結果一覧画面(jsp)から、チェックボックスにチェックしたものをまとめて削除したいと思います。 一覧画面でチェックボックスを表示させるまではできたのですが、そこからサーブレットへ値の受け渡し(複数)、データベースへ消しこみに行く処理についてご指南願います。 (環境) windows2000pro tomcat4.1 mysql よろしくお願いします。

    • ベストアンサー
    • Java
  • Javaサーブレット

    Javaサーブレットの初心者です。 「標準 MySQL 改訂第3版」(2007,3月発行)という本でMySQLを勉強しようと始めたのですが、それ以前の場所で詰まってしまいました。 本の流れは  Apache,MySQL,Tomcat,J2SEをインストール → Apacheの動作確認 → Tomcatの動作確認 → ApacheとTomcatを連携させる。(ここまでは正常に動いています。)→Javaサーブレットの動作確認 ここでブラウザから ​http://localhost/java/Test​ と入力すると 「Hello Java」と表示されるはずなのですが HTTPステータス 404 - /java/Test というエラー画面になってしまい、表示されません。 すべて本に書いてあるとおりにやりました。 ファイルの中身なども何度も見直しました。 なぜ表示されないのか教えてください。 お願いします。

  • Javaサーブレット

    Javaサーブレットの初心者です。 「標準 MySQL 改訂第3版」(2007,3月発行)という本でMySQLを勉強しようと始めたのですが、それ以前の場所で詰まってしまいました。 本の流れは  Apache,MySQL,Tomcat,J2SEをインストール → Apacheの動作確認 → Tomcatの動作確認 → ApacheとTomcatを連携させる。(ここまでは正常に動いています。)→Javaサーブレットの動作確認 ここでブラウザから http://localhost/java/Test と入力すると 「Hello Java」と表示されるはずなのですが HTTPステータス 404 - /java/Test というエラー画面になってしまい、表示されません。 すべて本に書いてあるとおりにやりました。 ファイルの中身なども何度も見直しました。 なぜ表示されないのか教えてください。 お願いします。

  • VB2005でのエクセルへのデータ出力

    タイトルどおりなのですが、DBからマスタのデータを単純にエクセルに出力するだけなのですが、どういったやり方が一番高速に処理できるのでしょうか? マスタのデータをデータテーブルに取得して、データテーブルをループさせながら、1レコードごとにエクセルに出力するようなやり方しか思いつかないのですが、もっと効率的で高速に処理できる方法があれば教えて下さい。 ちなみに、エクセルは新規ファイルではなく1行目にマスタのテーブルのカラム名を記述している既存ファイルのエクセルに出力していく形になります。 画面の動作としては、マスタメンテの画面にある「出力」ボタンをクリックすることで、ファイルダイアログを表示して保存先を決めたら、出力開始というイメージです。 できれば、サンプルコードなどあれば有難いです。 宜しく、お願いします。 開発環境: OS:WinXP SP2 DB:Oracle 10g(?)、すみません。バージョンまであってるかは不明です。 言語:VB2005Pro Excel:Excel2000

専門家に質問してみよう