tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル 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 が作成される。

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。