سلام
این کد را از برنامه ام می ذارم .فقط بدون command یه کلاس است که فراخوانی کردم که کلاسش را هم می نویسم.شما برای جمع جنسیت تو کریستال ریپورت فرمول Sum را بذار جلوی فیلد جنیستت. در ضمن شما باید یه جدول Temp مثل جدول اصلی داشته باشی که اطلاعات را داخل اون قرار بدی و تو کریستال ریپورت اون جدول فراخوانی بشه . جدول temp هم باید هر سری خالی بشه اول کار
command codd = new command();
codd.iud("delete * from tempfactor", login.con);
OleDbCommand cmd = new OleDbCommand();
OleDbDataReader dr;
cmd.Connection = login.con;
cmd.CommandText = "select * from factor where tarikhf >= '" + tarikh1.Text + "' and tarikhf <= '" + tarikh2.Text + "' ";
dr = cmd.ExecuteReader();
while (dr.Read())
{
codef = dr["codef"].ToString();
tarikhf = dr["tarikhf"].ToString();
codem = dr["codem"].ToString();
kharid = dr["kharid"].ToString();
price = Convert.ToInt32(dr["price"]);
totalprice = totalprice + price;
// جمع پرداختی
pardakhti = Convert.ToInt32(dr["pardakhti"]);
totalprdakhti = totalprdakhti + pardakhti;
//اینجا میتونید جنسیت را جمع بزنید
//مثلا
// if (sex = m) man = man + 1;
// if (sex = f) fmale = fmale+1;
command cod = new command();
cod.iud("insert into tempfactor (codef,tarikhf,codem,namem,familym,namepedar,khari d,price,pardakhti) values ('" + codef + "','" + tarikhf + "','" + codem + "','" + namem + "','" + familym + "','" + namepedar + "','" + kharid + "'," + price + "," + pardakhti + ") ", login.con);
}
dr.Close();
// بعدا در آخر دوباره یه یه عمل درج انجام بده که جمع مرد و زن هات را بدونی البته من در اینجا جمع پرداختی هام را نوشتم)
command cpl = new command();
cpl.iud("insert into tempfactor (codef,price,pardakhti) values ('" + "200000" + "'," + totalprice + "," + totalprdakhti + ") ", login.con);
کلاس command
class command
{
OleDbCommand cmd = new OleDbCommand();
public void iud(string s, OleDbConnection c)
{
cmd.Connection = c;
cmd.CommandText = s;
cmd.ExecuteNonQuery();
}
}