報告書印刷について

タグの編集
投稿者 YUU  (社会人) 投稿日時 2015/1/24 20:53:25
現在、Windowsフォームに入力させたデータを報告書として印刷できればと考えております。

コンボボックスで選んだ内容や、チェックボックスで選択した情報、テキストボックス等に入力されたデータを紙に印刷したいのですが何かよき方法はないものでしょうか?

一度はフォームそのものを出力していたのですがそうではなくWordのような感じで出力したいのです。

細かくはいいのでタイトルや横線での区切り文字の位置等を指定できたらいいのですが。

クリスタルレポートや標準のレポートも考えたのですがそれらを利用せず作成する方法はありませんか?

処理的には、
1、必要な情報をコントロールに入力。

2、入力後印刷ボタンを押す。

3、指定の配置で文字の入った(タイトル付き)報告書もどきを出力。

4、印刷

具体性がなく申し訳ありませんがお力を貸していただけると幸いです。
投稿者 daive  (社会人) 投稿日時 2015/1/24 21:29:17
昔々の、プリンタの制御コマンドを使ってという、話ではなさそうなので、
せっかく来ている、VB中学校の、各講座は御覧になっていますか?
まだでしたら、もったいないので、一通り目を通した方が良いかと、思います。

便利なツールが無かったときは、時間と紙を大量に無駄にして、やってましたっけ。

C# と VB.NET のサンプル
DOBON.NET プログラミング道
他にもサンプルがあります。
投稿者 るきお  (社会人) 投稿日時 2015/1/25 16:57:47
VB標準の機能だけで印刷する方法は下記記事で説明していますので、よろしければ参考にしてください。

初級講座 第35回 印刷
http://homepage1.nifty.com/rucio/main/dotnet/shokyu/index_sta.htm

初級講座 第38回 実技3 ファイル一覧の印刷
http://homepage1.nifty.com/rucio/main/dotnet/shokyu/standard38.htm
投稿者 るきお  (社会人) 投稿日時 2015/1/25 16:58:28
第35回の方のURLを間違いました。
正しくはこちらです。
http://homepage1.nifty.com/rucio/main/dotnet/shokyu/standard35.htm
投稿者 YUU  (社会人) 投稿日時 2015/1/25 18:56:36
daive様、るきお様。返信ありがとうございます。

リンク先読ませていただきました。いくつかこちらの講座は確認していたのですが求めていたものが近くにあるとは・・・。感謝です。

拝見させていただいた上でいくつか疑問、質問が出たのでお聞きしてもよろしいでしょうか?

①今回はURL先の講座内容を参考にさせていただく予定ですがこの作成した印刷物をPDFへ保存は可能なのでしょうか?再度印刷できることを考慮して1週間分ほどPDFとして残しておきたいのですが。
iTextというのが利用できるみたいですが。

②そもそも帳票のようなものはどういった形で出力するのがベストなのでしょうか?
主流といった言い方が正しいのかわかりませんがよく.Net開発者が利用する手法を教えていただきたいです。
一応、クリスタルレポートは利用したことがありますが、Verやセットアップ、環境のセッティングなど利用するほどのメリットを現状は感じておりません。(それほど細かいデザインで作成する予定なし)

投稿者 るきお  (社会人) 投稿日時 2015/1/25 21:12:30
①PDFに保存

VBの仕組みではなく、PDFを生成する仮想プリンターを印刷に使用するプリンターに指定すればPDF化は可能です。

参考
http://help.adobe.com/ja_JP/acrobat/using/WS58a04a822e3e50102bd615109794195ff-7f2f.w.html

私は使ったことがありませんがAdobe社製ではないフリーソフト CubePrinterというものもあるようです。
http://www.forest.impress.co.jp/library/software/cubepdf/

PDFの仕様はオープンになっていますので、PDFの仕様を理解しながらVBの標準の機能だけでPDFを作成することも不可能ではないと思いますが相当ハードルは高いと思います。

iTextというのは私は知りませんが、上記のように仮想プリンターとしてふるまうか、または、PDF仕様に準拠してPDFを生成してくれるライブラリということなら検討してみても良いと思いますが、一般的なんでしょうか?(私にはわかりません。)

なお、とっておいて後で印刷するかもしれないということであれば、本来のデータをその期間だけとっておいて、いつでも再印刷できるようにすればPDFに依存しないで済みます。

②ベストな帳票出力

要件によって違い一概に言えません。「帳票といえばこれ」といえるほど普及している製品や手法はなく、必要な要件やプログラマの経験・得意分野によって手法は変わります。

私はあまりデザインにこらないごく簡単な帳票であればVB標準機能で済ましてしまうのが好みです。やはり、クリスタルレポート等外部の製品を入れるとバージョンやセットアップ・環境面で気にしなければいけないことが増えるのが嫌だからです。
だから、VB標準機能で十分ならそれでいいと思います。

ただ、後になって帳票の要求が増えてきてVB標準機能ではきつくなってくると、なにか製品を使用したほうが良いという状況も考えられますから、ある程度行き着く先を見定めておいたほうがよいです。

私がよく耳にする製品はクリスタルレポートのほかはActive Reportsです。
Accessのレポート機能をVBから呼び出すような使い方も以前はやっていましたが、最近はこのような使い方が一般的か判断できません。
あとはエンタープライズで帳票基盤を作るようなときはSVFやiWFMなどが登場してきます。
投稿者 daive  (社会人) 投稿日時 2015/1/26 03:47:18
iTextSharp
https://www.google.co.jp/search?hl=ja&q=itextsharp&lr=lang_ja&gws_rd=ssl
3流君のブログでも、コードサンプルが紹介されています。

クリスタルレポートが、SAPに買われてから、VS非添付になったので:無償版はある様子
Microsoft ReportViewer
を、VSで使えるようにしています。クリスタルレポートよりは、簡単です。
Reprting:昔のクリスタルレポートもこの場所、レポート。
WindowsForm / ASP.NET で使用可能です。出力:プリンタ/Word/Excel/PDFなど

Deploying Reports and ReportViewer Controls
https://msdn.microsoft.com/ja-jp/library/vstudio/ms251723(v=vs.120).aspx
レポートと ReportViewer コントロールの配置
https://msdn.microsoft.com/ja-jp/library/vstudio/ms251723(v=vs.110).aspx

②に関してベストは知りません。
 Windows では、EXCEL、WORD、PDFが標準的ですよね。
 EXCEL帳票を求められる事が多い & MS-OFFICEは標準で導入するので、
 VSから、Interop で、EXCELを主に使っています。
 VS2005へ移行した時は、情報も少なく、結構苦労したのは確かです。
(現在では、ネット上で情報が得られます。)
 現状でも、Microsoft.Office.Interop.Excel 名前空間の使用に、問題が無いわけではありません。
 ⇒VSサポートのバージョン依存:何とかなる、
  外国語版使用時の依存:該当言語版を入手するか、多言語機能を入手か
  ( VS Premium with MSDN  以上で、OFFICE含め、各国言語版開発ライセンス入手可)
 WEB用では、楽なのとライセンス無料で、Microsoft ReportViewer です。