タイトル | : Re^3: ボタンをクリックでPDFを作成したい |
記事No | : 9551 |
投稿日 | : 2009/11/05(Thu) 15:20 |
投稿者 | : 魔界の仮面弁士 |
> (SQL Serverはデータの保存だけで、基本はクライアント側のVBで管理を考えていました)
サーバーサイドでの作成も可能ですし、クライアント側での PDF 作成も可能です。 たとえば下記では、SQL Server に接続する事無く、DataTable の内容を PDF として出力しています。
1. 新規に WinForm アプリを作成。 2. [プロジェクト]-[新しい項目の追加]で、"データセット" DataSet1.xsd を追加。 3. DataSet デザイナを右クリックして、[追加]-[データテーブル]を選択。DataTable1 が生成される。 4. DataTable1 を右クリックして、[追加]-[列]を選択。Column1 が生成される。 5. 同様にして、Column2 列も追加する。 6. [プロジェクト]-[新しい項目の追加]で、"レポート" Report1.rdlc を追加。 7. ツールボックスから[一覧]を選択し、Report1 のデザイナ上に貼り付ける。 8. [データ]-[データソースの表示]を選択し、データソースウィンドウを開く。 9. データソースウィンドウから、DataSet1-DataTable1 の下にある Column1/2 を選択し、 それを Report1 上に貼った「一覧(list1)」の中に配置する。 10. Form1 デザイナに戻り、ツールボックスから ReportViewer を貼りつける。 11. ReportViewerのタスクで、先ほどの Report1.rdlc レポートを選択する。 12. Form をダブルクリックして、コードウィンドウを開く。 すでに、Form1_Load に『Me.ReportViewer1.RefreshReport()』と書かれているので、 その直前に以下のダミーデータ作成処理を追加する。
Me.DataSet1.DataTable1.Rows.Add("123", "あいうえお") Me.DataSet1.DataTable1.Rows.Add("456", "かきくけこ") Me.DataSet1.DataTable1.Rows.Add("789", "さしすせそ")
13. Form1 デザイナに戻り、ボタンを貼る。(Button1) 14. Button1 をダブルクリックして、Button1_Click に 下記コードを追加。
Dim bin() As Byte = Me.ReportViewer1.LocalReport.Render( _ "PDF", Nothing, Nothing, Nothing, Nothing, Nothing, Nothing) My.Computer.FileSystem.WriteAllBytes("C:\sample.pdf", bin, False) Process.Start("C:\sample.pdf")
15. アプリケーション実行。ボタンを押すと PDF が作成される。
|