Merhabalar,

Bu yazımda hakkında Türkçe kaynak bulmanın zor olduğu FastReport.Net raporlama aracından bahsetmeye çalışacağım.

Geçmişte Delphi tarafında çok kullanılan FastReport, .NET tarafında (en azından şu an için) yeterince başarılı olamamış gibi görünüyor. Bunun sebebi -sanırım- Visual Studio IDE içerisine Crystal Report 'un dahil edilmesi ve okullarda da bu raporlama aracı ile ilgili bilgilerin veriliyor olmasıdır.

Bu sebeple, FastReport.Net'i kullanmaya karar verdiğim zaman zorluklar yaşadığımı ve maalesef Türkçe kaynak bulamadığımı da söylemeliyim.

Bu açılıştan sonra dilerseniz örneğimize geçelim.

FastReport.Net 'in Designer aracını açtıktan sonra, ilk olarak raporumuza veri kaynağı eklememiz gereklidir. Bunun için menü üzerinde Veri > Veri Kaynağı Ekle... yolunu izliyoruz. Açılan pencerede yeni bağlantı düğmesine tıklıyoruz. Karşımıza çıkan pencere, Visual Studio IDE üzerinde kod yazmadan veritabanına bağlamamızı sağlayan pencereyle aynı şekilde dizayn edilmiş durumda. Bu yüzden bu safhada, daha önceden tecübesi olan kişiler zorlanmayacaktır.

Kullanacağımız veritabanı bir Access veritabanı olduğu için burada 'Bağlantı Tipi' kısmından 'MS Access Bağlantısı' seçeneğini seçiyoruz ve Veritabanı dosyamızın adresini belirtiyoruz. Örnekteki veritabanımıza herhangi bir şifre koymadığımız için 'Gelişmiş' düğmesine tıklıyoruz ve 'Persist Security Info' kısmını 'True' olarak işaretliyoruz. Kullanıcı Adı ve Şifre kısmını da boş bırakarak geçiyoruz.

Tamam düğmesine bastıktan sonra 'Bağlantı Metni' kısmından veritabanına bağlanmak için kullanılan kodu görebiliriz.

'Sonraki' düğmesine bastıktan sonra karşımıza gelen ekranda bilgilerine erişmek istediğimiz tabloları seçiyoruz. Erişmek istediğimiz bilgiler gruplandırılmış bilgiler olduğu için bu safhada 'SQL sorgusu ekle' düğmesine tıklayarak yeni bir tablo oluşturuyoruz. Örneğimizde tablomuza 'tblBooksWithTypes' ismini verdik. Yazdığımız sorguda şu şekilde:


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

Sorgumuzu yazdıktan sonraki safhalarda 'Sonraki' ve 'Son' düğmelerine basarak geçiyoruz. Tablo seçim ekranına döndüğümüzde son oluşturduğumuz tabloyu seçip 'Son' düğmesine tıklıyoruz.

Karşınıza aşağıdaki gibi bir ekranın çıkması gerekiyor.

FastReport.Net Kullanımı Resim_1

Dilerseniz bu safhada ekranın sağ tarafında bulunan 'Sözlük' kısmı içerisinde görünen tabloya sağ tıkladıktan sonra 'Görünüm' ü seçerek tablo içeriğine bakabilirsiniz.

Gâyemiz kitapları gruplar halinde listelemek olduğu için 'Dosya' menüsünün az altında yer alan 'Band Aracı' na tıklıyoruz ve bu kısımda 'Ekle' düğmesine basıp 'Grup Başlığı'nı seçiyoruz.

Sonrasında ekranımızın sol tarafında 'Grup Başlığı' kısmına sağ tıklıyoruz ve 'Düzenle' menüsünü seçiyoruz. Burada gruplandırma yapmak istediğimiz kolonu seçiyoruz. Örneğimizde kitapları tipine göre gruplandırmak istediğimiz için 'Type' kolonunu seçiyoruz ve 'Tamam' düğmesine tıklıyoruz.

Bu safhadan sonra sayfa üzerinde göstereceğimiz veriler kitap tiplerine göre gruplandırılmış olacaktır.

Şimdide grup isimlerinin görüntülenmesi için sözlük kısmından 'Type' sütununu seçip 'Grup Başlığı' kısmına sürüklüyoruz. Kitap isimlerinin ve yazarlarının da görüntülenmesi için 'BookName' ve 'WriterName' sütunlarını 'Veri' sahasına sürükleyip bırakıyoruz. Buraya sürüklenen verilerle ilgili olarak 'Sayfa Başlığı' kısmında otomatik olarak nesneler oluşturulduğu için burada yeni nesneler oluşturmamıza gerek kalmayacaktır.

Eklememiz gereken verileri ekledikten sonraki kısım tamamen yerleşimle ilgili. Bu yerleşimi kendi tercihlerinize göre yapabilir ve gerekli gördüğünüz nesnelerin metinlerini değiştirebilirsiniz. Ancak burada dikkat edilmesi gereken, tablo içerisinden gelen verilerin gösterilebilmesi için bu metinlerdeki köşeli parantezler içerisinde kalan kısımların silinmemesidir. Ayrıca görünümü özelleştirmek için sol taraftaki menüden istediğiniz nesneleri forma ekleyebilir ve 'Özellikler' başlığından istediğiniz değişiklikleri yapabilirsiniz.

Yaptığım değişiklikler sonrasında dizaynın ve raporun son hâli aşağıdaki gibi oldu.

FastReport.Net Kullanımı Resim_2

FastReport.Net Kullanımı Resim_3

FastReport.Net ile ilgili bugünkü yazım bu kadar. Daha sonraki yazılarımda FastReport.Net Designer üzerinde 'Raporlama Sihirbazı' nı kullanarak rapor oluşturma ve Visual Studio IDE üzerinde FastReport.Net kullanımından bahsetmeye çalışacağım.

Yaptığımız örnekle ilgili kodları buradan indirebilirsiniz.

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


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

 

Etiketler : FastReport.Net
Kategoriler : Access FastReport.Net
Yorumlar : 103 Yorum Yorum Yaz

Yorumlar

Bilal AFŞAR 25.10.2024 14:58
Merhaba Hasan Hüseyin Bey,

Kullanım şekline bağlı olarak farklı yollar var. Eğer doğrudan FastReport üzerinden bir yapı oluşturuyorsanız, parametre kullanarak bu işlemi yapabilirsiniz. Program üzerinden raporu çağırma yolunu kullanıyorsanız eğer, bu durumda da listeyi program içinde hazırlayıp rapora gönderebilirsiniz.
Hasan Hüseyin 1.08.2024 15:10
Merhaba Bilal Bey fast reportu yeni kullanmaya başladım api ile veri çekiyorum ama id gönderip çekmem lazım şuanlık manuel olarak elle bir id veriyorum bunu nasıl otomatik bir şekilde yapabilirim
Bilal AFŞAR 27.03.2024 17:09
Merhaba İsmail Bey,

FastReport uygulaması .NET tabanlı Microsoft teknolojilerinde kullanılmak üzere geliştirilmiş bir raporlayıcıdır. Maalesef doğrudan PHP üzerinde kullanma şansınız yok.

Ancak kendi sitesinde bununla alakalı bir makale mevcut. (Makale 3 parçadan oluşuyor. Diğer bölümlerinin linkleri makalenin altında)

https://www.fast-report.com/en/blog/show/fastreport-in-PHP-1/

Kısaca, .NET Core ile sunucu tarafının oluşturulması, raporun orada ayarlanması ve PHP tarafında da raporun ekrana yansıtılması şeklinde bir yol izlenmiş.

Eğer programlamada yeniyseniz, muhtemelen bu işlemler sizin için çok zor olacaktır. Bu durumda PHP uyumlu farklı bir raporlayıcı kullanmanız, sizin için daha iyi bir tercih olacaktır.
ismail 27.03.2024 16:43
merhaba ben fast report uygulaması ile kaydettiğim 1.frx dosyasının içeriğini php de bir türlü gösteremedim staj görüyorum ve ordakiler hem 1.SQL dosyasıyla bağlantılı olsun hemde 1.frx dosyasından raporu sayfada göstersin istiyor yardım edebilir misiniz?
Bilal AFŞAR 7.09.2023 13:34
Merhaba Veli Bey,

