Şimdi Ara

Crystal Report ile Tek Kayıt

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
10
Cevap
0
Favori
538
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • 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?



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







  • Ö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 :)




  • 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.




  • 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ı."
  • 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);




  • maalesef aynı kayıt gelmiyor
  • kusura bakmayın cevap yazamadım sorunu çözdünüz mü devam ediyor mu aynı sorun?
  • Yapay Zeka’dan İlgili Konular
    Daha Fazla Göster
  • evet :(
  • Sorununuzu çözebildiniz mi?
    Crystal Report yerine kendi oluşturduğunuz raporu kullanmanızı tavsiye ederim.
  • çözdüm evet sql sorgumu değiştirdim oldu teşekkürler
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.