PDA

View Full Version : مبتدی: روش صحیح نوشتن حلقه for برای ارسال به گزارش



Mina74
شنبه 29 آبان 1395, 23:44 عصر
سلام اساتید گرامی.
بنده یه دیتاتیبل دارم میفرستم به گزارش فست ریپورت.
ومشکلی ندارم تا اینجا.

حال من میخوام یه سری عملیات با حلقه for انجام بدم.و به گزارش بفرستم.و این کار رو هم انجام دادم.و مشکلی که تو گزارش دارم اینه که اون ستونی که عملیات روش انجام گرفته.تمامش رو یه عدد نشون میده.انگار فقط ردیف آخر رو محاسبه میکنه.حال من چکار باید بکنم؟؟
ممنونم.
143553


DataTable dt = new DataTable();

dt = db.MySelect( "SELECT tbl_Sabt_Sahamdar.ID, tbl_Sabt_Sahamdar.Name,tbl_Sabt_Sahamdar.FirstSarm aye,tbl_Sabt_Sahamdar.Sahm, SUM(tbl_Amalyat_Sahamdar.CostVariz) AS [پرداخت], " +
"SUM(tbl_Amalyat_Sahamdar.CostBardasht) AS [برداشت] FROM tbl_Sabt_Sahamdar INNER JOIN " +
"tbl_Amalyat_Sahamdar ON tbl_Sabt_Sahamdar.ID = tbl_Amalyat_Sahamdar.SahamdarCode "

for (int i = 0; i < dt.Rows.Count; i++)
{
int Saham = Convert.ToInt32(dt.Rows[i][3].ToString());
SahmSood = ((Kosoorat * Saham) / 100);

rpt.SetParameterValue("SahamSood", SahmSood);
}



rpt.Show();

kamiloted
یک شنبه 30 آبان 1395, 01:50 صبح
سلام شما این عمل رو تو سلکتت انجام بده

SahmSood = ((Kosoorat * Saham) / 100);

Mina74
یک شنبه 30 آبان 1395, 01:54 صبح
ممنونم که وقت ممیزارید.
نمیشه.چون Kosoorat خودش برای محاسبش از 7 تا 8تا جدول داده میگیره تا به دست بیاد.
اما Saham تو همین دیتا تیبل هست.
راه دیگه ای نیست؟

سپاس

kamiloted
یک شنبه 30 آبان 1395, 19:08 عصر
کسی نیست راهنمایی کنه؟؟

Hasibsoft
یک شنبه 30 آبان 1395, 19:50 عصر
دستور زیر را اجرا کن و از ستون "SahmSood" در گزارشت استفاده کن
DataTable dt = new DataTable();

dt = db.MySelect("SELECT tbl_Sabt_Sahamdar.ID, tbl_Sabt_Sahamdar.Name,tbl_Sabt_Sahamdar.FirstSarm aye,tbl_Sabt_Sahamdar.Sahm, SUM(tbl_Amalyat_Sahamdar.CostVariz) AS [پرداخت], " +
"SUM(tbl_Amalyat_Sahamdar.CostBardasht) AS [برداشت] FROM tbl_Sabt_Sahamdar INNER JOIN " +
"tbl_Amalyat_Sahamdar ON tbl_Sabt_Sahamdar.ID = tbl_Amalyat_Sahamdar.SahamdarCode ");

dt.Columns.Add("SahmSood", typeof(decimal));

for (int i = 0; i < dt.Rows.Count; i++)
{
int Saham = Convert.ToInt32(dt.Rows[i][3].ToString());
dt.Rows[i]["SahmSood"] = ((Kosoorat * Saham) / 100);

//rpt.SetParameterValue("SahamSood", SahmSood);
}



rpt.Show();