Maalesef Delphi'deki kullanımına dair bilgim yok.
Veli Eski 4.09.2023 18:51
Delphide dbgrid içindeki yer alan alanlaraın tamamını kapsayacak şekilde (alanlar değişken) rapor oluşturulabilir mi?
Bilal AFŞAR 7.08.2023 16:10
Merhaba Umut Bey,

Aşağıdaki adreste açıklama mevcut:

https://www.fast-report.com/documentation/UserMan/index.html?html_tags_in_the_text_object.htm

Kısaca, Text objesinin basit HTML değerlerini tanıdığı yazıyor. Kalın olarak yazmak istediğiniz kısmı <b> </b> arasına yazarsanız, istediğiniz sonuca erişebilirsiniz.

Örnek:
Burası normal iken, <b>burası kalın</b> olarak yazılmıştır.
umut y 7.08.2023 15:44
fast report içindeki belirli cümleleri nasıl kalın yazabilirim.ne yaptıysam olmadı devamlı standart halde yazmaya devam ediyor.
Bilal AFŞAR 16.06.2023 23:16
Merhaba Mehmet Ali Bey,

Raporu kaydettiğinizde uzantısını frx yapar ve XML formatlı olarak kaydeder. Dosya olarak erişmek istediğinizde bu dosyayı kullanabilirsiniz.
Proje içinde bir nesneye eklemeyi ise daha önce yapmadığım için biraz araştırdım. Design işleminden sonra, rapor nesnesinin ReportResourceString property'sini kullanarak, rapor dosyasının kaynağı olan XML verilere erişebilirsiniz. Sonrasında istediğiniz gibi bir property içine ekleyebilir ya da veri tabanına veya metin tabanlı bir dosyaya kaydedebilirsiniz.
Mehmet Ali YILMAZ 16.06.2023 22:31
Merhaba
Report Design da oluşturulan bir raporu xml olarak bir dosyaya veya aynı projede bir nesneye (memoedit) nasıl aktarıyorsunuz ?
Buradaki amaç nesnedeki xml dökümanı veritabanına kayıt etmek
Raporu show ederken veritabanındaki xml içeriği çağırarak raporu show etmek..
Bilal AFŞAR 8.04.2023 06:25
Merhaba Mehmet Bey,

Muhtemelen tasarımla ilgili bir hata yapıyorsunuz. Örnek dosyayı sunma şansınız varsa, inceleyip fikir verebilirim.
Mehmet 31.03.2023 18:13
Merhaba FAST REPORT KULLANIYORUM POS KAĞIDININ ÇIKARIYORUM ÜRÜNLERİN İSMİNİN OLMASI GEREKEN YERDE BAKİYENİZ YAZIYOR ONU SİLDİM BAŞKA ÜRÜN İSMİ YAZSIN DİYE AMA SADECE BİR ÜRÜN İSMİ YAZIYOR YARDIMCI OLUR MUSUNUZ
Bilal AFŞAR 25.03.2023 07:33
Çok teşekkür ederim İlker Bey :)
İlker 22.03.2023 22:32
Teşekkürler, Çok işime yaradı yazdıklarınız. Kolay gelsin...
Bilal AFŞAR 4.01.2023 01:25
Merhaba Fatih Bey,

Daha önce böyle bir işlem yaptığımı hatırlamıyorum. Ancak İngilizce kaynaklarda ufak bir araştırma yapınca, sorunuzun cevabını buldum. Aşağıdaki adresteki yazıya göre gerekli düzenlemeleri rapor dosyası üzerinde yaparsanız, istediğiniz şekilde çalışacaktır. İşe yarayıp yaramadığını görmek için örnek bir rapor oluşturup denedim. Herhangi bir problem görünmüyor. Rapor dosyası üzerinde yaptığınız ayarlar, doğrudan yazıcı ayarı olarak belirlendiği için, sonradan yazıcı ayarları kısmına girmeniz gerekmiyor. Muhtemelen birkaç denemede başarıya ulaşabilirsiniz.

Dikkat etmeniz gereken nokta, ön izleme ekranında her sayfayı ayrı ayrı gördüğünüz halde, yazdırırken 2 sayfanın tek bir kağıt üstüne yazıldığıdır.

https://forum.fast-report.com/en/discussion/14348/print-two-pages-per-sheet-solution
Fatih 31.12.2022 19:08
Hocam merhabalar, fastreportla dizayn ile A5 kağıt boyutunda çıktı tasarladık. A4 kağıda 2tane alt alta sığacak şekilde yazdırmak istiyoruz. İnternette hep yazıcı ayarı ile yapılmış ama bizde o ayarlar yok. Kod ile yardımcı olabilir misiniz?
Bilal AFŞAR 16.11.2022 13:30
Selamlar Atamali Bey,

İki ihtimal görüyorum. Ya yazdırdığınız belgenin sınırlarında taşma var ve satırlardan biri bu yüzden görünmüyor ya da index'i 0 yerine 1'den başlatıyorsunuz. Daha net bir şey söyleyebilmek için örnek bir proje görmem gerekiyor.
Atamali 16.11.2022 13:12
Salam. Fastreporda Json data source kullaniyorum. Bir raporda bazan Json datada 10 setir olsa 9 satis yazdiriyir. Hatanin bir sekilde bula bilmedim. Her gun 10 min belge cixtisi aliniyir. Bazi belgelerde tum satirlar cixdida gorunmur. Sebebi ne ola bilir
Bilal AFŞAR 5.05.2022 17:54
Merhaba Volkan Bey,

Daha önce böyle bir şey yaptığımı hatırlıyorum. Dilerseniz önce Rana Hanım'a yazdığım yorumu inceleyin. Oradaki bilgi işinize yaramazsa, tekrar gözden geçirip bir çözüm bulabiliriz.
volkan şişi 5.05.2022 17:31
Merhaba;
fastreport programını etiket basmak için kullanıyorum.
sıra numarasını değiştiremiyorum
örneğin 1 den 50 ye kadar basılacak seri etikette her defasında sıra no yu değiştiriyorum.
otomatik olacak şekilde basmak mümkün mü
Bilal AFŞAR 11.02.2022 18:03
Merhaba İbrahim Bey,

Elimde maalesef böyle örnek bir kod yok. Hata aldığınız kodu sunarsanız, bir çözüm yolu bulmaya çalışabiliriz.
İbrahim 11.02.2022 17:49
Merhaba, raf etiketi tasarımı ile ilgili bir örnek veya kaynak var mı? Özellikle barkod bilgisini tasarıma aktaramıyorum EAN-13 barkod ile kayıtlı barkodlara hata alıyorum
Bilal AFŞAR 7.04.2020 16:08
Rica ederim Murat Bey,

Kolay gelsin.
Murat 7.04.2020 12:01
Merhaba Bilal Bey;
Verdiğiniz bilgi için teşekkürler.
Bilal AFŞAR 5.04.2020 12:16
Merhaba Murat Bey,

İstediğiniz işlem doğrudan FastReport ile alâkalı bir durum değil. Eğer, (SQL Server kullandığınızı farz ediyorum) Management Studio ile işyerinizdeki sunucuya bağlanabiliyorsanız, FastReport içinden de aynı IP adresi ve kullanıcı bilgilerini vererek bağlanabilirsiniz.

Ancak, bazı firmalarda uzak bağlantı için VPN gerekebiliyor. Neye ihtiyacınız olacağından emin olmak için IT departmanındaki arkadaşlarınıza danışabilirsiniz. En doğru bilgiyi onlar sunacaklardır.
Murat 5.04.2020 11:48
Merhaba Bilal Bey;
Ben FastReport ile evdeki bilgisayarımla işyerindeki server e bağlanıp veritabanı kullanmak raporlamaları evden yapmak istiyorum bunun bir yolu varmıdır.Teşekkürler
Bilal AFŞAR 22.03.2020 19:52
Merhaba Gizem Hanım

