- PR -

請求書印字について。

1
投稿者投稿内容
kami
ベテラン
会議室デビュー日: 2004/08/21
投稿数: 95
お住まい・勤務地: 大手町
投稿日時: 2006-08-16 05:00
おはようございます。
いつも大変お世話になっております。
表題の件で、アドバイスをしていただければと思い、書き込みさせて頂きます。

現在、C#.NET 2003にて、顧客情報管理のWebアプリを作成しております。
現在問題となっているのが、請求書の印刷です。
この請求書印字とは、「請求書」「請求書(控)」「納品書」「受領書」の4種類となります。

各ページの最上部にそれぞれなんの種類か(4種類のうち)が書いてあり、
それ以外は全て表記する項目は同じです。
入力ページで一回入力し、印刷ページに移行すると、4枚に複製され印字されるという形を想定しております。

現在、この複製ではまっており、品目、数量、金額、備考などをそれぞれテキストボックスでtableに配置し、4枚にすると400を超えてしまいレスポンスも悪く、またPGの作成過程においてもすっきりせず、もやもやした感じになっております。

指定の書式をtableなどを用いて表現している為でもあります。

スマートにできる方法などがありましたら、ご教授下さい。
さかもと
ぬし
会議室デビュー日: 2004/05/14
投稿数: 586
投稿日時: 2006-08-16 07:36
さかもとと申します。

これは、CrystalReportsなどの帳票アプリを使わないという前提でしょうか?

じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-08-16 10:55
kami さん、こんにちは。

引用:

kamiさんの書き込み (2006-08-16 05:00) より:

現在、この複製ではまっており、品目、数量、金額、備考などをそれぞれテキストボックスでtableに配置し、4枚にすると400を超えてしまいレスポンスも悪く、またPGの作成過程においてもすっきりせず、もやもやした感じになっております。


現在どのように印書処理を行われているかは存じませんが、
結局のところ、各 1 帳票に付き 1 ジョブにしかなり得ないです。

PrintDocument で自前で印字しているならともかく、
すでに 3rd パーティの帳票コンポーネント (CrystalReports、ActiveReports、VSVIEW 等)
を使用されているのであれば、印字側については改善の余地はないでしょう。

ただし、"テキストボックスでtableに配置し" という 1 文が気になります。
データソースとして、DataSet (DataTable) で渡しているという意味であれば、気になりませんが...

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
kami
ベテラン
会議室デビュー日: 2004/08/21
投稿数: 95
お住まい・勤務地: 大手町
投稿日時: 2006-08-16 23:52
こんばんわ。
返信ありがとうございます。

