Merhabalar,
 
Bu yazımda FastReport.Net raporlama aracının Visual Studio IDE ile hazırlanan C# ve VB.NET projeleri içerisinde kullanımından bahsetmeye çalışacağım. Ancak bu yazı daha önceki FastReport .NET kullanımı hakkındaki yazılarla bağlantılı olduğu için öncelikle onları incelemeniz konuyu kavramanız açısından daha faydalı olacaktır.
 
Şimdi ilk olarak oluşturacağınız rapor dosyalarını görüntüleyebilmek için PreviewControl componentini form üzerinde istediğiniz biçimde yerleştirin ve kod sayfasının tepesine C#.NET için using FastReport;  VB.NET için Imports FastReport satırlarını ekleyin.
 
Benim yaptığım örnekteki görüntü şu şekildeydi.
 
 
Raporlama Arayüzü
 
Şimdi de gerekli kodları yazalım ama öncesinde şunu belirtmeliyim. Kullandığım sistem 64 Bit olduğu için Access DB konusunda problem yaşadım. Bu yüzden kodlar içerisinde ODBC bağlantısını kullandım. Siz bu bağlantıyı istediğiniz gibi değiştirerek kendinize göre uyarlayabilirsiniz. Ancak kullanacağınız bağlantıya ait namespace'i eklemeyi unutmayın.
 
C#.NET

public partial class ReportPage : Form
{
   Report report;

   private void ReportPage_Load(object sender, EventArgs e)
   {
      CreateReport();
   }
   
   /// <summary>
   /// Rapor içeriğini hazırlar.
   /// </summary>
   private void CreateReport()
   {
      // Yeni bir rapor dosyası oluşturuyoruz.
      report = new Report(); 

      // Resources içerisindeki string biçimindeki raporu
      // yeni oluşturduğumuz rapor içerisine yüklüyoruz.
      report.LoadFromString(Properties.Resources.ReportString);

      // Veritabanına gerekli sorguyu gönderip verileri çekiyoruz.
      DataTable dt = SQLProcesses.GetDataTable("SELECT T.Type, W.WriterName, B.BookName "
                                             + "FROM tblBooks B, tblBookTypes T, tblWriters W "
                                             + "WHERE B.BookTypeID = T.ID AND W.ID = B.BookWriterID "
                                             + "ORDER BY T.Type ASC, W.WriterName ASC");

      // Çektiğimiz verileri daha önceden şablon olarak oluşturduğumuz
      // rapor içerisinde ismi belirtilen tabloya register ediyoruz.
      report.RegisterData(dt, "tblBooksWithTypes");

      /* Rapor gösterilemezse olacakları burada belirliyoruz.
       * Ancak bu kullanımın mecburi olmadığını yalnızca birden fazla rapor oluştururken
       * kullanımı kolaylaştırmak gayesiyle böyle tasarlandığına dikkat edelim. */
      if (!ShowReport(report))
      {
         Application.Exit();
      }
   }

   /// <summary>
   /// Gönderilen raporun görüntülenmesini sağlar ve işlemin başarı durumunu geriye döndürür.
   /// </summary>
   /// <param name="report"></param>
   /// <returns></returns>
   private bool ShowReport(Report report)
   {
      bool rV = false;
      try
      {
         // Gönderilen rapor dosyasının form üzerindeki
         // PreviewControl de gösterileceğini belirtiyoruz.
         report.Preview = pCReports; 

         // Eğer rapor arkapkanda hazırlanmışsa sonraki adıma geçiyoruz. 
         if (report.Prepare()) 
         {
            // Hazırlanmış olan raporun gösterilmesini sağlıyoruz.
            report.ShowPrepared();
            
            // Rapor üzerinde scroll işlemlerini doğrudan gerçekleştirebilmek için
            // PreviewControl üzerine odaklanıyoruz.
            pCReports.Focus(); 

            rV = true;
         }
      }
      catch
      {
         rV = false;
      }
     
      // Eğer rapor başarılı bir şekilde oluşturulduysa geriye true değeri döndürüyoruz.
      return rV; 
   }
}