İstediğiniz türde bir işlemi daha önce yapmadım. Ancak bazı çözüm yolları sunabilirim.

Formatlı yazdırmak istediğiniz kısımları, diğerlerinden ayırt eden bir fark varsa, kod kısmında buna dair bir düzenleme ile o maddelerin formatını değiştirmek mümkün olabilir. Diğer bir yol olarak, bu kısımları ikinci bir tablo içerisinde çekerek, istediğiniz şekilde bağlayabilirsiniz.

Rtf düzenleme için de, Wordpad kullanabilirsiniz. Ya da dilerseniz Word ya da açık kaynaklı bir editor kullanıp, "Zengin Metin Belgesi" olarak kaydedebilirsiniz. Standart bir format olduğu için aralarında bir fark olmayacaktır.

Yine de istediğiniz şekilde bir yol bulamazsanız, örnek bir proje gönderdiğiniz takdirde, çözüp size haber vermeye çalışırım.

Gizem 18.03.2020 14:44
Fastreportu yeni kullanmaya başladım. Veritabanı bağlantısını oluşturdum. Hazırladığım raporda bazı verileri veritabanından dinamik olarak çekiyorum. Fakat bu çektiğim verilerden bazılarını raporda formatlı (kalın, italik, madde imi) olarak yazdırmam gerekiyor. Zengin metin editörünü kullandım fakat içeriğin tamamına bu özellikleri uyguladı. Bu konuda bilginiz var mı?
Ayrıca zengin metin editörü içerisindeki metni rtf formatında tutuyor. Online rtf çıktısı veren bir metin editörü aradım ve Quill buldum fakat içerisinde düzenlediğim metnin çıktısını rtf formatında alamadım.
Bilal AFŞAR 29.01.2020 13:44
https://www.bilalafsar.com/FastReport-Net-Kullanimi-Visual-Studio-Integration.aspx adresindeki yazı işinize yarayacaktır. Bu örnekte bir liste çekiliyor. Siz de ise, tek bir kayıt olacak ancak bunu da DataTable içine aktarıp, o örnekteki gibi rapora gönderebilirsiniz.

Sonrasında, gerekirse rapor içinde aşağıdaki koddakine benzer şekilde bağlama işlemi yapmanız gerekebilir.

private void Page1_StartPage(object sender, EventArgs e)
{
TableDataSource table = Report.GetDataSource("dataTableRegisteredName") as TableDataSource;
Data1.DataSource = table;
}
EMRE DEVECİ 29.01.2020 13:37
Hocam sıra numarası yani idisini girigim raporun gelmesini istiyorum mesela id si 1 olan ögrencilerinin bilgileri gelecek sadece texboxdan id sini girecek numarayı o idili bilgileri raporluycaz
Bilal AFŞAR 29.01.2020 13:24
Merhaba Emre Bey,

Biraz daha detaya ihtiyacım var. Ne yapmak istediğiniz detaylandırırsanız, yardımcı olmaya çalışayım.
EMRE DEVECİ 29.01.2020 13:04
istedigim numaralı id göre rapor nasıl çekebilirim
Bilal AFŞAR 24.01.2020 10:27
Merhaba Emre Bey,

Çıktı olarak doğrudan pdf gibi bir dosya istiyorsanız, muhtemelen olacak. Şu ana kadar ihtiyacım olmadığı için deneyip yapmadım. Ancak yapmak istediğiniz işlemi, daha net ifade ederseniz, çözümü bulup sunabilirim.
EMRE DEVECİ 24.01.2020 08:59
raporu direk dışa aktaran bir kod varmı bilal hocam
Bilal AFŞAR 10.10.2019 19:28
Selamlar Esat Bey,

Tasarım için farklı yollar bulmak mümkün. Dilerseniz table ya da div gibi etiketleri kullanarak istediğiniz tasarımı yapabilir ve bunun çıktısını alabilirsiniz. Ancak daha profesyonel tasarımlar çıkartmak isterseniz bir raporlayıcı kullanmanız gerekecektir. FastReport alternatifleri de işinizi görebilir ancak onlar hakkında pek fazla bilgim yok. Yine de fastreport kullanmak niyetindeyseniz internette kırılmış versiyonlarını bulabilirsiniz. Fakat bilhassa ticari kullanım için bundan uzak durmanızı tavsiye ederim.
esat 9.10.2019 15:42
Selamlar,

Biz online etiket tasarlamak istiyoruz. Asp.net mvc de bunu online nasıl yapabiliriz. FastReportun lisanslama ücretleri çok pahalı
Bilal AFŞAR 6.10.2019 14:34
Merhaba, AliKaan Bey,

Yaşadığınız sıkıntının ne olduğuna dair daha net bir bilgi sunabilirseniz elimden geldiğince yardımcı olmaya çalışabilirim.
AliKaan 6.10.2019 01:09
Merhaba Bilal bey etiket barkod ile ilgili biseyler ariyorum ama tam olarak aradigimi bulamadim. Yönlendirebileceginiz bir link veya yardimci olabileceginiz bir konu mudur? Tesekkur eder iyi calismalar dilerim
Bilal AFŞAR 17.09.2019 18:42
Merhaba Selen Hanım,

Eğer rapor tasarımında bir hata yoksa, uygulamada hata olma ihtimali var. Ancak böyle olduğunu düşünmüyorum. Dilerseniz rapor dosyanızın bir kopyasını gönderin. İnceleyip çözüm bulmaya çalışalım. Eğer böyle olmazsa, iş saatlerinden sonra uzaktan bağlantı ile de yardımcı olmaya çalışırım. .Net tarafında çalışıyor olsam da muhtemelen çözümünü buluruz.
Selen 17.09.2019 11:56
Silo_No MalzemeAdı
1 Malzeme 1
3 Malzeme 2 -------->
2 Malzeme 3
4 Malzeme 4
SİLO NUMARASINA GÖRE ASLINDA MALZEME 3 GELMELİ FAKAT MALZEME İSİMLERİNİ KENDİNCE SIRALIYOR FASTREPORT VE BU MALZEMEADI COLUMN U DÜZELTEMEDİM Bİ TÜRLÜ. FASTREPORT A SQL SORGUSUNU ÇEKERKEN SİLO NO YA GÖRE ÇEKİYORUM VE VERİTABANINDA DA ZATEN İSTEDİĞİM ŞEKİLDE SIRALANIYOR İSİMLER AMA BURAYA GELİNCE BÖYLE BİR HAL ALIYOR. YARDIMCI OLUR MUSUNUZ

(FastReport VCL 6 kullanıyorum)
Bilal AFŞAR 6.09.2019 14:00
Merhaba Yasir Bey,

Eğer, verilerin hepsinin geldiğinden eminseniz, muhtemelen veriyi yanlış kısma koymuşsunuz demektir. Tekrarlayan verilerin, yukarıdaki resimlerde sarı/turuncu renkli görülen, üzerinde "Veri" yazan DataBand üzerine eklenmesi gerekiyor.
YASİR AYVERDİ 6.09.2019 12:59
Merhabalar bu program üzerinden fatura tasarımı yaptım ancak fatura da sadece ilk ürün çıkıyor diğerlerininde çıkması için bir parametre mi kullanamam gerek ?
Bilal AFŞAR 24.07.2019 14:11
Merhaba Onurcan Bey,

FastReport'un .NET versiyonunda memoview nesnesi mevcut değil. Muhtemelen diğer versiyonunu kullanıyorsunuz. Bir örnek dosya ile kullandığınız versiyon adını gönderebilirseniz, yine de yardımcı olmaya çalışırım.

Ayrıca dilerseniz şu adrese de göz atabilirsiniz:

https://www.fast-report.com/en/forum/index.php?showtopic=13455

Kısaca, kullandığınız databand'lerin allowsplit özelliğinin değerini true yapmanız gerektiğini yazmışlar. Aradığınız özellik bu olabilir.
Onurcan 24.07.2019 09:25
Merhaba, Fastreport memoview ile oluşturduğum raporda bir paragraf sayfa sonuna denk geldiğinde, paragrafın kalan kısmı diğer sayfada çıkıyor ama ben bu gibi durumda paragrafın direkt yeni sayfada başlamasını istiyorum. Bu konuda bir yardımınız olur mu?
Bilal AFŞAR 11.07.2019 17:41
Merhaba Yunus Emre Bey,

