Arama butonu
Bu konudaki kullanıcılar: 1 misafir
9
Cevap
565
Tıklama
0
Öne Çıkarma
Crystal Report ile Tek Kayıt
A
10 yıl
Onbaşı
Konu Sahibi

Crystal Report kullanarak gridview deki kayıtları yazdırmak istiyorum. tabii raporu görüntülemek için ayrı bir form ekledim. ben form 2 deki crystal report viewer ile form1 deki griddeki kayıtları listeleyebiliyorum. Ama benim istediğim şu : form1 deki gridin ilk kolonu buton. Ben hangi butona tıkladıysam sadece o satırdaki kaydı görüntülesin istiyorum ama her durumda hepsi listeleniyor. form2 deki rapor görüntüleme kodum şu :
con.Open();
SqlCommand cmd = new SqlCommand("Select * from Secimler ", con);
SqlDataAdapter adr = new SqlDataAdapter();
adr.SelectCommand = cmd;
DataSet1 ds = new DataSet1();
adr.Fill(ds.Secimler);
ReportDocument cryRpt = new ReportDocument();
Rapor rp = new Rapor();
rp.SetDataSource(ds);
crystalReportViewer1.ReportSource = rp;
Burdaki SqlCommand cmd = new SqlCommand("Select * from Secimler ", con); ifadesinde değişiklik yapmam gerektiğini biliyorum ama grid form1 de olduğu için o gridin hangi butonuna tıklanıldıysa o kayı gelsin diyemiyorum.nasıl derim?

DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.

Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.

Üye Ol Şimdi Değil





< Bu mesaj bu kişi tarafından değiştirildi aysesen -- 29 Mart 2015; 15:19:05 >

W
10 yıl
Er

Öncelikle şuradan datagridview üzerindeki buton için click event'ine bakabilirsiniz. Form1'de bu event'i oluşturman gerekiyor. Form2'ye verileri birkaç farklı yoldan gönderebilirsin.Örneğin : datagridviewindeki buton tıkladığın satırdaki kaydın id'sini gönderecek olsun.bunuda form2 den alacaksın. form1 de public bir değişken oluşturup bunu set edip form2'den kullanabilirsin.Yada projene modül ekleyip modül içerisinde yine public property oluşturarak onu set edebilirsin. daha sonra form2'de hangi yolu tercih etmişsen oradan veriyi alıp sql'i düzenlemen gerekir.Örnek: "Select * from Secimler Where id=" & gelenID. Son olarakta modül kullandıysan form2'de işlemin bitince property'i temizlemen daha sonradan karışıklık yaratmasın. Aklıma gelenler bunlar daha uzman arkadaşlar tabi daha üst düzey yardımcı olabilir :)


Bu mesaja 1 cevap geldi.
A
10 yıl
Onbaşı
Konu Sahibi

quote:

Orijinalden alıntı: whitecorsa

Öncelikle şuradan datagridview üzerindeki buton için click event'ine bakabilirsiniz. Form1'de bu event'i oluşturman gerekiyor. Form2'ye verileri birkaç farklı yoldan gönderebilirsin.Örneğin : datagridviewindeki buton tıkladığın satırdaki kaydın id'sini gönderecek olsun.bunuda form2 den alacaksın. form1 de public bir değişken oluşturup bunu set edip form2'den kullanabilirsin.Yada projene modül ekleyip modül içerisinde yine public property oluşturarak onu set edebilirsin. daha sonra form2'de hangi yolu tercih etmişsen oradan veriyi alıp sql'i düzenlemen gerekir.Örnek: "Select * from Secimler Where id=" & gelenID. Son olarakta modül kullandıysan form2'de işlemin bitince property'i temizlemen daha sonradan karışıklık yaratmasın. Aklıma gelenler bunlar daha uzman arkadaşlar tabi daha üst düzey yardımcı olabilir :)

gridin buton click olayına yazıyorum sorun yok orda.form 1 de gridin buton click olayından form 2 yi görüntüleyip form2 nin loadına yazıyorum ki form2 yüklendiğinde görüntülensin. form 2 de form i tanıtıp frm1.datagrid diye belirtiyorum.zaten sorun sql cümlemde.SqlCommand cmd = new SqlCommand("Select SiraNo, Adi, Soyadi from Secimler where SiraNo='" +frm1.dgSecimYazdir.Columns["SiraNo"]+"'", sqlcon); diyorum ama olmuyor.


Bu mesaja 1 cevap geldi.
A
10 yıl
Onbaşı
Konu Sahibi

SqlCommand cmd = new SqlCommand("Select SiraNo, Adi, Soyadi from Secimler where SiraNo='" +Convert.ToInt32(frm3.dgSecimYazdir.Rows[frm3.index].Cells["SiraNo"].Value)+"'", sqlcon); yazıp form 1 de public bir değişken oluşturdum.index diye. form1 de index = Convert.ToInt32(dgSecimYazdir.Rows[e.RowIndex].Cells[1].Value); dedim ama hata aldım "dizin aralık dışında hatası."


Bu mesaja 1 cevap geldi.
W
10 yıl
Er

quote:

Orijinalden alıntı: aysesen

SqlCommand cmd = new SqlCommand("Select SiraNo, Adi, Soyadi from Secimler where SiraNo='" +Convert.ToInt32(frm3.dgSecimYazdir.Rows[frm3.index].Cells["SiraNo"].Value)+"'", sqlcon); yazıp form 1 de public bir değişken oluşturdum.index diye. form1 de index = Convert.ToInt32(dgSecimYazdir.Rows[e.RowIndex].Cells[1].Value); dedim ama hata aldım "dizin aralık dışında hatası."
Birde şöyle dener misin(değişkeni set ettikten sonra form 2 show etmelisin. dgIndex dediğim public değişkenin form 1'deki.):

form1:

 
private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
var senderGrid = (DataGridView)sender;
if (senderGrid.Columns[e.ColumnIndex] is DataGridViewButtonColumn &&
e.RowIndex >= 0)
{
dgIndex = Convert.ToInt32(dataGridView1.Rows[e.RowIndex].Cells["SiraNo"].Value);
}


form2:

 
SqlCommand cmd = new SqlCommand("Select SiraNo, Adi, Soyadi from Secimler where SiraNo=" + frm1.dgIndex + ", sqlcon);


Bu mesaja 1 cevap geldi.
A
10 yıl
Onbaşı
Konu Sahibi

maalesef aynı kayıt gelmiyor


Bu mesaja 1 cevap geldi.
W
10 yıl
Er

kusura bakmayın cevap yazamadım sorunu çözdünüz mü devam ediyor mu aynı sorun?


Bu mesaja 1 cevap geldi.
A
10 yıl
Onbaşı
Konu Sahibi

K
10 yıl
Yarbay

Sorununuzu çözebildiniz mi?
Crystal Report yerine kendi oluşturduğunuz raporu kullanmanızı tavsiye ederim.


Bu mesaja 1 cevap geldi.
A
10 yıl
Onbaşı
Konu Sahibi

çözdüm evet sql sorgumu değiştirdim oldu teşekkürler



DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.