Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Crystal Report и проблема со строками коннекта
|
|||
|---|---|---|---|
|
#18+
Добрый день Господа! Необходимо в процесе выполненния программы подменить ConnectionString для существующего отчета. Новая строка коннекта выглядит примерно вот так: Data Source = dataSourceSql2;Initial Catalog=Customer2;Integrated Security=Yes И форумы читал и гуглил ничего не выходит :( Делаю так: private class DbSettings { public string Server { get; set; } public string DataBase { get; set; } public bool IntegratedSecurity { get; set; } } private void SetConnectionString(ReportDocument reportDocument) { var dbSettings = new DbSettings { DataBase = "Customer2", Server = "dataSourceSql2", IntegratedSecurity = true, }; DataSourceConnections theConnections = reportDocument.DataSourceConnections; for (int i = 0; i < theConnections.Count; i++) { theConnections[i].SetConnection(dbSettings.Server, dbSettings.DataBase, dbSettings.IntegratedSecurity); theConnections[i].Attributes.Collection.Add(new NameValuePair2("Initial Catalog", dbSettings.DataBase)); theConnections[i].Attributes.Collection.Add(new NameValuePair2("Data Source", dbSettings.Server)); theConnections[i].Attributes.Collection.Add(new NameValuePair2("Local Identifier", "2057")); theConnections[i].Attributes.Collection.Add(new NameValuePair2("Provider", dbSettings.IntegratedSecurity)); theConnections[i].Attributes.Collection.Add(new NameValuePair2("OLE DB Services", "-5")); theConnections[i].Attributes.Collection.Add(new NameValuePair2("Tag with column collation when possible", "0")); theConnections[i].Attributes.Collection.Add(new NameValuePair2("Use DSN Default Properties", "False")); theConnections[i].Attributes.Collection.Add(new NameValuePair2("Use Encryption for Data", "0")); } } И вот когда я делаю эксопрт reportDocument.Export(); данные беруться из базы которая была забита в отчете а не подменяются на новую. Как можно решить данную проблему ? SqlConnection юзать не хочеться т.к все ходит через nHibernate. Буду благодарен за пример. Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2010, 17:50 |
|
||
|
Crystal Report и проблема со строками коннекта
|
|||
|---|---|---|---|
|
#18+
Ну раз ответов нету, то поделитесь пожалуйста опытом как вы делаете подмену конектов в своем приложении. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2010, 12:26 |
|
||
|
Crystal Report и проблема со строками коннекта
|
|||
|---|---|---|---|
|
#18+
Вобщем как и предполагал вся загвоздка была в маленькой и очень незначительной детали: после манипуляций над репортом необходимо вызвать метод Refresh(). Ибо если вы забыли вызвать этот волшебный метод данные будут тянуться из источника который проприсан по умолчанию в отчете. Ниже привиду готовый пример. Всем спасибо! public partial class Form1 : Form { private ReportDocument report; public Form1() { InitializeComponent(); } private void ConfigureCrystalReports() { report = new ReportDocument(); string reportPath = Application.StartupPath + "\\" + "CRReport.rpt"; try { report.Load(reportPath); } catch (Exception е) { Console.WriteLine(е); } ConnectionInfo connectionInfo = new ConnectionInfo(); connectionInfo.ServerName = "your_server_name"; connectionInfo.DatabaseName = "your_data_base"; //connectionInfo.UserID = "sa"; //connectionInfo.Password = "SQLExpress"; connectionInfo.IntegratedSecurity = true; SetDBLogonForReport(connectionInfo, report); report.VerifyDatabase(); // BLACK MAGIC AND HIGHT TECHNOLOGY report.Refresh(); crystalReportViewer.ReportSource = report; } private void Form1_Load(object sender, EventArgs e) { ConfigureCrystalReports(); } private void crystalReportViewer_Load(object sender, EventArgs e) { } private void SetDBLogonForReport(ConnectionInfo connectionInfo, ReportDocument reportDocument) { Tables tables = reportDocument.Database.Tables; foreach (CrystalDecisions.CrystalReports.Engine.Table table in tables) { table.LogOnInfo.ConnectionInfo.AllowCustomConnection = true; TableLogOnInfo tableLogonInfo = table.LogOnInfo; tableLogonInfo.ConnectionInfo = connectionInfo; table.ApplyLogOnInfo(tableLogonInfo); Debug.Write(String.Format("IsConnect = {0}", table.TestConnectivity())); } } } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2010, 15:04 |
|
||
|
|

start [/forum/topic.php?fid=31&msg=36834559&tid=1535299]: |
0ms |
get settings: |
4ms |
get forum list: |
8ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
23ms |
get topic data: |
5ms |
get forum data: |
1ms |
get page messages: |
26ms |
get tp. blocked users: |
1ms |
| others: | 8ms |
| total: | 80ms |

| 0 / 0 |