Örnek kod sunabilirseniz, problemi düzeltmek için yardımcı olmaya çalışabilirim.
yunus emre öztürk 11.07.2019 15:07
Merhaba Bilal Bey
vega yazılımı için fast report üzerinden etiket tasarımı yapmaya çalışıyorum. fakat başarısız oluyorum. önizlemede boş sayfa geliyor. sanırım veri çekmeyi başaramıyorum.
Bilal AFŞAR 2.11.2018 00:33
Merhaba Ramazan Bey

Bahsettiğiniz programı daha evvel hiç kullanmadım. Bu yüzden maalesef doğrudan yardımcı olamıyorum. Dilerseniz daha sonra bilgisayarınıza bağlanarak yardımcı olmaya çalışırım. Ancak bunun en erken ne zaman olabileceğini söyleme imkanım yok. Bugünlerde ev değiştirdiğim için şu an tam olarak kurulmuş bir düzenim yok. Bir aksilik olmazsa inşaallah fırsat bulduğumda size e-posta gönderip haber veririm. Yine de unutulma ihtimaline karşılık 2 hafta içinde tekrar hatırlatırsanız elimden geleni yapmaya çalışırım.
Ramazan ARGUM 1.11.2018 19:46
merhaba bilal bey
fastreportu emex yazılım programında etiketleme yaparken bi sayfa dolu bir sayfa bos çıkıyor. bir de etiketlemeye gelen yerli üretim logosu bir etikette basıyo diğer etiketlerde basılmıyo bir de bunun nedeni nedir acaba? programı yeni kullanmaya basladığımdan tam içeriklerini bilmediğim için size soruyorum.ilginiz için teekkür ederin kolay gelsin.
Bilal AFŞAR 23.06.2018 19:46
Tekrar Merhaba Nuri Bey,

Rica ederim. Kolay gelsin.
Nuri Çelik 23.06.2018 08:34
Bilal Bey Günaydın

Çok teşekkürler ilginiz için programı yazanlar ile görüşüeceğim artık

İyi çalışmalar
Bilal AFŞAR 22.06.2018 14:53
Merhaba Nuri Bey,

Tam olarak emin olmamakla beraber, kullandığınız versiyonda bu filtrenin desteklenmediğini tahmin ediyorum. FastReport'un kullanıcı kılavuzuna baktığım zaman bu filtrenin var olduğuna dair açıklamaları gördüm. Ancak hangi versiyonda eklendiğini bilmiyorum. Bu yüzden kullandığınız versiyona göre bir inceleme yapmak gerekebilir. Ya da mümkünse son versiyona güncelleyip tekrar deneyebilirsiniz.

Eğer yazdığınız formülde hata yoksa, son versiyonda çalışması gerekecektir.
Nuri Çelik 22.06.2018 08:39
Bilal Bey Günaydın

Amacım "N" harfi ile başlayanların rapora gelmemesi

filtrelerde NotStartsWith var ama formüle yazınca hata alıyorum

İyiçalışmalar
Bilal AFŞAR 21.06.2018 17:49
Merhaba Nuri Bey,

NotStartsWith methodunu nereden çağırıyorsunuz? Verilen hataya bakılırsa böyle bir method yok gibi görünüyor.
Nuri Çelik 21.06.2018 17:43
Bilal Bey Merhaba

Aşağıdaki filtreyi uyguladığımda bir sorun olmuyor

[Erp_WorkOrder.Order No].StartsWith ("N")

ama filtreyi aşağıdaki şekilde değiştirdiğimde hata alıyorum problem sizce nerede acaba

[Erp_WorkOrder.Order No].NotStartsWith ("N")

hata iletisi=string notstartswith için bir tanım içermiyor
Bilal AFŞAR 28.05.2018 19:11
Merhaba Ahmet Bey,

Bunları eklemek için Toolbox üzerinde boş bir yere sağ tıklayıp Choose Items demelisiniz. Sonrasında da .NET Components sekmesi içinde Browse düğmesine tıklayıp FastReport.dll dosyasını bulmanız gerekiyor. Seçtiğiniz bu dll dosyası ihtiyacınız olan item'ları barındırıyor. .NET Components sekmesinde, FastReport'a ait namespace'e göre sıralama yaparak, bu dll içinden gelen item'lara ulaşabilirsiniz. Toolbox içine eklemek istediklerinizi işaretleyip OK diyerek pencereyi kapatmanız yeterli olacaktır.

Ayrıca, aradığınız item'a daha sonra rahat ulaşabilmek için, üstte yazdığım işlemi yapmadan evvel, toolbox'a Add Tab düğmesi ile yeni bir sekme ekleyebilir ve sonra bu sekme içinde sağ tıklayarak Choose Items diyebilirsiniz.
Ahmet Yılmaz 28.05.2018 13:52
Merhabalar ben fastreportu kurdum fakat tools bölümüne itemları gelmedi dll mi eklemem gerekiyor nasıl ekleyebilirim
Bilal AFŞAR 15.10.2017 14:36
Merhaba Nuri Bey,

Bu kadar çok sayfa yazdırmayı denemediğim için böyle bir hata ile hiç karşılaşmadım ancak bunun muhtemel sebebini tahmin ediyorum.

Büyük ihtimalle, FastReport'u geliştiren ekip, böyle bir ihtimali değerlendirip thread mantığı kullanmayı düşünmemiştir. Aynı thread üzerinde çalışan işlemlerden arka planda devam eden işlemler bitmeden öndekinin fonksiyonu devreye girmeyecektir. Bu sebeple bu probleme dair bir çözüm bulabileceğinizi sanmıyorum. Ayrıca ön plandaki bu işlemi yapmayı bir kaç defa denerseniz programın kilitlenme ihtimali ortaya çıkabilir. Buna da dikkat etmeniz gerekiyor.
nuri 15.10.2017 14:13
mrb bilal bey, fast reportta örneğin 500 adet sayfalama yaparken cancel tıklıyorum ama işlemi iptal etmiyor neden olabilir veya başka bir yolu varmı ? saygılar.
Bilal AFŞAR 25.12.2016 14:36
Merhaba Ömer Faruk Bey,

Raporu, kod kısmında istediğiniz bir event ile design moda alıp, üzerinde değişiklik yapabilirsiniz.
Bunun için yazmanız gereken kod şöyle olmalıdır:

report1.Design();
Ömer Faruk 25.12.2016 13:44
FasteReport.dll ile gelen designercontrol componenti ni nasıl kullanabiliriz. Yada kullanılabiliniyor mu? :)
Bilal AFŞAR 28.11.2016 13:48
Merhaba Hayri Bey,

Daha evvel, istediğiniz türde bir rapor oluşturmadığım -ya da en azından yaptığımı hatırlamadığım- için net bir cevap veremiyorum. Hazırlamaya çalıştığınız bir rapor varsa, takıldığınız yeri de göstererek gönderirseniz, net şekilde cevap vermeye çalışayım.
hayri 28.11.2016 13:21
merhabalar bilal bey fastreportta cari ekstre tutar+bakiye-alacak raporunu nasıl oluşturmalıyız
Bilal AFŞAR 11.09.2016 15:15
Merhaba Rana Hanım,

İstediğiniz işi nasıl yapacağınızı izah etmeye çalışayım.

İstediğiniz mantıkta, sıra numarasının veritabanından gelmek yerine, tarafınızdan sunulması gerekiyor. Bunun için subreport içinde, veriyi ihtiva eden her bir satırda, bir sıra numarası göstermeniz gerek.

(Alttaki kodlar içinde RN (RowNumber) ismiyle göreceğiniz nesnenin, bu işi yapmak üzere subreport üzerine yerleştirdiğiniz TextObject olduğunu farzediyorum.)

Yapmanız gereken, subreport'a ait DataBand'in AfterData event'ini aşağıdaki methoda bağlamaktır.

