- PR -

縦項目も横項目も複数ある場合の印刷

1
投稿者投稿内容
みかりん☆ミ
会議室デビュー日: 2009/03/29
投稿数: 4
投稿日時: 2009-03-29 17:24
お世話になります。
印刷の画面に困っています。

ASP.NET 2.0
C#
Windows 2000 と Windows XP
Microsoft SQL 2005 Express Edition
上記の環境で開発しております。

iTextSharpで、見積一覧表を作成しようと思っています。

列タイトルには、業者名、
行タイトルには、製品、
行列一致する箇所には、該当する業者名の製品価格、
というような一覧表を作成したいのですが、
業者名も製品も複数あり、見積書毎に数も違います。

上から順に書き込んでいくように、
IDataReader で、下記のように業者名を読み込み、

IDataReader reader_gyousha = (IDataReader)sds_gyousha.Select(DataSourceSelectArguments.Empty);
 while (reader_gyousha.Read())
 {
  Cell kCell1_6 = new Cell(new Phrase(string.Format("{0}", reader_gyousha["業者名"]), fntNormal));
  seihin_table.AddCell(kCell1_6);
kCell1_6.BorderWidth = 1;
}

次にIDataReader で、1製品ずつ読み込みながら、
下記のように価格を読み込んでいます。

IDataReader reader_seihin = (IDataReader)sds_seihin.Select(DataSourceSelectArguments.Empty);
 while (reader_seihin.Read())
{
  Cell kCell4_3 = new Cell(new Phrase(string.Format("{0}", reader_seihin["製品名"]), fntNormal));
seihin_table.AddCell(kCell4_3);
kCell4_3.BorderWidth = 1;

IDataReader reader_gyousha2 = (IDataReader)sds_gyousha.Select(DataSourceSelectArguments.Empty);
  while (reader_gyousha2.Read())
  {
   Session["gid"] = reader_gyousha2["業者ID"];
Session["sid"] = reader_seihin["製品ID"];
   IDataReader reader_gyousha_kakaku = (IDataReader)sds_kakaku.Select(DataSourceSelectArguments.Empty);
   while (reader_gyousha_kakaku.Read())
   {
    GyoushaCount++;
    Cell kCell4_8 = new Cell(new Phrase(string.Format("{0:#,###}", reader_gyousha_kakaku["価格"]), fntNormal));
    seihin_table.AddCell(kCell4_8);
   }
  }
 }

このやり方でいくと、
業者名は、5列、製品は、20行まで1ページに印字可能とすると、
それ以上になった場合には、はみ出てしまいます。

配列などを使ってやるにしても、
どのように配列にいれ、どのようにしたら、改ページが
うまくいくか分からりません。
どなたか、教えて下さい。
1

スキルアップ/キャリアアップ(JOB@IT)