PDA

View Full Version : سوال: فراخواني اطلاعات از چند جدول و نمايش در كريستال ريپورت



rana-writes
چهارشنبه 17 اسفند 1390, 15:26 عصر
سلام
من كريستال ريپورت رو طراحي كردم، با زدن روي دكمه نمايش اين كدها رو براش نوشتم


CrystalReport2 objRpt;
SqlConnection connection = Connection.ConnectToFix();

SqlDataAdapter adapter = new SqlDataAdapter("Fix_ShowActivityPersonalId", connection);
adapter.SelectCommand.CommandType = CommandType.StoredProcedure;
adapter.SelectCommand.Parameters.Add("@PersonalId", SqlDbType.Int).Value = Convert.ToInt32( TxtUser.Text);
DataSet Ds = new DataSet();
adapter.Fill(Ds, "Fix_PersonalGH");
objRpt = new CrystalReport2();



objRpt.SetDataSource(Ds);
crystalReportViewer1.ReportSource = objRpt;



كاربر بايد براي اجراي كريستال بهش پارامتر ارسال كنه. كد Sql رو هم با استورپروسيجر نوشتم.
مشكلم اينه كه اگه كوئري اي كه توي SP مي نويسم، و ديتاستي كه در اين بخش
adapter.Fill(Ds, "Fix_PersonalGH");
پر ميكنم، فقط از يه جدول باشه و تو اين قسمت هم اسم جدول ديتابيسم رو بذارم، مشكلي نداره.
اما به محض اينكه ميخوام از اطلاعات چندتا جدول گزارش بگيرم، علاوه بر اينكه چيزي نشون نميده.
يه سوالي هم دارم. توي adapter.Fill(Ds, "Fix_PersonalGH"); اين بخش، ميشه اسم همون استوري رو كه توي SelectCommand نوشتم، بذارم يا اينكه بايد View طراحي بشه
ممنون ميشم راهنماييم كنين كارم بدجوري گير كرده

ويرايش:
ويو هم ساختم و Adapter رو باهاش پر كردم
ولي بازم اطلاعات رو نمايش نميده

rana-writes
چهارشنبه 17 اسفند 1390, 22:35 عصر
جوابش رو خودم پيدا كردم
ميذارم براي دوستاني كه ممكنه براشون سوال پيش بياد
براي كار با كريستال ريپورت خصوصا زماني كه نياز به خوندن از چندتا جدول دارين، بايد از View استفاده كنين كه ايجادش كاري نداره و دقيقا شبيه ايجاد كوئريه با اين تفاوت كه ذخيره ميشه.
اينجا Viewها يه جورايي كار جدولها رو انجام ميدن
بعدم استورها رو طبق حالت عادي مي نويسين در واقع ديتاست رو بايد با يك View يا جدول پر كنين و موقع ايجاد كريستال هم فيلدهاي مورد نظرتون رو توي View انتخاب كنين. اشتباهي كه من ميكردم اين بود كه مثل كاري كه توي Asp.NEt انجام مي دادم، فكر ميكردم از استورها ميشه مستقيما براي پر كردن كريستال استفاده كرد كه اين كار اشتباه بود

موفق باشين
كاش اينجا هم مثل تالار C# يا Asp.Net پر رفت و آمد تر بود