(Bir karışıklık olmaması için Code sekmesi içindeki class'ın tamamını buraya ekliyorum)



public class ReportScript
{
private int standardLimit = 25;
private int limit = 7;
private int startNumber = 1;
private int counter = 1;

private void SubReport1_DataBand_AfterData(object sender, EventArgs e)
{

if (SubReport1_DataBand.StartNewPage)
{
SubReport1_DataBand.StartNewPage = false;
counter = startNumber;
limit = standardLimit;
}

if (counter == limit)
SubReport1_DataBand.StartNewPage = true;

RN.Text = (counter++).ToString();
}
}



Şimdi de, kodun nasıl çalıştığını anlatayım.

Temel mantık, subreport içindeki her RN nesnesine, birbirini takip eden yeni bir sayı eklemek üzerine kurulu.
Bununla beraber, istenilen sayıya ulaştığı zaman, DataBand'i, (StartNewPage = true ifadesi ile) yeni bir sayfada başlatıp, sayaç (counter) nesnemizi de sıfırlıyoruz. Bu sayede her yeni sayfa başlangıcında, bu sayı 1 oluyor.

Ancak, StartNewPage değeri true olduğu zaman, her yeni gelen satır, yeni bir sayfada çalışacak şekilde ayarlandığı için, bunu bir kez çalıştırdıktan sonra tekrar false olarak ayarlamamız gerek.

İlk if bloğunun yaptığı iş budur. İlaveten bu blok, ilk sayfa haricinde olması gereken kayıt sınırını da ayarlıyor. Böylece ilk sayfada sizin istediğiniz gibi 7 satır gelirken, diğer sayfalarda bu sayı 25 oluyor.

İkinci if bloğunun yaptığı da, istediğiniz sınıra geldiğinde yeni bir sayfa oluşturmaktır.

Son satır da, net olarak anlaşılacağı üzere, her bir satıra ait sıra numarasını yazdırıyor.

Buradaki SubReport1_DataBand'in, isminden de anlaşılacağı gibi, subreport'a ait DataBand olduğunu da hatırlatmak isterim.

Tek satırlık bir subreport içinde yapmanız gereken bundan ibaret. Eğer daha karmaşık birşeyler varsa, işlemlerin de karmaşık hâle gelme riski var.

Gerisi size kalmış. Ancak, yine de takıldığınız bir nokta olursa, tekrar yardımcı olmaya çalışırım.
rana 8.09.2016 16:02
Merhaba Bilal bey,
subreport'ta verileri sıralarken 1.sayfada ilk 7 kaydın,ikinci sayfada ise tekrar numaralandırmanın 1'den başlayarak 25 kayıt getirmesini istiyorum bunu nasıl yapabilirim yardımcı olabilirseniz sevinirim
Bilal AFŞAR 17.02.2016 21:18
Tekrar merhaba Kürşat Bey,

FastReport'un .NET sürümü ile VLC sürümü arasında farklar olmasına rağmen, temel yapının aynı olmasını beklediğim için önceki cevabın işinize yarayacağını ümid ediyordum. StackOverFlow üzerinde kayıtlı mezkûr cevabın ise sizin bulduğunuza yakın bir çözüm tavsiyesi ortaya koyması sebebiyle, işinize yarayacağına neredeyse kesin gözüyle bakıyordum :)

Benim için işin şaşırtıcı yanı ise çok fazla sayıda sayfaya tek RichText nesnesi ile bilgiyi yüklemiş olmanız. RichText nesnesi kullanan başka bir programda daha tecrûbe ettiğimde, onda da, evvelki mesajımda bahsettiğim kısıtlama ile karşılaşmıştım. Bu sebeple buna, Windows'un RichText nesnesi üzerine yerleştirdiği bir kısıtlama olarak bakmıştım. Ancak belli ki burada farklı bir vaziyet mevcut.

Netice olarak sıkıntınızı çözmüş olmanıza memnun oldum. Nasıl çözdüğünüzü yazdığınız için ayrıca teşekkür ederim. Sitemde, her ne kadar .NET versiyonu üzerine makaleler ve yorumlar olsa da bir ihtimal ki birilerinin işine yarayabilir.
Kürşad TIRAŞ 17.02.2016 17:36
Hocam yardımların için teşekkür ederim. Ben durumu çözdüm.

çözüm şöyle; TfrxRichView alanı eklediğimden ben hep bu alanı yönetme üzerine yoğunlaşmıştım fakat buradan çözüm alamadım. Daha sonra alanı yönetemiyorsam bu alanı içerisinde kullandığım MasterData'yı yönetebilirim fikri ile hareket ettim. Burada RowCount değerine 50 verip Stretched değerini 'True' yapınca istediğim sonucu elde ettim. Veri değeri ne kadar uzun olursa olsun veri kesintiye uğramadan bir sonraki sayfaya ilerliyor ve sayfa başlığı ile sayfa sonunu koruyarak 46 sayfa bir denemede başarı elde ettim.
Bilal AFŞAR 17.02.2016 14:17
Merhaba Kürşad Bey,

Siz sorana kadar bu mevzû hususunda maalesef bilgim yoktu. Ancak kısa bir araştırmadan sonra çözüme ulaştım.

Fakat yine de kullandığınız versiyona göre bir farklılık olur mu bilemiyorum. Bunu sizin tecrûbe etmeniz gerek.

Cevaba gelirsek, yapmanız gereken iki şey var. Evvela eklediğiniz RichObject'in CanGrow property'sinin değerini true olarak ayarlamanız gerek. Bu sayede eklediğiniz nesne içindeki bilgi büyüdüğü zaman, otomatik olarak nesnenin kendisi de büyüyecektir. Ancak burada da bir sıkıntı mevcut. Nesne çok büyüyüp, sayfa dışına taştığında, yeni sayfa oluşturulup taşan kısım gösterilmiyor. Bunun için de Databand nesnesinin (Türkçe FastReport Designer arayüzünde ilk açılışta üzerinde veri yazan kısım) CanGrow property'sine ait değerin de true olarak ayarlanması gerek. Bunu yaptığınız zaman istediğiniz şekilde çalışacaktır.

Yine de bir ekleme daha yapmam gerek.

Yaptığım tecrûbelerde WordPad üzerinde yazdığım bir yazının tamamını alıp RichObject nesnesinin Text property'sine yapıştırdığım zaman ilk paragraftan sonraki kısmın gösterilmediğini, paragrafsız halde ise azamî 35486 karakter gösterilebildiğini müşâhede ettim. Bu da düz yazı olarak yaklaşık 3.25 sayfaya denk geliyor. Muhtemelen bunun sebebi, bu nesneye konan sınırlamadır. Bu yüzden bir kaç sayfa sürecek olan nesnelerde yine sıkıntı yaşamanız muhtemeldir.

Düzeltme:

Üstteki cevabı ekledikten sonra farkettim ki kullandığınız versiyon Delphi için geliştirilen VCL sürümüne ait. Muhtemelen yukarıdaki açıklama işinize yarayacak olsa da, doğrudan Delphi tarafına hitab eden, StackOverFlow üzerinde kayıtlı bir cevap mevcut. Dilerseniz aşağıdaki linkten ona da göz atabilirsiniz:

http://stackoverflow.com/questions/19765020/how-to-make-a-richedits-text-continue-on-the-next-page-with-fast-report-in-delp
Kürşad TIRAŞ 17.02.2016 12:38
FastReport Version 5.2.8 kullanıyorum Zengin metin nesnesi ekliyorum DataField olarak databaseden gelmesini istediğim alanı seçiyorum. Veriyi çağırmada bir sorunum yok fakat bir sayfadan uzun bir veri gelebiliyor bu alana, bu durumda sayfaya sığdığı kada yazıyor bir yerde kesiliyor. Benim sorum gelen veri uzun ise ikinci sayfaya nasıl devam ettirebilirim. Şimdiden teşekkür ediyor ve yardımlarınızı bekliyorum.
Bilal AFŞAR 30.12.2015 20:53
Duygu Hanım merhaba,

Eklediğiniz adreste gösterilen hata form üzerine eklediğiniz bir kontrolün örneğinin oluşturulmamış olması sebebiyle formun designer üzerinde gösterilememesinden kaynaklanıyor. Verdiğiniz adreste, en alttaki mesajlardan birinde fastreport.dll dosyasını kendi key (.snk) dosyası ile derlemekten bahsetmiş ancak şahsen fastreport'a ait dll dosyasını kendim derlemeye çalışmadığım için böyle bir hata ile karşılaşmadım. Eğer sizde fastreport dosyasını doğrudan aldığınız kaynaktaki hali ile kullanıyorsanız, bu ihtimali gözardı edebilirsiniz.

Bunun haricinde, son mesajda GAC içindeki dll dosyalarının değiştirilmiş olmasından bahsediyor ki bu da kırılmış versiyonlarda karşınıza çıkması muhtemel bir hatadır. Eğer elinizdeki sürüm kırılmış sürüm ise - ki kimse kullanımını teşvik etmez :) - buna göre gerekli kontrolleri yapmanız gerektiğini söyleyebilirim.

