PDA

View Full Version : مشکل در ارتباط کریستال با دیتا بیس



jeus
سه شنبه 29 آبان 1386, 20:30 عصر
با سلام خدمت تمام دوستان
من با کریستال ریپورت یه گزارش ساختم که مستقیم به دیتا بیس وصل میسه و کدش هم اینه

Reportlist(Application.StartupPath + @"\crystall\list1.rpt");
private void Reportlist(string Reppath)
{
ConnectionInfo connectioninfo = new ConnectionInfo();
connectioninfo.ServerName = ".";
connectioninfo.DatabaseName = "Institute";
connectioninfo.IntegratedSecurity = true;
ReportDocument repdoc = new ReportDocument();
repdoc.Load(Reppath);
crystalReportViewer1.ReportSource = repdoc;
SetLogin(connectioninfo);
}و مشکل این است که من وقتی روی یک کامپیوتر به راحتی اجرا میشه ولی روی کامپیوتر دیگه ازم user name و Password میخواهد و همونجور که معلومه من از integrity استفاده میکنم
حالا به نظر شما مشکل کجاست
و یک چیز دیگه اینکه چجوری میتونم چند پارامتر به کریستال ریپورت بفرستم ؟

مهدی رحیم زاده
چهارشنبه 30 آبان 1386, 05:41 صبح
مشکل شما اینه که داده ها رو برای کریستال ریپورت ارسال نکردین یعنی باید از این استفاده کنید

repdoc.SetDataSource(dt);
که dt می تونه dataset یا datatable باشه و با داده های مورد نیاز گزارش شما پر شده ....
موفق باشید .

alirzn
چهارشنبه 30 آبان 1386, 06:57 صبح
شما باید توسط visard یک dataset بسازین و table هایی رو که می خوای به اون بفرستی. بعد ازشون تو crystalreport استفاده کنی.
و crystalreport.reportsource=ds;


با سلام خدمت تمام دوستان
من با کریستال ریپورت یه گزارش ساختم که مستقیم به دیتا بیس وصل میسه و کدش هم اینه

Reportlist(Application.StartupPath + @"\crystall\list1.rpt");
private void Reportlist(string Reppath)
{
ConnectionInfo connectioninfo = new ConnectionInfo();
connectioninfo.ServerName = ".";
connectioninfo.DatabaseName = "Institute";
connectioninfo.IntegratedSecurity = true;
ReportDocument repdoc = new ReportDocument();
repdoc.Load(Reppath);
crystalReportViewer1.ReportSource = repdoc;
SetLogin(connectioninfo);
}و مشکل این است که من وقتی روی یک کامپیوتر به راحتی اجرا میشه ولی روی کامپیوتر دیگه ازم user name و Password میخواهد و همونجور که معلومه من از integrity استفاده میکنم
حالا به نظر شما مشکل کجاست
و یک چیز دیگه اینکه چجوری میتونم چند پارامتر به کریستال ریپورت بفرستم ؟

alirzn
چهارشنبه 30 آبان 1386, 07:00 صبح
برای پارامتر فرستادن هم :


crystalreport11.SetParameterValue("parametrname",value);

jeus
چهارشنبه 30 آبان 1386, 14:26 عصر
پس علت اینکه توی کامپیوتر من کار میکنه ولی تو کامپیوتر دیگه نه چیست ؟
یه سئوال دیگه اینکه من داده ها رو درست ارسال کردم و فکر کنم متد SetLogin باید همون کار را انجام بده ؟
چیز دیگه ای که باید بگم اینه که به نظرم کانکت crystalreport از زمانی باقی میماند که من در حال طراحی گزارش بودم و حتی با پاک کردن connectioninfo باز هم وصل میشه

private void SetLogin(ConnectionInfo connectionInfo)
{
TableLogOnInfos TbLogOnInfos = crystalReportViewer1.LogOnInfo;
foreach (TableLogOnInfo TbLogOnInfo in TbLogOnInfos)
{
TbLogOnInfo.ConnectionInfo = connectionInfo;
}
}

مهدی رحیم زاده
چهارشنبه 30 آبان 1386, 16:15 عصر
خوب در مورد سئوال اولتون باید بگم چون بانک تو مسیر پیش فرض قرار داره ، اون user و password که می خواد مال اینه که نمی تونه بانک رو توی اون مسیر قبلی پیدا کنه !!!
حالا اگر شما مسیر بانک رو روی سیستم خودتون عوض کنید با همون پیغام رو به رو میشید ...

jeus
پنج شنبه 01 آذر 1386, 15:27 عصر
میشه مراحل کامل را برای من توضیح دهید چون من وقتی که به datasource یک DataSet را Add میکنم تو سیستم خودم به راحتی بالا میاد اما تو سیستم دیگه گیر میده و من هم مطمئنم که این گزارش را از دیتا ست میگیرد این هم کدمه

ReportDocument repdoc3 = new ReportDocument();
repdoc3.Load(Application.StartupPath + @"\crystall\atndnce.rpt");
repdoc3.SetDataSource(ObjDataSet);
repdoc3.SetParameterValue("NCircle", txtNCircle.Text);
repdoc3.SetParameterValue("NGroup", txtNGroup1.Text);
crystalReportViewer1.ReportSource = repdoc3;