Forum
Kasa programında Gelir ve giderlerin olduğu gridview yapım var bunları Tarih sırasına göre sıralıyorum. Bakiye adında bir sütuna ihtiyacım var yürüyen bakiye tutmak istiyorum.
void GridDoldur() { var gridDoldur = (from kasa in ctx.Kasas orderby kasa.TARIH select new { kasa.ID, kasa.TARIH, kasa.FISNO, kasa.MAKBUZNO, kasa.GELIR, kasa.GIDER, kasa.ACIKLAMA }).ToList(); Liste.DataSource = gridDoldur; }
merhaba bunu EF yerıne dırek SQL üzerinde bir view ile halletmeniz daha dogru olur https://social.technet.microsoft.com/Forums/sqlserver/tr-TR/413e5f88-9aa6-4796-95d0-63950e76a376/sql-yryen-bakiye?forum=sqltr şu örnek işinizi görecektir.
saygılar
ProfectSoft Yazılım ve Danışmanlık Hizmetleri
LogPusher & Bifyou E-Commerce System
www.profectsoft.com
Linq ile yürüyen toplam aşağıdaki şekilde alınabilir;
List<int> veriler = new List<int>() { 1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 30, 2017 };
int tmp = 0;
var sorgu =
from x in veriler
select new
{
sayı = x,
yürüyen_bakiye = (tmp += x) //<===
};
foreach (var v in sorgu)
{
Console.WriteLine("Sayı: {0}, Bakiye: {1}",
v.sayı,
v.yürüyen_bakiye);
}
Buna göre aşağıdaki şekilde deneyebilirsiniz;
void GridDoldur()
{
int tmp = 0;
var gridDoldur = (from kasa in ctx.Kasas
orderby kasa.TARIH
select new
{
kasa.ID,
kasa.TARIH,
kasa.FISNO,
kasa.MAKBUZNO,
kasa.GELIR,
kasa.GIDER,
yürüyen_bakiye = (tmp += kasa.GIDER - kasa.GELIR) //<===
kasa.ACIKLAMA
}).ToList();
Liste.DataSource = gridDoldur;
}