タイトル : Re^3: ボタンをクリックでPDFを作成したい 投稿日 : 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 が作成される。 |