Добавление отчетов профессионального качества в приложение пользователя в Visual Studio (2)



             

Строго типизированные отчеты - часть 2


Как я уже упоминал, если вы для создания отчета предоставили информацию о подключении с идентификатором пользователя и пустым паролем, то этот отчет после своего создания будет открыт немедленно. В любых других случаях генератор отчетов Crystal Reports for Visual Studio .NET предложит вам зарегистрироваться, поскольку вся информация о подключении, кроме пароля, сохраняется отчетом. Если вам потребуется предоставить пароль во время выполнения программы или другой набор информации о подключении, кроме той, которая уже была предоставлена во время создания отчета (что случается довольно часто), используйте программу, приведенную на рисунке 2 перед установкой cvwMain.ReportSource.

Dim tbCurrent As CrystalDecisions.CrystalReports.Engine.Table
Dim tliCurrent As CrystalDecisions.Shared.TableLogOnInfo

For Each tbCurrent In cbsMain.Database.Tables
tliCurrent = tbCurrent.LogOnInfo
With tliCurrent.ConnectionInfo
.ServerName = "localhost"
.UserID = "ReportUser"
.Password = "msdn"
.DatabaseName = "Northwind"
End With
tbCurrent.ApplyLogOnInfo(tliCurrent)
Next tbCurrent

Рис. 2. Запись Crystal Reports в базу данных

В программе на рисунке 2 я произвольно задал сервер, идентификатор пользователя и пароль, т.е. localhost, ReportUser и msdn соответственно. В большинстве приложений вам, вероятно, придется использовать глобальные переменные или атрибуты класса, или даже переменные сеанса в случае приложения ASP.NET, чтобы в любой момент можно было предъявить имя базы данных и учетные данные пользователя вашего приложения, введенные при первоначальной регистрации. Обратите внимание на цикл For Each в программе. Поскольку в моем отчете содержится только одна таблица, этот цикл по большому счету необязателен (я мог бы просто сделать ссылку на cbsMain.Database.Tables(0)), однако, эта программа будет работать с любым отчетом Crystal Reports for Visual Studio .NET, поэтому я предпочел его оставить, сделав программу более функциональной.




Содержание  Назад  Вперед