2010-10-21
学籍のレイアウト通りにデータを出力することは
ほぼできました。表示位置の微調整などは必要なのですが、
それはまた行うとして、実装にむけての問題があと2つ残っています。
一つは、CrystalReportで学籍情報を表示する際、パスワードを入力しないと
接続できません。
調べたところ、セキュリティ上の問題から、パスワードは保存できないように
なっているそうです。
でも実運用ではパスワードの入力をその都度行うわけにはいかないので、
パスワードの入力をしなくても動くようにする必要があります。
もう一つは、データの抽出です。
生徒単位の抽出やクラス単位での抽出を行う必要があるのですが、
Web画面からどのように設定するのかを調べる必要があります。
以上の2つを調べる必要があるのですが、まずは一つ目のパスワードの設定を
調べてみました。
相変わらず情報が少なめで苦労したのですが、CrystalReportのサンプルを参考に
解決しました。
もっとも参考というよりも丸ごとコピーなのですが・・・(*^_^*)
学籍印刷用のファイルは、「gakuseki1.aspx」と「gakuseki1.aspx.vb」に
分かれていて、コードは「gakuseki1.aspx.vb」です。
以下はコードの中身です。
*********************************************
Imports CrystalDecisions.Shared
Imports CrystalDecisions.CrystalReports.Engine
Imports CrystalDecisions.Web
Partial Class _Default
Inherits System.Web.UI.Page
<=== 追加した内容
Private Sub ConfigureCrystalReports()
Dim reportPath As String = Server.MapPath("レポートファイル")
CrystalReportViewer1.ReportSource = reportPath
Dim myConnectionInfo As ConnectionInfo = New ConnectionInfo()
SetDBLogonForReport(myConnectionInfo)
myConnectionInfo.ServerName = "サーバー名"
myConnectionInfo.UserID = "ユーザー名"
myConnectionInfo.Password = "パスワード"
End Sub
Protected Sub Page_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Init
ConfigureCrystalReports()
End Sub
Private Sub SetDBLogonForReport(ByVal myConnectionInfo As ConnectionInfo)
Dim myTableLogOnInfos As TableLogOnInfos = CrystalReportViewer1.LogOnInfo
For Each myTableLogOnInfo As TableLogOnInfo In myTableLogOnInfos
myTableLogOnInfo.ConnectionInfo = myConnectionInfo
Next
End Sub
ここまで ===>
End Class
*********************************************
<=== ===>ではさまれている部分が追加したところです。
サンプルをコピーして必要なところを変更しています。
変更箇所は上から2行目
Dim reportPath As String = Server.MapPath("レポートファイル")
カッコ内です。レポートファイルを入力するので、作ったレポートファイルの名前に変更します。
サンプルでは、「NorthwindCustomers.rpt」になっているのですが、作成したファイル名にします。
その下、ビューワーも合わせる必要があります。
CrystalReportViewer1.ReportSource = reportPath
「gakuseki1.aspx」ファイルを確認し、「CrystalReportViewer1」の部分を変更します。
「SetDBLogonForReport」のところも同じように変更します。
あとは、サーバー名、ユーザー名、パスワードを自分の環境に合わせて変更します。
これで実行させれば、レポートがダイレクトに表示されました。
セ記事を書く
セコメントをする