Şimdi ürünadını ve miktarını tuttuğum bir access veri tabanım var ve datagridview ile de görüntülüyorum. Ayrı bir Form açtım. Bunu listview e aktarıyorum ve oradan görünteleme yapbiliyorum. Fakat sorunum şu ki; aynı olan ürünleri bulacak , miktarlarını toplayacak ve tek ürün olarak gösterip karşısına o ürünlerin toplamını verecek. Şöyle örnekleyebilirim.
şeklinde olmasını istiyorum. Dersenizki illa listviewde mi olacak hayır, datagridviewlede olabilir, listelemeden de datareader ile olabilir. ama bir türlü şu gruplandırmayı beceremedim. Yardımlarınız için şimdiden teşekkür ederim.
Yalnız ben listview için deniyorum. Sizin elinizde uygun bir şey varsa gönderebilirseniz çok iyi olur. Kurcalayarak bir şekilde çalıştırabilirim diye düşünüyorum. Teşekkürler
string kayit = "Select UrunAdi, SUM(Mikseregoreuretim), SUM(Torbayagoreuretim) from Uretim where Tarih>=@tar1 and Tarih<=@tar2 Group By UrunAdi"; //Uretim tablosundaki sorgu. OleDbCommand komut2 = new OleDbCommand(kayit, baglanti); //Sorgumuzu ve baglantimizi parametre olarak alan bir OleDbCommand nesnesi oluşturuyoruz. OleDbDataAdapter da = new OleDbDataAdapter(komut2); //OleDbDataAdapter sınıfı verilerin databaseden aktarılması işlemini gerçekleştirir.
dataGridView1.DataSource = dt;// Datagridview hücre toplamını alt satıra yazdırma başlangıç double Toplam = 0; double Toplam2 = 0; int Satır = dataGridView1.Rows.Count; for (int i = 0; i < Satır - 1; i++) { if (dataGridView1.Rows[i].Cells[1].Value != DBNull.Value) { Toplam += Convert.ToDouble(dataGridView1[1, i].Value); } }
for (int i = 0; i < Satır - 1; i++) { if (dataGridView1.Rows[i].Cells[2].Value != DBNull.Value) { Toplam2 += Convert.ToDouble(dataGridView1[2, i].Value); } }
double Toplam3 = 0; Toplam3 = Toplam - Toplam2;
dataGridView1.Rows[dataGridView1.Rows.Count - 4].Cells[0].Value = "Toplam Miksere Göre Üretim Miktarı"; dataGridView1.Rows[dataGridView1.Rows.Count - 4].Cells[1].Value = Toplam.ToString(); // Datagridview hücre toplamını alt satıra yazdırma bitiş
dataGridView1.Rows[dataGridView1.Rows.Count - 3].Cells[0].Value = "Toplam Torbaya Göre Üretim Miktarı"; dataGridView1.Rows[dataGridView1.Rows.Count - 3].Cells[2].Value = Toplam2.ToString(); // Datagridview hücre toplamını alt satıra yazdırma bitiş
dataGridView1.Rows[dataGridView1.Rows.Count - 2].Cells[0].Value = "Mikser - Torba Üretim Farkı"; dataGridView1.Rows[dataGridView1.Rows.Count - 2].Cells[1].Value = Toplam3.ToString(); // Datagridview hücre toplamını alt satıra yazdırma bitiş
dataGridView1.Columns[0].HeaderText = "Ürün Adı"; //Datagridview sütun adı gir dataGridView1.Columns[0].Width = 300; //Datagridview sütun genişliğini gir
dataGridView1.Columns[1].HeaderText = "Miksere Göre Üretim Miktarı"; dataGridView1.Columns[1].Width = 170;
dataGridView1.Columns[2].HeaderText = "Torbaya Göre Üretim Miktarı"; dataGridView1.Columns[2].Width = 170;
Şöyle açıklayayım; Uretim tablomda UrunAdi sütununa göre Mikseregoreuretim ve Torbayagoreuretim sütunlarının toplamlarını belirlediğim iki tarih arasında al ve datagridview de sütun ve satır ekleyerek yazdır.
Şimdi ürünadını ve miktarını tuttuğum bir access veri tabanım var ve datagridview ile de görüntülüyorum. Ayrı bir Form açtım. Bunu listview e aktarıyorum ve oradan görünteleme yapbiliyorum. Fakat sorunum şu ki; aynı olan ürünleri bulacak , miktarlarını toplayacak ve tek ürün olarak gösterip karşısına o ürünlerin toplamını verecek. Şöyle örnekleyebilirim.
Elma ||| 3
Ayva ||| 5
Armut||| 7
Elma ||| 8
Armut||| 10
Listelerken de;
Elma ||| 11
Ayva ||| 5
Armut||| 17
şeklinde olmasını istiyorum. Dersenizki illa listviewde mi olacak hayır, datagridviewlede olabilir, listelemeden de datareader ile olabilir. ama bir türlü şu gruplandırmayı beceremedim. Yardımlarınız için şimdiden teşekkür ederim.