public class SQLProcesses
{
   /// <summary>
   /// Rapor içeriğini veritabanından çekerek DataTable içerisinde geri döndürür.
   /// </summary>
   /// <param name="cmd">Veritabanına gönderilecek olan sorgu</param>
   /// <returns></returns>
   public static DataTable GetDataTable(string cmd)
   {
      DataTable returnTable = new DataTable();
      try
      {
         OdbcConnection ODBCConn = new OdbcConnection (@"Driver={Microsoft Access Driver (*.mdb, *.accdb)};"
                                                      + "dbq=C:\FASTREPORT .NET SAMPLE\data.mdb;defaultdir=C:\FASTREPORT .NET SAMPLE;"
                                                      + "driverid=25;fil=MS Access;filedsn=C:\FastReport .NET Sample\FR.NETConn.dsn;"
                                                      + "maxbuffersize=2048;maxscanrows=8;pagetimeout=5;safetransactions=0;threads=3;"
                                                      + "usercommitsync=Yes;uid=admin");
         
         OdbcDataAdapter oda = new OdbcDataAdapter(cmd, ODBCConn);
         oda.Fill(returnTable);
      }
      catch(Exception ex)
      {
         MessageBox.Show(string.Format("Hata Oluştu. Hata İçeriğini Aşağıda Görebilirsiniz.\n\n{0}", ex.Message));
      }

      return returnTable;
   }
}

VB.NET

Imports FastReport
Imports System.Data.Odbc

Partial Public Class ReportPage

    Inherits Form

    Private report As Report

    Private Sub ReportPage_Load_1(ByVal sender As System.Object,
                                  ByVal e As System.EventArgs)
    Handles MyBase.Load
        CreateReport()
    End Sub

    ''' <summary>
    ''' Rapor içeriğini hazırlar.
    ''' </summary>
    Private Sub CreateReport()

        ' Yeni bir rapor dosyası oluşturuyoruz.
        report = New Report()

        ' Resources içerisindeki string biçimindeki raporu
        ' yeni oluşturduğumuz rapor içerisine yüklüyoruz.
        report.LoadFromString(My.Resources.MyResources.ReportString)

        ' Veritabanına gerekli sorguyu gönderip verileri çekiyoruz.
        Dim dt As DataTable = SQLProcesses.GetDataTable("SELECT T.Type, W.WriterName, B.BookName "
                                                      & "FROM tblBooks B, tblBookTypes T, tblWriters W "
                                                      & "WHERE B.BookTypeID = T.ID AND W.ID = B.BookWriterID "
                                                      & "ORDER BY T.Type ASC, W.WriterName ASC")

        ' Çektiğimiz verileri daha önceden şablon olarak oluşturduğumuz
        ' rapor içerisinde ismi belirtilen tabloya register ediyoruz.
        report.RegisterData(dt, "tblBooksWithTypes")

        ' Rapor gösterilemezse olacakları burada belirliyoruz.
        ' Ancak bu kullanımın zorunlu olmadığını yalnızca birden fazla rapor oluştururken
        ' kullanımı kolaylaştırmak amacıyla böyle tasarlandığına dikkat edelim.
        If Not ShowReport(report) Then
            Application.[Exit]()
        End If
    End Sub

    ''' <summary>
    ''' Gönderilen raporun görüntülenmesini sağlar ve işlemin başarı durumunu geriye döndürür.
    ''' </summary>
    ''' <param name="report"></param>
    ''' <returns></returns>
    Private Function ShowReport(ByVal report As Report) As Boolean
        Dim rV As Boolean = False
        Try

            ' Gönderilen rapor dosyasının form üzerindeki
            ' PreviewControl de gösterileceğini belirtiyoruz.
            report.Preview = pCReports

            ' Eğer rapor arkapkanda hazırlanmışsa sonraki adıma geçiyoruz.
            If report.Prepare() Then

                ' Hazırlanmış olan raporun gösterilmesini sağlıyoruz.
                report.ShowPrepared()

                ' Rapor üzerinde scroll işlemlerini doğrudan gerçekleştirebilmek için
                ' PreviewControl üzerine odaklanıyoruz.
                pCReports.Focus()

                rV = True
            End If
        Catch
            rV = False
        End Try

        ' Eğer rapor başarılı bir şekilde oluşturulduysa geriye true değeri döndürüyoruz.
        Return rV

    End Function

