PDA

View Full Version : افزودن ستون به datagridview هنگام کلیک بر روی دکمه



alizi73
یک شنبه 21 تیر 1394, 15:43 عصر
با سلام خدمت دوستان عزیز

من یه دکمه و تکست باکس و یک دیتا گرید دارم .
من میخوام زمانی که روی دکمه کلیک میکنم (جست جوی کد ملی)میخوام مقدار شهریه ترم و پرداختی دانشجو محاسبه شود و دو ستون بدهکار و بستانکار به طور خود کار ایجاد شود و در ان نشان داده شود .


اینطوری

http://uupload.ir/files/8mnh_untitled.png

code-academy.ir
یک شنبه 21 تیر 1394, 16:06 عصر
شما می تونین از قبل ستون های بدهکار و بستانکار رو هم مثل بقیه ستون ها ایجاد کنین ولی خاصیت visible ش رو false کنین
بعد از اینکه روی دکمه کاربر کلیک کرد، خاصیت visible اون دو تا ستون رو true کنید
نحوه کار هم به این صورته



gridview.Columns["نام ستون"].Visible=false;

برای مقدار دهی هم از این کد استفاده کنین

gridview.Rows[0].Cells[0].Value="مقدار مورد نظر شما";

alizi73
یک شنبه 21 تیر 1394, 16:53 عصر
از این کدی ک نوشتین چیزی متوجه نشدم .من میخوام خودش محاسبه کنه و بر اساس و در ستون مورد نظر قرار بگیره

davidrobert
یک شنبه 21 تیر 1394, 19:44 عصر
از این کدی ک نوشتین چیزی متوجه نشدم .من میخوام خودش محاسبه کنه و بر اساس و در ستون مورد نظر قرار بگیره

دوست عزیز دیتاگرید ویو خودش که شور نداره که بدونه چیکار کنه شما کد هاتون بهش حالی میکنید این کار رو انجام بده یعنی تو نمایش اصلی بستانکار و بده کار رو مخفی میکنی یعنی این تو تا فیلد قرار دارن ولی visible false کنید تا اطلاعاد دیده نشه وقتی زدید اطلاعات دیده شه در جستجو بنویسید.
datagridview1.columns[2].visible=true; قرار بدید تا اطلاعات نمایش بده همین. کار سختی نیست در کوئری جستجو عمل محاسبه رو مینویسید تا وقتی جستجو انجام شود اطلاعات نمایش داده شود.من در جستجو سود زیان خودم به این صورت انجام دادم ولی با ای اف
var query = (from w in
(from q1 in db.Tbl_Anbar_Khered
join q2 in db.Tbl_Name_Kala on q1.AKH_KHKASH_CGHK_Code_Ya_BorCode_Ghemet_Kala equals q2.NK_CGHK_Code_Ya_BorCode_Ghemet_Kala
join q3 in db.Tbl_Foctor_Forosh_Kala.Where(x => x.FFK_Date_Miladi >= min && x.FFK_Date_Miladi <= max)
on q1.AKH_KHKASH_CGHK_Code_Ya_BorCode_Ghemet_Kala equals q3.FFK_CGHK_Code_Ya_BorCode_Ghemet_Kala

select new { q1, q2, q3 })
group w by w.q1.AKH_KHKASH_CGHK_Code_Ya_BorCode_Ghemet_Kala
into grp

select new
{
f_borcode = grp.Key,
F_namekala = grp.Select(c => c.q2.NK_Name_Kala).FirstOrDefault(),
F_VahdKala = grp.Select(x => x.q2.NK_Vahd_Kala).FirstOrDefault(),
F_TedadForosh = grp.Sum(z => z.q3.FFK_Tedad_Forosh),
F_GhemetForosh = grp.Sum(b => b.q1.AKH_KHKASH_Ghemet_Forosh),
F_DersdTekhfef = grp.Sum(z => z.q3.FFK_Dersid_Tekhfef),
F_DersidMaleYat = grp.Sum(d => d.q3.FFK_Dersid_Maleyat),
}).ToList();
decimal allsel = (int)db.Tbl_Foctor_Forosh_Kala.Sum(A => A.FFK_Tedad_Forosh);
var result = (from R in query
select new
{
borcode = R.f_borcode,
namekala = R.F_namekala,
vahdkala = R.F_VahdKala,
tedadforosh = R.F_TedadForosh,
GhemetFoforhs = R.F_GhemetForosh,
DersidTekhfef = R.F_DersdTekhfef,
Tekhfef = Math.Round((decimal)R.F_DersdTekhfef.Value * R.F_GhemetForosh.Value) / 100,
DersidMaleYat = R.F_DersidMaleYat,
MaleYat = Math.Round((decimal)R.F_DersidMaleYat * R.F_GhemetForosh.Value) / 100 * R.F_DersidMaleYat,
GhemetKhales = Math.Round((decimal)R.F_TedadForosh * R.F_GhemetForosh.Value),
//GhemeGabilPerdakht = Math.Round((decimal)(R.F_TedadForosh * R.F_GhemetForosh) - R.F_DersdTekhfef.Value * R.F_GhemetForosh.Value + R.F_DersidMaleYat.Value * R.F_GhemetForosh.Value),
//darsad = Math.Round((int)R.F_TedadForosh / allsel * 100, 2)
}).ToList();
var showinfokala = (from sh in result
select new
{
borcodekala = sh.borcode,
kalaname = sh.namekala,
kalavahd = sh.vahdkala,
foroshtedad = sh.tedadforosh,
ghemetforoshkala = sh.GhemetFoforhs,
Dstekhfef = sh.DersidTekhfef,
tekhfefkala = sh.Tekhfef,
Dsmaleyat = sh.MaleYat,
maleyatkala = sh.MaleYat,
ghemetkhaleskala = sh.GhemetKhales,
ghemetghabelperdakht = (sh.tedadforosh * sh.GhemetFoforhs) - sh.Tekhfef + sh.MaleYat,
dersdsodvzeyan = Math.Round((int)sh.tedadforosh / allsel * 100, 2),
}).ToList();
dgv1.DataSource = showinfokala;