من مشکل رو با کد زیر و راهنمایی بسیار عالی شما حل کردم، فقط یه مشکل دیگه مونده اینکه من سه رکورد را انتخاب می کنم، ولی تعداد ارسال ها به ریپورت دو عدد هست، یعنی هرتعداد که انتخاب انجام میشه یک رکورد کمتر ارسال میشه لطفا راهنمایی کنید.
DataTable dt = new DataTable();
DataRow row;
dt.Clear();
dt.Columns.Add("PersonID");
dt.Columns.Add("Fname");
dt.Columns.Add("Lname");
dt.Columns.Add("Sazman");
dt.Columns.Add("dastgah");
dt.Columns.Add("VNDate");
dt.Columns.Add("StartTimeAM");
dt.Columns.Add("EndTimeAM");
dt.Columns.Add("StartTimePM");
dt.Columns.Add("EndTimePM");
dt.Columns.Add("ellat");
for (int i = 0; i < DGV_Vorod.Rows.Count; i++)
{
if (Convert.ToBoolean(DGV_Vorod.Rows[i].Cells[2].Value))
{
row = dt.NewRow();
row["PersonID"] = DGV_Vorod.Rows[i].Cells[4].Value.ToString();
row["Fname"] = DGV_Vorod.Rows[i].Cells[5].Value.ToString();
row["Lname"] = DGV_Vorod.Rows[i].Cells[6].Value.ToString();
row["Sazman"] = DGV_Vorod.Rows[i].Cells[7].Value.ToString();
row["dastgah"] = DGV_Vorod.Rows[i].Cells[8].Value.ToString();
row["VNDate"] = DGV_Vorod.Rows[i].Cells[9].Value.ToString();
row["StartTimeAM"] = DGV_Vorod.Rows[i].Cells[10].Value.ToString();
row["EndTimeAM"] = DGV_Vorod.Rows[i].Cells[11].Value.ToString();
row["StartTimePM"] = DGV_Vorod.Rows[i].Cells[12].Value.ToString();
row["EndTimePM"] = DGV_Vorod.Rows[i].Cells[13].Value.ToString();
row["ellat"] = DGV_Vorod.Rows[i].Cells[14].Value.ToString();
dt.Rows.Add(row);
}
}
stiReport1.Load(Environment.CurrentDirectory + @"\Report\Vorod.mrt");
stiReport1.Compile();
stiReport1.RegData("ds.DT5", dt);
stiReport1.Show();