Ancak yine de şahsi kanâatim başka bir nesnenin null olarak bırakılmış olmasından kaynaklanan bir hata olduğu yönündedir. Evvela formun InitializeComponent methodu içinde ve designer sayfasının en altında yer alan, eklediğiniz rapor kontrolüne ait nesneye işaret eden bütün satırları silip projeyi yeniden derleyin. Sonrasında formun designer arayüzüne bakın. Eğer yine aynı hatayı veriyorsa null olarak bıraktığınız nesneyi bulup düzeltmeniz gerekecektir. Eğer form designer arayüzü hata vermiyorsa, form üzerine PreviewControl nesnesini sürükleyip işinize devam edebilirsiniz. Ancak yine de hata ile karşılaşırsanız, hatayı gösteren ekran resmi ve 'Show Call Stack' linki içindeki bilgiyi gönderirseniz hatayı çözmek için daha doğru bir teşhiş koyma imkânımız olacaktır.

Son not: Verdiğiniz adresteki mesajda DesignerControl nesnesinin forma eklendiğini farkettim. Bu tavsiye edebileceğim bir yol olmayacaktır. Eğer kullanıcının form üzerinde değişiklik yapmasına müsaade etmek istiyorsanız bir button ekleyerek reportFile.Design() kodundaki gibi bir çağrıda bulunabilir ve form düzenleme penceresinin açılmasını sağlayabilirsiniz.
duygu 30.12.2015 14:29
Merhaba Hocam,
Visual Studioya Fastreport dll lerini eklediğimde forma report designer tool unu ekleyemiyorum,hata alıyorum.Bu konuda yardımcı olabilirseniz çok sevinirim.
https://www.fast-report.com/en/forum/index.php?showtopic=8443 bu linkteki aynı hatayı alıyorum
Bilal AFŞAR 19.12.2015 02:58
Merhaba Sevda Hanım,

Şu ana kadar kullandığım hiçbir VS sürümünde FastReport.NET'in önceden dahil edildiğini görmedim. Bu yüzden sizin eklemeniz gerekiyor.

FastReport.NET, kurulumu esnasında kendiliğinden toolbox'a entegre olma teklifi sunabilir. Eğer bu şekilde olursa kabul etmeniz yetecektir. Kurulumunu uzun zaman evvel yaptığım için maalesef bu teklifi sunup sunmadığını hatırlayamıyorum. Eğer bu şekilde olmazsa ikinci yol olarak dll dosyasını göstermeyi tercih edebilirsiniz. Bunun için yapmanız gereken VS içerisinde toolbox'a sağ tıklayıp 'Choose Items...' ı seçmek, sonrasında da '.NET Framework Components' sekmesinde browse düğmesine tıklamak ve bilâhire FastReport.NET'in kurulu olduğu dizinde FastReport.dll dosyasını yüklemek olacaktır. Bu dll içerisinde ihtiyacınız olan kontrolleri bulacaksınız. Bu işlemden sonra tek yapmanız gereken OK düğmesine basmaktır. Dll dosyasını seçtikten sonra içerisinde bulduğu bütün kontrolleri otomatik seçtiği için bu pencere kapandıktan sonra ihtiyacınız olan kontroller toolbox üzerine yüklenmiş olacaktır.

Bahsi geçen dll yüklemesiyle alâkalı ufak bir ipucu!

FastReport.dll dosyasının olduğu dizinde bazı başka dll dosyaları da göreceksiniz. Bunları da seçip yüklerseniz 1-2 tanesi hata verecek olmakla beraber; bu dosyalardan gelen DevComponents firmasına ait bazı kontrolleri kullanma imkânına sahip olabilirsiniz :)
sevda 17.12.2015 12:20
visual studio 2015 te FastReport yoknasıl eklemem lazım anlamdım yardımcı olurmusunuz ?
Bilal AFŞAR 14.12.2015 13:27
Merhaba Damla Hanım,

Bahsettiğiniz türde bir hata ile daha evvel karşılaşmadım. Makale içindeki örneği de böyle bir hata verecek mi diye denedim ancak yine de bir şey çıkmadı. Dilerseniz, örnek göndermeniz halinde inceleyip hatayı bulmaya çalışalım.
damla 14.12.2015 12:35
Merhabalar,
Sorunum şu ki C# ile hazırladığım Raporu excele aktardığımda satırları birleştiriyor.Örneğin 1.satırda gösterilmesi gereken veriyi hem 1 hem de 2.satırda ortak olarak gösteriyor.Bu konuda yardımcı olursanız çok sevinirim.
Bilal AFŞAR 30.05.2015 03:07
Merhaba Cesur Bey,


RTF dosyasını yazdırmak için rapor üzerine bir RichObject ekleyip dosyanızın içeriğini oraya bağlamanız gerekiyor. Eklediğiniz RichObject'e 'richTextObject' ismini vermiş olursanız aşağıdaki kodu Report nesnesinin StartReport event'i içerisine yazarak istediğiniz RTF dosyasını yükleyebilirsiniz.


      using(OpenFileDialog ofd = new OpenFileDialog())

      {

        ofd.Filter = "Zengin Metin Dosyası|*.rtf";

        DialogResult r = ofd.ShowDialog();

        

        if (r == DialogResult.OK)

        {

          richTextObj.Text = System.IO.File.ReadAllText(ofd.FileName);

        }

      }


Örnek dosyayı alttaki adresten indirebilirsiniz.




Eğer link silinmişse, haber verdiğiniz takdirde düzeltilecektir.


Ayrıca son bir hatırlatma yapmakta fayda var. Rapor içerisine eklediğiniz RichObject tipindeki nesneler, rapor; -misâlen- Word dosyası olarak kaydedilirken resim suretine çevriliyor. Sıkıntıya mahall vermemek için buna dikkat etmenizi tavsiye ederim.
Cesur Kaya 29.05.2015 15:27
Bilal Bey FastReporta rtf dosyasını nasıl yazdıra bilirim
Bilal AFŞAR 15.04.2015 14:41
Merhaba Furkan Bey,

Şu an için hazırladığım bir video yok. İmkân bulursam hazırlamak isterim ancak şu ara işlerimin kesîfliği sebebiyle buna vakit ayırmam mümkün görünmüyor. Ama youtube üzerinde az da olsa video mevcut. Dilerseniz onları da inceleyebilirsiniz.
FURKAN 15.04.2015 09:15
ben fastreport öğrenmeye çalışıyorum en basitten anlaşılır bir video var mı acaba yada bununla ilgili bana bir link gönderebilirmisiniz?
Bilal AFŞAR 27.10.2014 17:02
Merhaba Ali Bey,

Maalesef FastReport'un böyle bir desteği yok. Resim üzerinde yerleşim ile ilgili olarak yapabilecekleriniz SizeMode ile sınırlı. Bunun haricinde padding ile kenarlarındaki boşluğu ayarlayabilir ya da Style tanımlayarak resme style uygulayabilirsiniz. Ancak burda da yapabileceğiniz çok fazla birşey yok. Bu sebeple eğer resmi program aracılığıyla gönderiyorsanız program üzerinde istediğiniz işi yapmanızı önerebilirim.
ali 27.10.2014 13:27
iyi günler
Fastreport ile resmin belirli bir alanını nasıl gösterebilirim.(diyelim ki resmin sadece orta kısmında bir alanı gibi )
Bilal AFŞAR 19.06.2013 17:43
Merhaba Erdinç Bey,

