- †raimu†
- ベテラン
- 会議室デビュー日: 2005/08/23
- 投稿数: 61
|
投稿日時: 2005-09-26 18:48
お世話になります。ライムです。
ActiveReportについて質問なのですが、
Webフォームのコントロール(TextBox等)の値を
ActiveReportのコントロールへ渡すことは可能なのでしょうか?
掲示板やヘルプも見たのですが、なにやら難しくて理解できなく…
よければ知恵をお貸し頂けないでしょうか。
お願いします。
|
- じゃんぬねっと
- ぬし
- 会議室デビュー日: 2004/12/22
- 投稿数: 7811
- お住まい・勤務地: 愛知県名古屋市
|
投稿日時: 2005-09-26 19:08
こんにちは、じゃんぬ です。
引用: |
|
†raimu†さんの書き込み (2005-09-26 18:48) より:
ActiveReportについて質問なのですが、
Webフォームのコントロール(TextBox等)の値を
ActiveReportのコントロールへ渡すことは可能なのでしょうか?
|
あれ? Web 版だと式フィールドへ値を渡せないんでしたっけ?
コード: |
|
Option Strict On
Imports Cr = CrystalDecisions.CrystalReports.Engine
Public Class CrystalReportsHelper
#Region " 式フィールドに値をセット "
Public Shared Sub SetFormulaFieldsText(ByVal hReport As Cr.ReportClass, ByVal nFieldName As String, ByVal nSetText As String)
Dim hObject As Cr.ReportObject = hReport.ReportDefinition.ReportObjects(nFieldName)
Dim hField As Cr.FieldObject = DirectCast(hObject, Cr.FieldObject)
DirectCast(hField.DataSource, Cr.FormulaFieldDefinition).Text = """" & nSetText & """"
End Sub
#End Region
End Class
|
ある掲示板で自分が書いたものを転送。(なので VB)
引用: |
|
掲示板やヘルプも見たのですが、なにやら難しくて理解できなく…
|
そういう場合は、"どこ" を見たのか指し示して欲しいです。
_________________ C# と VB.NET の入門サイト
じゃんぬねっと日誌
|
- ぼのぼの
- ぬし
- 会議室デビュー日: 2004/09/16
- 投稿数: 544
|
投稿日時: 2005-09-27 11:48
引用: |
|
†raimu†さんの書き込み (2005-09-26 18:48) より:
ActiveReportについて質問なのですが、
|
引用: |
|
じゃんぬねっとさんの書き込み (2005-09-26 19:08) より:
Public Class CrystalReportsHelper
|
製品違いませんか?(^^;
|
- †raimu†
- ベテラン
- 会議室デビュー日: 2005/08/23
- 投稿数: 61
|
投稿日時: 2005-09-27 12:15
返信ありがとうございます。
じゃんぬねっと様>
掲示して頂いたコードを埋め込んでエラーを修正しようとしましたが、
やはりCrystalReportsのコードだとどうにも…
きっとActiveReportで応用するよう掲示してくださったと解釈したのですが、
知識不足でどうしたら良いものか…(TT
|
- じゃんぬねっと
- ぬし
- 会議室デビュー日: 2004/12/22
- 投稿数: 7811
- お住まい・勤務地: 愛知県名古屋市
|
投稿日時: 2005-09-27 12:23
こんにちは、じゃんぬ です。
引用: |
|
ぼのぼのさんの書き込み (2005-09-27 11:48) より:
製品違いませんか?(^^;
|
あ、完全に誤爆しました... orz
(うわ、こんな長い時間放置されてたのか... orz)
で、お詫びに回答し直したいところなんですが、
ActiveReports の Web Edition は使ったことないんですよね... orz
Windows だと普通に ActiveReports 内のイベントから設定はできるんですよね。
ActiveReprots の Report クラスにプロパティを追加して、
Form の値を渡しておいて、Report 内のイベントで加工してセットしてやるような感じで。
Web だとできないのかな?
_________________ C# と VB.NET の入門サイト
じゃんぬねっと日誌
|
- ぼのぼの
- ぬし
- 会議室デビュー日: 2004/09/16
- 投稿数: 544
|
投稿日時: 2005-09-27 12:58
ぼのぼのです。
Session経由で値を渡す方法なら分かります。
テキストボックスに入力した値をPDFに出力する簡単なサンプルを作ってみました。
VB.NETのWebアプリケーションです。以下手順。
(1)ActiveReport1.rpxを作成、DetailにLabel1を配置。
(2)(1)のコードを開き、ActiveReport1のFetchDataイベントハンドラを作成
コード: |
|
Private Sub ActiveReport1_FetchData(ByVal sender As Object, _
ByVal eArgs As DataDynamics.ActiveReports.ActiveReport.FetchEventArgs) _
Handles MyBase.FetchData
Me.Label1.Text = HttpContext.Current.Session("TextBox1")
End Sub
|
(3)WebForm1.aspxを作成、TextBox1とButton1とPdfExport1を配置。
(4)(3)のコードを開き、Button1のClickイベントハンドラを作成
コード: |
|
Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) _
Handles Button1.Click
Dim rep As New ActiveReport1
Session("TextBox1") = Me.TextBox1.Text
rep.Run(False)
Dim strm As New System.IO.MemoryStream
Me.PdfExport1.Export(rep.Document, strm)
Response.ContentType = "application/pdf"
Response.AppendHeader("content-disposition", "inline; filename=MyPDF.PDF")
Response.BinaryWrite(strm.ToArray())
Response.End()
End Sub
|
--
編集:Response.AddHeader→AppendHeader 一応推奨されてる方を…
[ メッセージ編集済み 編集者: ぼのぼの 編集日時 2005-09-27 13:31 ]
|
- †raimu†
- ベテラン
- 会議室デビュー日: 2005/08/23
- 投稿数: 61
|
投稿日時: 2005-09-27 14:02
返信ありがとうございます。ライムです。
ぼのぼの様の方法で
WebForm1.aspxのコードのButton1_Clickイベントへ
Session("TextBox1") = TextBox1.Text
ActiveReport1.rpxのコードのActiveReport1_FetchDataへ
TextBox1.Text = HttpContext.Current.Session("TextBox1")
上記のコードを入れて実行してみたところ
----------------------------------------------------------
System.NullReferenceException:
オブジェクト参照がオブジェクト インスタンスに設定されていません。
----------------------------------------------------------
とエラーが出てしまいました。
きっとSession("TextBox1")がNULLなんですね…
やはり上記のコードだけじゃダメなんでしょうか?
[ メッセージ編集済み 編集者: †raimu† 編集日時 2005-09-27 14:03 ]
|
- NAL-6295
- ぬし
- 会議室デビュー日: 2003/01/26
- 投稿数: 966
- お住まい・勤務地: 東京
|
投稿日時: 2005-09-27 14:05
引用: |
|
ActiveReport1.rpxのコードのActiveReport1_FetchDataへ
TextBox1.Text = HttpContext.Current.Session("TextBox1")
上記のコードを入れて実行してみたところ
----------------------------------------------------------
System.NullReferenceException:
オブジェクト参照がオブジェクト インスタンスに設定されていません。
----------------------------------------------------------
とエラーが出てしまいました。
きっとSession("TextBox1")がNULLなんですね…
やはり上記のコードだけじゃダメなんでしょうか?
|
きっとではなく、一度、ステップ実行等でどちらがNullなのか確認した方が良いですよ。
_________________ 「伝える」とは「人に云う」と書く。
http://d.hatena.ne.jp/NAL-6295/
|