帳票関係は今まで関わらないように逃げていました。(汗
CrystalReportsは、言葉のみしっている感じで、調べたところ帳票向けのソフト?っぽいですね。
.NETだと一部の機能が使えるっぽいですが、、、果たしてこれで指定の書式を作成できるのか?と、疑問な所です。
また、試しに配置してみるも、なんだこれはΣ という感じで、うまく使えない状況です。
よろしければ、Web帳票の説明があるページをご紹介頂ければと思います。


じゃんぬねっとさん、こんばんわ。

じゃんぬさんに呼ばれると ドキッっとして汗まみれなのですが・・・。ドキドキ。

もともとはPHPで作成されていたもので、
入力画面(セッションで各値保持) → 出力画面(セッションからデータ取得表示)
テーブルにform textboxが多数配置   <TD><?php $SessionData ?></TD>

という感じです。
上記の感じで、表を4種類作成し、書類名目のみ変えた物。
1ページ目(請求書)、2ページ目(請求書(控))、3ページ目(受領書)、4ページ目(納品書)

セッションデータを表示するのは各書類の中に
 品目 数量 金額 備考 適用






5列15行の表があるためです。
1ページだけで、75コントロール・・・。

今回はこれをC#.NETで、入力画面の情報をDataSetに保存し、出力画面でDataSetから表示へ渡そうとしています。

*あ〜今思ったら、サーバコントロールのラベルではなく、HTMLのラベルでもDataSetから表示できるのかな・・・できれば軽くなるかな・・・でも手間だな・・・と思考が。。。

帳票の経験値が無いため、アフォな事してると思います。
自分でも「えー・・・もっと良いやり方あるんじゃな〜い?」と、思っていても良い案がみつからんとです。

以上です、よろしくお願いします。

P.S.
//質問者は情報が欠けているのではく、なにが足りないのかがわからない。
//回答者の立場を幾度と経験していくと、良い質問者になれそうだなと思った。
//新人の質問者は回答者に指摘されるまで、情報が足りない事に気づかないから
//質問→追加情報要求→情報追加→解決 の流れになってしまうのかなと、悟った。(謎
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-08-17 07:31
引用:

kamiさんの書き込み (2006-08-16 23:52) より:

.NETだと一部の機能が使えるっぽいですが、、、果たしてこれで指定の書式を作成できるのか?と、疑問な所です。


CrystalReports は、固定行の単票形式は苦手ですが、一応可能です。

引用:

よろしければ、Web帳票の説明があるページをご紹介頂ければと思います。


Web 帳票といってもたくさんございますので、製品を決めてから検索されると良いと思います。

引用:

じゃんぬさんに呼ばれると ドキッっとして汗まみれなのですが・・・。ドキドキ。


ご、ごめんなさい... orz

引用:

上記の感じで、表を4種類作成し、書類名目のみ変えた物。
1ページ目(請求書)、2ページ目(請求書(控))、3ページ目(受領書)、4ページ目(納品書)

セッションデータを表示するのは各書類の中に
 品目 数量 金額 備考 適用
5列15行の表があるためです。
1ページだけで、75コントロール・・・。
今回はこれをC#.NETで、入力画面の情報をDataSetに保存し、出力画面でDataSetから表示へ渡そうとしています。


今回は、ActiveReports for .NET 2.0J Professional Edition をお勧めします。

ただ、1 ページで重複している部分を省略することはできないでしょうね。
サブ レポートを埋め込む方法も考えられますが、逆に手間が増えそうな気がします。

引用:

*あ〜今思ったら、サーバコントロールのラベルではなく、HTMLのラベルでもDataSetから表示できるのかな・・・できれば軽くなるかな・・・でも手間だな・・・と思考が。。。


サーバーコントロールの Label == HTML の <span> 要素です。
大差はないかと思います。

引用:

P.S.
//質問者は情報が欠けているのではく、なにが足りないのかがわからない。
//回答者の立場を幾度と経験していくと、良い質問者になれそうだなと思った。
//新人の質問者は回答者に指摘されるまで、情報が足りない事に気づかないから
//質問→追加情報要求→情報追加→解決 の流れになってしまうのかなと、悟った。(謎


回答者も手探りになってしまうことは確かにあります。
しかし、その場合もうまく情報を引き出せるようになりたいと思っております。
私たちも質問者から勉強できるところは多いと思います...

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2006-08-17 23:21
VS 付属のクリスタル レポートを使う前提で:
 1ページ(「ページ」という言い方をするのかどうか?)に10行印刷するとして、内容が6行分しかないなら、4行の空白を追加してやれば、6行しか印刷されない10行分のデータが出来ますよね?

 タイトルだけ変わるなら、1つのフォームでタイトルを可変フィールドとし、プログラム側でタイトルを埋め込むようにして4回呼んでやれば、タイトルが違って明細が同じ、4つの帳票が印刷できますよね?


引用:

P.S.
//質問者は情報が欠けているのではく、なにが足りないのかがわからない。
//回答者の立場を幾度と経験していくと、良い質問者になれそうだなと思った。
//新人の質問者は回答者に指摘されるまで、情報が足りない事に気づかないから
//質問→追加情報要求→情報追加→解決 の流れになってしまうのかなと、悟った。(謎


 あなたの仕事を知らない、同じ職場の人に聞いてみればいいんですよ。その人に答えを求めるのではなく、質問している意味がわかるかどうか、聞けばいいのです。その人に聞かれたことは、ウェブ コミュニティでも必要とされる情報です。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-08-18 08:45
引用:

Jittaさんの書き込み (2006-08-17 23:21) より:

VS 付属のクリスタル レポートを使う前提で:
 1ページ(「ページ」という言い方をするのかどうか?)に10行印刷するとして、内容が6行分しかないなら、4行の空白を追加してやれば、6行しか印刷されない10行分のデータが出来ますよね?


いえ、グループ フッタに固定行の罫線を設置しておき、アンダーレイ するのが王道かなと思います。

引用:

 タイトルだけ変わるなら、1つのフォームでタイトルを可変フィールドとし、プログラム側でタイトルを埋め込むようにして4回呼んでやれば、タイトルが違って明細が同じ、4つの帳票が印刷できますよね?


そうですね、タイトルのみ式フィールドにしておいて C# 側から設定すれば良いです。
ただ、4 帳票バラで作った場合と負荷は相違ないです。

[ 編集 : s/オーバーレイ/アンダーレイ/g ]

[ メッセージ編集済み 編集者: じゃんぬねっと 編集日時 2006-08-18 12:15 ]
1

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