Visual Studio üzerinde eklediğiniz PreviewControl nesnesinin düzenleme modunu aktif yapar ve rapor dosyalarını da doğrudan programa gömmek yerine bir dizinde tutarsanız bu problemi çözebilirsiniz. Böyle bir durumda yapmanız gereken PreviewControl içinde gösterilecek olan rapor dosyasının adresini vermek ve gösterilen rapor üzerinde düzenleme yaptıktan sonra orjinal dosya ile değiştirmek olacaktır.
erdinc 19.06.2013 16:41
Hocam merhaba kolay gelsin.
Fastreport ile form üzerinde rapor üzerinde değişiklik yaparak kaydedip sonraki raporlarında aynı düzenle gelmesini nasıl sağlayabiliriz.
Bilal AFŞAR 12.06.2013 19:35
Kod sayfasında -misalen- Page nesnesinin StartPage event'i içinde

Picture1.ImageLocation = @"C:\resim.jpg";
ya da
Picture1.ImageLocation = System.IO.Directory.GetCurrentDirectory() + "\\resim.jpg";

şeklinde kod yazarak belli bir resmi belli bir picturebox nesnesinde gösterebilirsiniz.

Eğer maksadınız veritabanından ekleme yapmak ise byte[] olarak saklanan veriyi eklemek için, ilgili tabloyu rapora bağladıktan sonra PictureBox nesnesinin DataColumn özelliğine tablodaki ilgili sütunu bağlayabilirsiniz.
Mehmet Ali YILMAZ 12.06.2013 17:59
Fast report da kullanılan image nesnesinin resmini nasıl ekliyorsunuz ..
Bilal AFŞAR 9.05.2013 14:41
Merhaba Ferhat Bey,

Dinamikten kastınız eğer belli sütunları olan ve kullanılan DataTable'a bağlı olarak bazı sütunların gösterilip gösterilmemesi ise DataTable'ı program üzerinden bağladıktan sonra; rapor yüklenirken kendisine değer bağlanmamış olan label'ı gizleyerek bu problemi çözebilirsiniz.

Ancak daha önce böylesi bir durum ile karşılaşmadığım için bunun işe yarayıp yaramayacağından emin değilim. Eğer mevzû bu ise evvelki mesajlarda bu usûlle ilgili bir açıklama görebilirsiniz. Değilse ve daha net olarak probleminizi anlatabilirseniz bir neticeye varmaya çalışırız.
Ferhat Kabaoğlu 9.05.2013 14:15
Merhaba,
Yeni tanımlanacak rapor dosyasında dinamik olarak oluşturulacak datatable kullanacaksanız, veri kaynağını nasıl tanımlıyorsunuz?
Hoşçakalın.
Bilal AFŞAR 1.04.2013 19:19
Merhaba,

Yaptığınız işlemlerde hata görünmüyor, yalnızca eksikler mevcut.

Datayı Data1 isimli DataBand üzerine bağlamışsınız ancak datanın görünmesini sağlayacak olan nesnelere bağlamamışsınız. FastReport Documentation içerisinde de, eğer DB i doğrudan rapor içerisine bağladıysanız tabloya ait sütunu DataBand üzerine sürükleyip bırakmanın bunun en basit yolu olduğu belirtiliyor. Aynı mantığı sizin projeniz üzerine uyarlamak için yapmanız gereken DataBand üzerine gerekli nesneleri ekleyip datayı oraya bağlamak olacaktır.

Kısaca örnek vermek gerekirse; DataBand üzerine Text1 isminde bir Text nesnesi ekledikten sonra FastReport.NET içindeki koda aşağıdaki kırmızı satırı eklemeniz yetecektir.

private void Page1_StartPage(object sender, EventArgs e)
{
   TableDataSource table = Report.GetDataSource("d") as TableDataSource;
   table.SelectCommand = "select distinct(d.rayon) from d";
   Data1.DataSource = table;
   Text1.Text= "[d.rayon]";
}
Natiq 1.04.2013 10:11
Selam. Fastreport.net-de bir problemi çözemedim, yardımçı olsanız sevinirim. TableDataSource SelectCommand fastreporta visual bağlandıkda çalışıyor, ama C#-dan datatable göndersem çalışmıyor.

C#

DataTable dt = null;
private void Form1_Load(object sender, EventArgs e)
{
string conn = "provider=microsoft.jet.oledb.4.0;data source=c:\\mybase.mdb";
OleDbDataAdapter da = new OleDbDataAdapter("select rayon from mytable", conn);
dt = new DataTable();
da.Fill(dt);
dataGridView1.DataSource = dt;
}

private void button1_Click(object sender, EventArgs e)
{
FastReport.Report r = new FastReport.Report();
r.RegisterData(dt, "d");
r.GetDataSource("d").Enabled = true;
r.Load(@"c:\test.frx");
r.Show();
}


Fast Report.NET

private void Page1_StartPage(object sender, EventArgs e)
{
TableDataSource table = Report.GetDataSource("d") as TableDataSource;
table.SelectCommand = "select distinct(d.rayon) from d";
Data1.DataSource = table;
}

nevin 14.08.2012 15:00
Yardımlarınız için teşekkürler küçük bir detayı görmemi sagladınız...
Bilal AFŞAR 14.08.2012 00:56
Nevin Hanım merhaba,

İstediğiniz işlemi yapabilmeniz için gerekli işlemleri sırasıyla yazıyorun.

Öncelikle her sayfada o ana kadar olan toplamın gösterilebilmesi için Rapor menüsünden Kolon Toplamını rapora eklemelisiniz.

Sonrasında Sözlük alanı içerisinde Toplamlar başlığına yeni bir toplam eklemeli ve bu toplama sağ tıklayarak düzenlemelisiniz. Burada yapmanız gereken ayarlar için yazının sonundaki adresten resmi görüntüleyebilirsiniz.

Sonrasında oluşturduğunuz bu toplamı sayfa üzerinde Kolon Toplamı olarak belirtilen alana sürükleyerek kullanabilirsiniz.

