ドリンクバーゲン会場

レポートのログオンを自動化する。2010年10月21日 15時20分57秒

学籍のレイアウト通りにデータを出力することは
ほぼできました。表示位置の微調整などは必要なのですが、
それはまた行うとして、実装にむけての問題があと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」のところも同じように変更します。

あとは、サーバー名、ユーザー名、パスワードを自分の環境に合わせて変更します。

これで実行させれば、レポートがダイレクトに表示されました。

コメント

コメントをどうぞ

※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。

※なお、送られたコメントはブログの管理者が確認するまで公開されません。

名前:
メールアドレス:
URL:
コメント:

トラックバック

このエントリのトラックバックURL: http://n-box.asablo.jp/blog/2010/10/21/5429978/tb

※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。