am_abbas65
چهارشنبه 07 شهریور 1386, 13:05 عصر
سلام به همه دوستان
من تو Class Liberary یک کلاس تعریف کردم و نوع خروجی اونرو Dataset گذاشتم .
بع یک پروژه کریستال رپورت ایجاد کردم و Connection اونرو از طریق فایل Dll انتخاب کردم .
حالا وقتی میخوام گزارش رو نشون بدم صحیح عمل میکنه و گزارش رو نشون میده . اما وقتی فایل Dll رو یک مقدار ورودی نسبت میدم مثلا یه پارامتر دریافت کنه و بر اساس اون سلکت بکنه اما در هنگام لود کردن کریستال رپورت ارو میده
کد مربوط به فایل Dll:
namespace ClassLibrary1
{
public class Report_Class
{
private const string ConStr = "Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=Khoshkbar;Data Source=localhost";
public static DataSet GetPersonal(string Code)
{
SqlConnection ObjConnection = new SqlConnection(ConStr);
ObjConnection.Open();
SqlCommand ObjCommand = new SqlCommand("Select * from Shoper where Code=@Code" , ObjConnection);
objcommand.parameters.addwitValue("@Code",Code);
SqlDataAdapter ObjdataAdapter=new SqlDataAdapter(ObjCommand.CommandText,ObjConnectio n);
ObjdataAdapter.SelectCommand.ExecuteScalar();
DataSet ObjDataset = new DataSet();
ObjdataAdapter.Fill(ObjDataset, "shoper");
return ObjDataset;
}
}
}
اینم کد برنامه در این پروژه رفرنس فایل Dll رو به برنامه اضافه میکنم و از طریق کدی که کنارش علامت گذاشتم پارامتر رو ارسال میکنم که فکر میکنم اشکال کار اینجاست
private void Form1_Load(object sender, EventArgs e)
{
ClassLibrary1.Report_Class.GetPersonal("1");// <<<< این کد
string RepPath = "C:\\Documents and Settings\\Dear-User\\My Documents\\Visual Studio 2005\\Projects\\Rep\\Rep\\CrystalReport1.rpt";
CrystalDecisions.CrystalReports.Engine.ReportDocum ent RepDoc = new CrystalDecisions.CrystalReports.Engine.ReportDocum ent();
RepDoc.Load(RepPath);
crystalReportViewer1.ReportSource = RepDoc;
}
لطفا نحوه ارصال پارامتر رو بگین که چطوری به فایل DLL پارامتر بفرستم یا به کریستال پورت بفرستم .
در ضمن در هنگام لود شدن گزارشات قبلی کمی کریستال رپورت کند لود میشود این اشکال رو چه جوری حل کنم ؟
از اینکه سرتون رو به درد آوردم معضرت میخوام
من تو Class Liberary یک کلاس تعریف کردم و نوع خروجی اونرو Dataset گذاشتم .
بع یک پروژه کریستال رپورت ایجاد کردم و Connection اونرو از طریق فایل Dll انتخاب کردم .
حالا وقتی میخوام گزارش رو نشون بدم صحیح عمل میکنه و گزارش رو نشون میده . اما وقتی فایل Dll رو یک مقدار ورودی نسبت میدم مثلا یه پارامتر دریافت کنه و بر اساس اون سلکت بکنه اما در هنگام لود کردن کریستال رپورت ارو میده
کد مربوط به فایل Dll:
namespace ClassLibrary1
{
public class Report_Class
{
private const string ConStr = "Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=Khoshkbar;Data Source=localhost";
public static DataSet GetPersonal(string Code)
{
SqlConnection ObjConnection = new SqlConnection(ConStr);
ObjConnection.Open();
SqlCommand ObjCommand = new SqlCommand("Select * from Shoper where Code=@Code" , ObjConnection);
objcommand.parameters.addwitValue("@Code",Code);
SqlDataAdapter ObjdataAdapter=new SqlDataAdapter(ObjCommand.CommandText,ObjConnectio n);
ObjdataAdapter.SelectCommand.ExecuteScalar();
DataSet ObjDataset = new DataSet();
ObjdataAdapter.Fill(ObjDataset, "shoper");
return ObjDataset;
}
}
}
اینم کد برنامه در این پروژه رفرنس فایل Dll رو به برنامه اضافه میکنم و از طریق کدی که کنارش علامت گذاشتم پارامتر رو ارسال میکنم که فکر میکنم اشکال کار اینجاست
private void Form1_Load(object sender, EventArgs e)
{
ClassLibrary1.Report_Class.GetPersonal("1");// <<<< این کد
string RepPath = "C:\\Documents and Settings\\Dear-User\\My Documents\\Visual Studio 2005\\Projects\\Rep\\Rep\\CrystalReport1.rpt";
CrystalDecisions.CrystalReports.Engine.ReportDocum ent RepDoc = new CrystalDecisions.CrystalReports.Engine.ReportDocum ent();
RepDoc.Load(RepPath);
crystalReportViewer1.ReportSource = RepDoc;
}
لطفا نحوه ارصال پارامتر رو بگین که چطوری به فایل DLL پارامتر بفرستم یا به کریستال پورت بفرستم .
در ضمن در هنگام لود شدن گزارشات قبلی کمی کریستال رپورت کند لود میشود این اشکال رو چه جوری حل کنم ؟
از اینکه سرتون رو به درد آوردم معضرت میخوام