PDA

View Full Version : How Do I Change the Report Connection String at Runtime



saeed31641
چهارشنبه 30 اردیبهشت 1394, 08:11 صبح
سلام
دوستان من یه گزارش با استیموال سافت تهیه کردم خیلی ساده تو میحط دیزاینر وصل به دیتا سور س شدم وگزارش درست کردم.حالا همانطور که میدونید وقتی روی سرور میزارید باید با گزارشتون که وصل به بانک با تنظیمات سرور یکی باشه .امدم تو وب ، تنظیمات جدی رو اضافه کردم که از تنظیمات کانکشن استرینگ جدی بخونه اما نمیتونه از تنظیمات جدی بخونه.مشکل کار کجاست.امدم

report.Dictionary.Databases.Clear();
// report.Dictionary.Databases.Add(new StiSqlDatabase("LabPortal", "labado"));
// string cn = @"Data Source=Home;Initial Catalog=LabPortal;Integrated Security=True;connect timeout=30;MultipleActiveResultSets=True;";
string Path = Server.MapPath("~" + ("/Areas/RepUser/HistoryJob.mrt"));
report.Load(Path);
report.Dictionary.Databases.Add(new Stimulsoft.Report.Dictionary.StiSqlDatabase("LabPortal", "labado"));
report.Compile();




<Databases isList="true" count="1">
<HistoryJob Ref="2" type="Stimulsoft.Report.Dictionary.StiSqlDatabase" isKey="true">
<Alias>HistoryJob</Alias>
<ConnectionStringEncrypted>+XTRCU97+vnhWu3senR3Y4tg+YhhWXuBRU/RyWlcYEbEePvpzRh79WlGoazlhODr5HDRocZxe/X9S5zMaXjhew==</ConnectionStringEncrypted>
<Name>HistoryJob</Name>
</HistoryJob>
</Databases>

saeed31641
جمعه 01 خرداد 1394, 07:50 صبح
یعنی واقعا کسی جواب این سوال نمیدونه

slazenger
جمعه 01 خرداد 1394, 08:08 صبح
سلام :
لطفا قبل از add کردن clear کنید : ()Report.Dictionary.Databases.Clear
labado همون New Connectionstring هست ؟ اگر آره فقط کد بالا رو اضافه کنید فبل از Add

saeed31641
دوشنبه 11 خرداد 1394, 16:02 عصر
سلام :
لطفا قبل از add کردن clear کنید : ()Report.Dictionary.Databases.Clear
labado همون New Connectionstring هست ؟ اگر آره فقط کد بالا رو اضافه کنید فبل از Add

اضافه کردم ولی خطا میده نشون نمیده error 500:internal server error


string[] user = new string[4];
user = User.Identity.Name.Split(',');
StiReport report = new StiReport();

string Path = Server.MapPath("~" + ("/Areas/RepUser/HistoryJob.mrt"));
report.Load(Path);
report.Dictionary.Databases.Clear();
report.Dictionary.Databases.Add(new Stimulsoft.Report.Dictionary.StiSqlDatabase("LabPortal", "labado"));

report.Compile();

report["SHDATE"] = Common.DateMtoS(DateTime.Now.ToLongDateString());
report["Fullname"] = user[0].ToString() + user[1].ToString();


return StiMvcViewer.GetReportSnapshotResult(HttpContext, report);

به این روشم نوشتم برنامه تری مبکنم اصلا کانکشن استرینگ خطا میده نمیشناسه
public virtual ActionResult FromLoadFileReport()
{
SqlCommand Cmd;
SqlConnection Conn;
Conn = new SqlConnection(ConfigurationManager.ConnectionStrin gs["labado"].ConnectionString);

string[] user = new string[4];
user = User.Identity.Name.Split(',');
StiReport report = new StiReport();
string Path = Server.MapPath("~" + ("/Areas/RepUser/HistoryJob.mrt"));
report.Load(Path);
report.Dictionary.Databases.Clear();
//report.Dictionary.Databases.Add(new Stimulsoft.Report.Dictionary.StiSqlDatabase("LabPortal", "labado"));
//report.Compile();
string cn = @"Data Source=Home;Initial Catalog=LabPortal;Integrated Security=True;connect timeout=30;MultipleActiveResultSets=True;";
StiSqlDatabase sqlDB = new StiSqlDatabase();
sqlDB = (StiSqlDatabase)report.Dictionary.Databases["LabPortal"];
sqlDB.ConnectionString = cn;
report.Render();
report.Compile();
report["SHDATE"] = Common.DateMtoS(DateTime.Now.ToLongDateString());
report["Fullname"] = user[0].ToString() + user[1].ToString();
return StiMvcViewer.GetReportSnapshotResult(HttpContext, report);

}
131880

hosein2008
سه شنبه 12 خرداد 1394, 15:46 عصر
string CnnStr = ConfigurationManager.ConnectionStrings["CnnStr"].ConnectionString;

rpt.Dictionary.Databases.Clear();
rpt.Dictionary.Databases.Add(new StiSqlDatabase("CPC", CnnStr));



که این cpc اسم کانکشنی هست که داخل فایل استیمول داری

hossain1037
جمعه 05 شهریور 1395, 01:28 صبح
http://www.codeproject.com/Questions/851134/How-can-I-change-connection-string-of-a-stimulsoft#NewEntryGroup

hossain1037
جمعه 05 شهریور 1395, 01:29 صبح
StiReport report = new StiReport();
report.Load("MyReport.mrt");
report.Dictionary.Databases.Clear();
report.Dictionary.Databases.Add(new StiSqlDatabase("MyDatabase", "new connection string"));

you should be cerefule to the position of load report file. at first load report file then clear data set and set connection string