End Class

Public Class SQLProcesses
    ''' <summary>
    ''' Rapor içeriğini veritabanından çekerek DataTable içerisinde geri döndürür.
    ''' </summary>
    ''' <param name="cmd">Veritabanına gönderilecek olan sorgu</param>
    ''' <returns></returns>
    Public Shared Function GetDataTable(ByVal cmd As String) As DataTable
        Dim ReturnTable As New DataTable()
        Try
            Dim ODBCConn As New OdbcConnection("Driver={Microsoft Access Driver (*.mdb, *.accdb)};"
                                             & "dbq=C:\FASTREPORT .NET SAMPLE\data.mdb;"
                                             & "defaultdir=C:\FASTREPORT .NET SAMPLE;driverid=25;"
                                             & "fil=MS Access;filedsn=C:\FastReport .NET Sample\FR.NETConn.dsn;"
                                             & "maxbuffersize=2048;maxscanrows=8;pagetimeout=5;safetransactions=0;"
                                             & "threads=3;usercommitsync=Yes;uid=admin")

            Dim oda As New OdbcDataAdapter(cmd, ODBCConn)
            oda.Fill(ReturnTable)
        Catch ex As Exception
            MessageBox.Show(String.Format("Hata Oluştu. Hata İçeriğini Aşağıda Görebilirsiniz."
                                          & vbLf & vbLf & "{0}", ex.Message))
        End Try

        Return ReturnTable
    End Function
End Class

Yapmamız gereken işlemler bu kadar. Bunların yanısıra farklı kodlarla doğrudan VS IDE içerisinde rapor içeriği oluşturulabiliyor olmasına rağmen buradaki gibi şablon oluşturup içerisindeki tablolara verileri yüklemek daha kolay ve kullanışlı olduğu için diğer kodlara girmiyorum.
 
Ayrıca şunu da belirtmeliyim. FastReport.Net Designer üzerinde oluşturup kaydettiğiniz dosyalar metin tabanlı dosyalardır. Basit düzeyde herhangi bir metin editörü (notepad, emeditor, notepad++, vs.) ile açıp içerisindeki metni alıp resources içerisinde depolayabilirsiniz. Bizim burada yaptığımız da buydu zaten.
 

Yaptığımız örnekle ilgili örnek kodları buradan indirebilirsiniz Örnek kodlar hem C# .NET hem de VB .NET üzerinde oluşturulmuştur.


Not1Örnek kodun doğru bir şekilde çalışması için zip dosyasının içeriğini C:\ adresine çıkartın.

Not2: Kullandığım FastReport.Net sürümü 1.2.47, Visual Studio sürümü 2008'dir.

Not3: VB.NET kodları http://www.developerfusion.com/tools/convert/csharp-to-vb/ üzerinden otomatik olarak oluşturulmuştur ancak sonrasında gerekli düzeltmeler yapılmış ve çalıştığı test edilmiştir.

Not4: Kod içerisinde kullandığım veritabanı bağlantısı ODBC üzerinden gerçekleştiği için resources içerisine gömdüğüm string de Report_Sample[ODBCConn].frx isimli dosyaya ait. Bu yüzden kodları doğrudan çalıştırmak istediğinizde ODBC hatası alabilirsiniz. Bu problemi çözmek için ya Denetim Masası üzerinden bir tane ODBC bağlantısı tanımlayın ya da Report_Sample.frx isimli dosyaya ait stringi resources içine gömüp gerekli değişiklikleri yaparak kullanın.

 

Herhangi bir problemle karşılaşırsanız yardımcı olmaya çalışırım.

Tekrar görüşünceye kadar hoşçakalın...

 

Yorumlar

Bilal AFŞAR 30.01.2020 19:23
Çözdüğünüze sevindim Fatih Bey :)

Kolay gelsin.
Fatih 30.01.2020 13:34
Bilal Bey;
ilginiz ve düşünceleriniz teşekkür ederim dediğiniz gibi veriyi DataTable ve DataSet kullanarak karmaşık olan nesneleri uygulama ve rapor ağacında küçük hesaplamalar yaparak fastreport düzgün çalışmasını sağladı
Bilal AFŞAR 28.01.2020 20:56
Merhaba Fatih Bey,

Muhtemelen, uygulamadan parametre gönderdiğiniz halde, FastReport içerisinde bu parametreleri doğru şekilde bağlamadınız. Bu yüzden, her seferinde, rapor üzerinden çektiğiniz veri geliyor. Parametreleri nasıl bağlayabileceğinize dair açıklamalar, yanlış hatırlamıyorsam, FastReport ile alâkalı makalelerimden birinin yorumlarında mevcuttu.

Ancak, yine de parametre göndererek kullanılabilecek olan bu yolu tavsiye etmem. Bu şekildeki bir kullanımda, DB adresi ve bilgileri her zaman rapor içerisine gömülü olacağı için, daha sonra uygulama içinde yapacağınız bir DB bilgisi değişikliğini buraya yansıtmak problem oluşturacaktır.

Bu sebeple, rapor içinde sadece tasarımı yapıp, veriyi uygulamadan göndererek bağlamanızı tavsiye ederim.

Şu an için, kolay bir şekilde DataTable ya da DataSet göndererek veri bağlayabilirsiniz. Gönderdiğiniz veriyi, makale içinde bahsettiğim şekilde rapora gönderebilirsiniz. Rapor içinde ayrıca bir bağlantı yapılması gerekebilir. Bunu nasıl yapabileceğinize dair açıklamalar, yorumlar içinde mevcuttu.

Ayrıca, Generic List tipinde veri bağlama imkânınız da var. Ancak, daha evvel kendim de Generic List kullanmadığımı farkedip incelediğimde, bunun DataTable'a nazaran daha zor olduğunu gördüm. Bu işi kısmen de olsa kolaylaştıracak bir kütüphane üzerinde çalışıyordum ve kısmen tamamladım ancak yeterli fırsat bulamadığım için, maalesef nihayete erdirip, buraya ekleme imkanı da elde edemedim.

Özet olarak, DataTable ya da DataSet kullanmanızı ve veriyi uygulama içinden gönderip, raporda sadece yerleştirme işlemi ve gerekliyse ufak çaplı hesaplamalar yapmanızı tavsiye ederim.
Fatih 28.01.2020 20:23
Merhaba;
c# ile fastreport parametre göndererek verileri raporlaması yapmaya çalışıyorum sorun: rapor oluşunca parametre son veriyi gösteriyor veriyi daset aracılığıyla mı göndermem gerekiyor
Bilal AFŞAR 2.03.2019 19:11
Merhaba Vedat Bey,

Yeni bir Report nesnesi bile oluşturamadığınıza göre, FastReport.NET'e ait dll, Visual Studio Toolbox'a eklenmemiş ya da doğrudan projeye referans verilmemiş demektir. Elinizde 2 yol var.

1. Yol: FastReport.NET kurulumunu normal şekilde baştan yaparsanız toolbox içine gerekli nesnelerin eklenmesi gerekiyor. Buradan sürükle-bırak yoluyla form üzerine bir tane Report nesnesi atarsanız, gerekli dll dosyaları projeye referans olarak eklenecektir. Sonrasında, doğrudan kod kısmından devam edebilirsiniz. Ancak yine de, new Report() yazdığınız hâlde kod çalışmıyorsa ilgili namespace'i, sayfanın en üstüne using FastReport; yazarak ekleyebilirsiniz. Bundan sonra kodun çalışması gerekmektedir.

2. Yol: FastReport.dll dosyasını projeye doğrudan referans vererek kullanabilirsiniz. Bunun için projenin References kısmına sağ tıklayıp Add Reference dedikten sonra dll dosyasını göstermeniz gerekmektedir. .NET Component başlığı altında FastReport ismini bulamazsanız, dosya adresi üzerinden gitmeniz gereklidir. Bunun için -eğer farklı bir adrese atmadıysanız- C:\Program Files (x86)\FastReport.Net\ ya da C:\Program Files\FastReport.Net\ klasörü altına bakmalısınız. Dosyayı referans verdikten sonra new Report() yazdığınızda çalışmazsa, 1. yoldaki şekilde namespace'i kod içine eklemeniz gerekmektedir.

Datagrid üstündeki verileri bağlamak için ise, diğer makalelere ve yorumlara göz atmanızı tavsiye ederim. Oralardaki bilgilerden aradığınız kod yapısına ulaşacağınızı tahmin ediyorum.
vedat 2.03.2019 14:00
Merhaba Bilal Bey,
Yapmak istediğim bir uygulama ile ilgili bir soru sormak istiyorum. Windows Form üzerinde ki bir datagridview'e istediğim verileri çekiyorum.Fastreport üzerinde istediğim tasarımı yaprım. Şimdi bu verileri fastreport üzerinde görüntüleyemiyorum. Bunun için ne yapmam lazım. Report report =new Report(); kodunu bile görmüyor kütüphaneyi yanlış mı ekledim acaba fastreport kütüphanesi nerden eklenir ?
Teşekkürler
Bilal AFŞAR 17.10.2017 22:51
Merhaba Nuri Bey,

Çıkmaktan kastınız, iptâl düğmesine basınca çıkmaması ise, buna bir şey yapabileceğinizi sanmıyorum. Ancak yazdığınız kod içinde muhtemel bir hatayı düzeltmenizi tavsiye ederim.

report.Dispose() satırı ile rapor dosyasını hafızadan silme emri göndermiş olursunuz. Bu da muhtemelen raporun yüklenememesine sebep olacaktır. Raporu görüntüleyip kapattıktan bir süre sonra, rapor; zaten hafızadan tamamen atılacaktır. Bu sebeple, bu satırı kullanmamanız daha doğru bir tercih olacaktır.

Ayrıca report.Show(this.MdiParent) şeklinde bir ifadeyi de daha evvel kullanma ihtiyacı hissetmediğim için beni şüpheye düşürdü. Bu ifade yerine report.Show() kullanımı da muhtemel bir hataya mâni olabilir.
nuri 17.10.2017 10:52
using (MySqlConnection baglanti = new MySqlConnection(KULLANICIGIRISI.mysqlbaglantisi))
{
FastReport.Report report = new FastReport.Report();
string sqlkodu = "";
string sqlkodu2 = "";
string sqlkodu3 = "";
string sqlkodu4 = "";
string sqlkodu5 = "";
sqlkodu = "select * From " + SISTEM_AYARLARI.VERITABANTABLO.tablo_carikart_hareket + " where CARHAREKET_FIRMAKODU='" + KULLANICIGIRISI.firmakodu + "' and " + sqlcumle1 + " and CARHAREKET_TARIH BETWEEN '" + string.Format("{0:yyyy-MM-dd}", Convert.ToDateTime(islemtarihi1)) + "' and '" + string.Format("{0:yyyy-MM-dd}", Convert.ToDateTime(islemtarihi2)) + "' and CARHAREKET_VADETARIH BETWEEN '" + string.Format("{0:yyyy-MM-dd}", Convert.ToDateTime(vadetarihi1)) + "' and '" + string.Format("{0:yyyy-MM-dd}", Convert.ToDateTime(vadetarihi2)) + "' and CARHAREKET_BORC BETWEEN '" + borctutari1 + "' and '" + borctutari2 + "' and CARHAREKET_ALACAK BETWEEN '" + alacaktutari1 + "' and '" + alacaktutari2 + "' and CARHAREKET_ISLEMTUTAR BETWEEN '" + islemtutari1 + "' and '" + islemtutari2 + "' and CARHAREKET_DURUM='True' order by CARHAREKET_TARIH asc";
sqlkodu2 = "select * From " + SISTEM_AYARLARI.VERITABANTABLO.tablo_carikart + " where CARIKART_FIRMAKODU='" + KULLANICIGIRISI.firmakodu + "' and " + sqlcumle2 + "";
sqlkodu3 = "select * From " + SISTEM_AYARLARI.VERITABANTABLO.tablo_carikart_hareket + " where CARHAREKET_FIRMAKODU='" + KULLANICIGIRISI.firmakodu + "' and CARHAREKET_TARIH < '" + string.Format("{0:yyyy-MM-dd}", Convert.ToDateTime(islemtarihi1)) + "' and CARHAREKET_DURUM='True'";
sqlkodu4 = "select * From " + SISTEM_AYARLARI.VERITABANTABLO.tablo_fatura_hareket + " where FATURAHAREKET_FIRMAKODU='" + KULLANICIGIRISI.firmakodu + "' and " + sqlcumle3 + " and FATURAHAREKET_DURUM='True'";
sqlkodu5 = "select * From " + SISTEM_AYARLARI.VERITABANTABLO.tablo_fatura_fis + " where FATFIS_FIRMAKODU='" + KULLANICIGIRISI.firmakodu + "' and " + sqlcumle4 + " and FATFIS_DURUM='True'";
MySqlDataAdapter mysqladapter = new MySqlDataAdapter(sqlkodu, baglanti);
MySqlDataAdapter mysqladapter2 = new MySqlDataAdapter(sqlkodu2, baglanti);
MySqlDataAdapter mysqladapter3 = new MySqlDataAdapter(sqlkodu3, baglanti);
MySqlDataAdapter mysqladapter4 = new MySqlDataAdapter(sqlkodu4, baglanti);
MySqlDataAdapter mysqladapter5 = new MySqlDataAdapter(sqlkodu5, baglanti);
mysqladapter.SelectCommand.CommandType = CommandType.Text;
mysqladapter2.SelectCommand.CommandType = CommandType.Text;
mysqladapter3.SelectCommand.CommandType = CommandType.Text;
mysqladapter4.SelectCommand.CommandType = CommandType.Text;
mysqladapter5.SelectCommand.CommandType = CommandType.Text;
DataTable DataSet = new DataTable();
DataTable DataSet2 = new DataTable();
DataTable DataSet3 = new DataTable();
DataTable DataSet4 = new DataTable();
DataTable DataSet5 = new DataTable();
mysqladapter.Fill(DataSet);
mysqladapter2.Fill(DataSet2);
mysqladapter3.Fill(DataSet3);
mysqladapter4.Fill(DataSet4);
mysqladapter5.Fill(DataSet5);
report = new FastReport.Report();
report.Load("formlar/cari/ekstre/" + comboBoxEdit_sablon.Text + ".FRX");
report.RegisterData(DataSet, "carihareketler");
report.RegisterData(DataSet2, "cari");
report.RegisterData(DataSet3, "caridevirbakiye");
report.RegisterData(DataSet4, "faturahareket");
report.RegisterData(DataSet5, "faturafis");
report.SetParameterValue("DEVIRBAKIYE", Convert.ToString(checkEdit_devirbakiye.Checked));
report.Preview = this.previewControl1;
report.Show(this.MdiParent);
report.Dispose();
baglanti.Close();
}

böyle bir kod kullanıyorum raporlamadan çıkmak istediğimde çıkmıyor, bu kod yerine farklı bir kod varmı acaba
Bilal AFŞAR 21.03.2015 17:28
Merhaba Ali Bey,

Eğer sorduğunuz Generic List ile kullanımsa, elbette bu şekilde de kullanılabiliyor. Zira burada IDE ile bağlantı kurarken kullanmamız gereken RegisterData methodunun 8 overload'u mevcut. Bunlar DataSet, DataRelation, DataTable, DataView, IEnumerable tiplerinde verileri kabul ediyor. Generic List tipi de IEnumerable interface'i kullanılarak türetildiği için, bu interface'i kullanarak türetilmiş olan herhangi bir veri türünü göndermeniz mümkündür.
Ali KARA 21.03.2015 11:13
Sn. Bilal Bey,
Fastreport ile sadece datatable ile mi çalışıyor, yani object<list> şeklindeki bir datayı raporlayamaz mıyız...
Bilal AFŞAR 6.01.2015 01:47
Teyfik Bey, istediğiniz işlemle ilgili olarak yeni bir makale ekledim. Oradan işinize yarayacak bilgilere ulaşabilirsiniz.
Teyfik AYDIN 4.01.2015 22:17
Bilal bey bilgileriniz için çok teşekkür ederim.Fast report kullanıyorum Devexpress gridView de sütün başlıklarından filtreleme yapınca sadece seçili satırları yazdırmasını istiyorum.Fakat tüm vt deki kayıtlar geliyor.yardımcı olursanın memnun olurum.Tşk Ederim.
Bilal AFŞAR 25.10.2013 02:44
Selamlar Hasan Bey,

Daha önce FireBird kullanmadığım için maalesef net bir çözüm sunamıyorum. Kendi makinemde FireBird kurmuş ve FastReport.NET üzerinde FireBird bağlantı seçeneğini gösterebilmiş olmama rağmen FireBird'ün çalışma mantığını bilmediğim için daha ilerisine gidemedim. Bu yüzden size yardımcı olabileceğim temel nokta bu bağlantıyı nasıl oluşturacağınızı göstermek olacaktır. Nette yaptığım küçük bir araştırma sayesinde http://www.fast-report.com/en/download/fast-report-net/ adresinde, 'Data connections' başlığı altındaki dosyaya ulaştım. Bu dosyayı indirip içerisindeki readme dosyasındaki talimatları izlerseniz öncelikle size ait bir DLL dosyası verecektir. Bu DLL dosyasını oluşturmak için gerekli olan .NET Provider DLL'ini de FireBird'ün kendi sitesinden, kullandığınız Framework versiyonuna bağlı olarak seçip indirmeniz gerekiyor. DLL dosyasını oluşturduktan sonra da bağlantıyı kurabilirsiniz.
Hasan ÇOBANOĞLU 23.10.2013 16:56
Merhabalar Bilal AFŞAR
c# ile Fastreport aracılığıyla firebird dataya nasıl bağlantı kurabilirim yardımcı olursanız sevinirim...
İyi Çalışmalar
Bilal AFŞAR 15.08.2011 13:31
Merhabalar Said Bey,
Maalesef VB.NET üzerinde temel seviyede bilgi sahibi olduğum ve IDE üzerinde değilde doğrudan metin tabanlı bir platformdan kodları okuma zorluğu yaşadığım için buradan net olarak sorunuza cevap veremiyorum. Ancak elinizdeki hatayı içeren projeyi ya da aynı hatayı veren yeni oluşturabileceğiniz küçük örnek bir projeyi göndermeniz mümkünse bir sonuca ulaşmak için elimden geldiğince yardımcı olabilirim.
Spam iletilerle karşılaşmayı tercih etmediğim için e-posta adresimi buradan yazmayı tercih etmiyorum. E-posta adresimi doğrudan adresinize göndereceğim e-postayla size ulaştıracağım.
Said Dinç 15.08.2011 10:25
Sn. Bilal AFŞAR FastReport.Netle rapor almaya çalışıyorum. ancak bir türlü başaramadım. Kodlar aşağıda konu hakkında araştırıyorum ancak benim yapmak istediğim şekli ile yapılmış metodu bulamadım. Şöyleki verileri veritanabından fastreporta gönderip sonra rapor sayfasında sonucu görmek istiyorum ancak VeriDtSt: Tablo, veriye bağlanmaz. Veri kullanma raporunu kaydet. RegisterData metodu ile hatası ile karşılaşıyorum. yardımlarınız için şimdiden teşekkürler.
Private Sub PrntPvw_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PrntPvw.Click
MyOLECOnN()
OLEAdp2 = New OleDbDataAdapter(SqlLst, OLEConN)
FrxDtSet = New DataSet With {.DataSetName = "MACIPAdress"}
OLEAdp2.Fill(FrxDtSet)
FReport = New Report
FReport.Load(RprtName)
FReport.RegisterData(FrxDtSet, "VeriDtSt")
AdSydTObj = FReport.FindObject("AdSydTxt")
MstrDtBnd = FReport.FindObject("DataTbl")
MstrDtBnd.DataSource = FReport.GetDataSource("MACIPAdress")
TblDtSrc = FReport.GetDataSource("VeriDtSt")
For i As Integer = 0 To FrxDtSet.Tables(0).Rows.Count - 1
AdSydTClm.BaseName = FrxDtSet.Tables(0).Rows(i)(0).ToString
Next
FReport.Show()
FReport.Dispose()
DisConnect()
End Sub

Yorum Yaz

Adınız: *
E-Mail Adresiniz: *
Web Sitesi:
Yorum: *
Güvenlik Kodu: *
 
Tavsiye
Bağlantılar