Tomohiro Sudo
sudou****@yck*****
2009年 6月 11日 (木) 22:27:59 JST
JJBugメンバーの皆様 初めてメールをします。須藤と申します。 現在JBoss&Seamを利用してアプリケーションを作成しています。 Seam Excelを使用してExcelシートにDBの内容を表示しようとしているのですが、 どうしてもうまくいきません。 ※環境は以下の通りです。 OS:Win XP SP2 WAS:JBoss4.2.3GA WF:Seam2.1.1GA DB:postgreSQL8.3.7 現象としては以下の通りです。 Aテーブル a(主キー1) |b --------------- 1 |あ 2 |い 3 |う Bテーブル a(主キー1) |b(主キー2)|c ------------------------------ 1 |0 |か 3 |0 |き 3 |1 |く ※Aテーブルのa項目とBテーブルのa項目は1:0〜1:nの関係 このとき、Aテーブルを基に、Excelに以下のように出力させたいと思っております。 aテーブルのaカラム|aテーブルのbカラム|bテーブルのCカラム ------------------|---------------------------------- 1 |あ |か 2 |い | 3 |う |き ですが、いざExcelに表示しようとすると、以下のようになってしまいます。 (便宜上C) aテーブルのaカラム|aテーブルのbカラム|bテーブルのCカラム ------------------|---------------------------------- 1 |あ |か 2 |い | 3 |う |き |あ |か |い | |う |き | |か | | | |き プログラムなのですが、以下のようになっております。 ※上記のテーブル内容とプログラム内容は異なります @Stateful @Name("articleLists") public class ArticleTest01 implements Serializable, IArticleTest01 { /** * */ private static final long serialVersionUID = -5711205240750158830L; @Logger Log log; @DataModel(value = "articleListForms") List<ArticleListForm> articleListForms; @DataModelSelection private ArticleListForm articleListForm; @PersistenceContext(type = EXTENDED) private EntityManager em; @SuppressWarnings("unchecked") public List<ArticleListForm> getArticleListForms() { List<ArticleMst> articleMsts = em.createQuery( "select b from ArticleMst b order by b.artid").getResultList(); if (articleListForms == null){ articleListForms = new ArrayList<ArticleListForm>(); } for (int i = 0; i < articleMsts.size(); i++) { ArticleMst articleMst = articleMsts.get(i); List<Inspection> inspections = em.createQuery( "select b from Inspection b where b.artid =" + articleMst.getArtid() + "and insid = 0").getResultList(); articleListForm = new ArticleListForm(); if (inspections.size() >= 1) { Inspection inspection = inspections.get(0); articleListForm.setOkNg(inspection.getOkng()); } else { articleListForm.setOkNg("未実施"); } articleListForm.setArticleName(articleMst.getArtname()); articleListForm.setArticleDates(articleMst.getArtdates()); articleListForm.setArticleDatee(articleMst.getArtdatee()); articleListForms.add(articleListForm); } return articleListForms; @Remove @Destroy public void destroy() { log.info(this + " は破棄されました"); } } この中の「articleListForms」を利用して、Excelに表示しようとしていますが、 表示することができません。 どうも、ArticleMstを読み込んだ後に、for文でループさせると、 ループさせた回数分だけExcelに余計に表示されてしまう気がします。 これは、周知のバグなのでしょうか?それとも、表示の仕方が悪いのでしょうか?? 説明が分かりづらかったら申し訳ありません。 また再度説明させていただきます。 申し訳ございませんが、ご教示のほどお願いいたします。 -------------- next part -------------- HTMLの添付ファイルを保管しました... Télécharger