Örnek resim http://www.bilalafsar.com/Upload/Images/KolonToplami.png
nevin 13.08.2012 10:29
Merhaba Bilal Bey,
FastReportta bir sıkıntım var. Üst toplam almaya calisiyorum.Yani her seferinde bir önceki sayfanın toplamıyla birlikte bir sonraki sayfaya genel toplamı yazdırmak istiyorum. Yardımcı olursanız sevinirim.Şimdiden Teşekkürler...
Bilal AFŞAR 19.01.2012 21:02
Tekrar Merhaba Fatih Bey,
İlk olarak belirttiğiniz gibi ilk mesajınızın gelmediğini söyleyeyim. Bu yüzden gelen mesajınıza göre cevap yazmıştım.
Sonrasında yazdığınız duruma göre cevap vermeye çalışayım.
Öncelikle VS üzerinde kodlama yaptığınızı farzederek cevap vermem gerektiğini belirteyim. Zira aksi durumda yazdığınız sorgu gibi dinamik içeriğe sahip bir sorguyu çalıştırabilmeniz için elinizde FastReport .NET 'e ait Designer programının olması gerekir.
Kod arayüzünde sorgu yazarken de
"SELECT mahalleadi, malikadi, yuzolcumu FROM tapu WHERE adano='" + AdaTextBox.Text + "' AND parsel = '" + parselTextbox.Text + '"
biçiminde bir sorgu yazmanız gerekir. Kod arayüzünde nasıl sorgu yazabileceğinizle ilgili olarak 'FastReport .NET Kullanımı - Visual Studio Integration' isimli yazıma bakabilirsiniz.
Diğer yandan yapmak istediğiniz Designer üzerinde dinamik içerikli bir sorgu oluşturmak ise parametre kullanmanız gerekir. Bunun için örnek olarak sorgu tasarım ekranında
SELECT mahalleadi, malikadi, yuzolcumu FROM tapu WHERE adano= @AdaTextBox and parsel = @parselTextbox
biçiminde bir sorgu yazar ve sonraki ekranda da @AdaTextBox ve @parselTextbox isimli parametreleri tanımlarsınız. Bu parametrelerin değerlerini de rapora ekleyeceğiniz bir dialog penceresi üzerindeki NumericUpDown kontrolü ya da TextBox kontrolünden alacaklarını belirtirseniz dialog penceresi açıldıktan sonra dinamik olarak istediğiniz değeri girip raporu oluşturabilirsiniz.
Yine eksik kalan birşey söz konusu olursa durumu ayrıntılı olarak anlatmanızı rica ediyorum. Bu şekilde probleminize daha kolay bir çözüm bulabiliriz.
Ayrıca fırsat bulduğum bir zamanda bu konuyla ilgili olarak yeni bir yazı da eklemeye çalışırım.
Fatih Demir 19.01.2012 12:56
Sanırım ilk yazım size ulaşmamış. Benim yapmak istediğim şu kurum olarak kullandığımız programın içinde rapor tasarlayıcısı olarak fastreport kullanılmış, her pc de bu program zaten kurulu olduğu için fastreportu hepsine oto olarak kurmuş oluyorum zaten; amacım bir tablodan " select mahalleadi,malikadi,yuzolcumu from tapu where adano='+AdaTextBox.Text+' and parsel = '+parselTextbox.Text+' " sorgusunda olduğu gibi şartlı olarak dialog penceresinde girdirdiğim ada ve parsel nolarına göre rapor oluşturmak.
Bilal AFŞAR 19.01.2012 12:15
Merhabalar Fatih Bey,
Bildiğim kadarıyla fr3 formatı FastReport Studio tarafından kullanılan bir dosya biçimi ve .NET tarafında desteklenmiyor. Bu format için Delphi tarafında kodlama yapılması gerekiyor. Ayrıca rapor dosyasının doğrudan çalışması için kullanıcı bilgisayarında FastReport Studio'nun kurulu olması gerekir ki bu da programcılar için genelde gereksiz bir durumdur. Ancak bunu yapmak istemenizdeki amaç rapor dosyası üzerinde değişiklik yapabilmek ise bunu .NET ortamında kullanılan PreviewControl nesnesinin ilgili özelliğini aktifleştirerek program kullanılırken de yapabilirsiniz. Muhtemelen Delphi tarafında FastReport Studio kullanırken de benzeri bir özellikle karşılaşacaksınız.
Fatih Demir 19.01.2012 10:49
Bu arada visual studio veya herhangi bir programla değil direkt olarak fr3 formatında fastreportun kendi exesinde bunu yapmak istiyorum..
Bilal AFŞAR 17.01.2012 14:08
Merhaba Birgül Hanım,
Öncelikle yazdığınız sorguda bir hata olduğunu belirteyim ve onu düzeltelim. Join ifadesi kullanmak istediğiniz sorgu içerisinde ikinci tablo adını, sonrasında ON kelimesini ve sonrasında da şartı ekleyerek tabloları birleştirmeniz gerek. Bu durumda olması muhtemel sorgunuz şu şekilde oluşacaktır.
SELECT * FROM Urunler INNER JOIN Cins ON uruncins = cinsadi
Bu işlem SQL üzerinde iki tabloyu eşleşen satırlar bazında birleştirir. Diğer bir deyişle bir tabloda bulunan kaydın diğer tablo üzerinde karşılığı yoksa bu satır gösterilmez. Eğer ne olursa olsun tablolardan birindeki tüm verileri görmek isterseniz LEFT JOIN ya da RIGHT JOIN kullanabilirsiniz.
Sorunuzun diğer kısmına gelirsek orada yapmanız gerekeni de şu şekilde ifade edebiliriz.
C# kullandığınızı ve sorguyu da doğrudan kod içerisine gömdüğünüzü farzedersek
string _sorgu = "SELECT * FROM Urunler INNER JOIN Cins ON uruncins = cinsadi WHERE urunId ='%" + textbox1.text + "%'";
ya da
string _sorgu = string.Format("SELECT * FROM Urunler INNER JOIN Cins ON uruncins = cinsadi WHERE urunId ='%{0}%', textbox1.text);
şeklinde yazabiliriz.
Burada şunu hatırlatmayı faydalı buluyorum. İlk yazdığım _sorgu stringi ile ikincisi arasında herhangi bir fark yok. İkisi de aynı şekilde çalışıyor. Tek fark kodlama biçimidir.
Sorgu içerisindeki ifadelere gelecek olursak, sizin aradığınız cevabın % işaretinde gizli olduğunu belirtmem gerek. Karşılaştırma ifadeleri içerisinde bu ifade kullanıldığında 'yerinde ne olursa olsun' anlamı ortaya çıkar. Bu duruma göre WHERE urunAdi = '%a%' gibi bir ifadeye karşılık olarak içerisinde a harfi geçen tüm kayıtlar döndürülür. İfade WHERE urunAdi = 'a%' şeklinde olsaydı a harfi ile başlayan tüm kayıtlar döndürülecekti.
Son olarak bunu sorgu içerisinde nasıl kullanmanız gerektiği konusunu da 'FastReport .NET Kullanımı - Visual Studio Integration' isimli yazımda anlattığımı belirteyim. Bu yazı içerisinde aradığınız bilgilere ulaşabilirsiniz. Takıldığınız ya da eksik belirttiğimi düşündüğünüz bir kısım olursa tekrar yardımcı olmaya çalışırım.
Kolay gelsin.
Birgul 17.01.2012 02:17
merhaba acaba formda bir textboxta girilen değeri veritabanından arayarak sonucu nasıl raporda gösteririz.
Basit bi sorgu örnek gösterirsek;
select * from Urunler inner join uruncins=cinsadi where urunId=textbox1.text;

Yardımlarınızı bekliyorum;
Bilal AFŞAR 4.10.2011 14:08
Merhabalar Meltem Hanım;
Bu konuyla ilgili olarak yaptığım iki örnek daha mevcut. Ancak yine de sonuca ulaşamıyorsanız probleminizi belirtmenizi rica ediyorum. Bir çözüm bulmaya çalışalım.
meltem 3.10.2011 15:53
merhabalar öncelikle,
ya bu fastreport benım basıma bela oldu cıddı anlamda bir örnek uzerınde bastan sona kısa bır sekılde ustunden gecer mısınız?
tesekkurler,
Bilal AFŞAR 18.09.2011 00:31
Merhaba Hakan Bey;
Şu ana kadar bu şekilde bir kullanımı hiç denemedim ancak bahsettiğiniz örnek ile ilgili adresi verirseniz inceleyip en kısa süre içerisinde bir örnek sunmaya çalışırım. Bu arada stream olarak kaydetmek istediğiniz veri sanırım oluşturduğunuz FastReport.Net dosyası. Bir yanlış anlama söz konusu ise düzeltmenizi rica ediyorum ki sonuca net olarak ulaşabilelim.
hakan özak 17.09.2011 23:47
Merhaba;
FastReport.Net de tasarımı Stream olarak database kaydetme ve database den geri yükeleyen bir örnek yazabilirmisiniz. Çok uğraşmama ragmen beceremedim.
Heryerde gösterdikleri örnek var ama o işime yaramadı.
İyi çalışmalar.
Bilal AFŞAR 27.06.2011 11:24
@anıl
Visual Studio ortamında kullanımıyla ilgili bir yazı da koyacaktım ama bir süredir pek ilgilenemiyordum. Madem ilginiz var, en kısa zamanda eklemeye çalışırım :)
Ancak maalesef ekleyeceğim yazı içerisindeki kodlar C#.NET taraflı olacak. Uygun bir dönüştürücü bulursam VB.NET olarak da eklerim.
anıl 9.06.2011 15:13
Oncelikle tesekkurler cok iyi anlatmışsınız peki bu olusturdugumuz raporu vb.net içinde formla nasıl ilişkilendiricez?

Yorum Yaz

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