zReport Delphi 2010 a nasıl kurulur?

Yapmak istediğiniz işle ilgili doğru bileşeni bulmak için burayı kullanabilirsiniz. Sadece bulmak için, diğer sorular Programlama forumuna lütfen.
Forum kuralları
Bu forum sadece yapacağınız işle alakalı doğru bileşeni bulmak içindir. Şöyle bir şey yapmam lazım, hangi bileşeni kullanıyım diyorsanız, doğru yerdesiniz.
Cevapla
asking
Üye
Mesajlar: 11
Kayıt: 07 Mar 2008 08:06

zReport Delphi 2010 a nasıl kurulur?

Mesaj gönderen asking »

Merhabalar,

Delphi 7 üzerinde zReport DotMatrix kullanıyorum. Şimdi Delphi.2010 a geçtik ancak zReport delphi 2010 sürümü yok.

Nasıl bir yol izlememi tavsiye edersiniz?

ActiveX Control yapayım dedim, olmuyor. Projelerde sıkıntı yaşıyoruz.

Teşekkür ederim.
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Re: zReport Delphi 2010 a nasıl kurulur?

Mesaj gönderen aslangeri »

s.a.
bildiğim kadarı ile zReport uzun süredir geliştirilmiyor.
onun yerine başka bir raporlama bileşeni kullanabilirsiniz.
FastReport un dotmatrix desteği var diye biliyorum.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Re: zReport Delphi 2010 a nasıl kurulur?

Mesaj gönderen sabanakman »

Delphi7 üzerinde .dll olarak rapor modülü oluşturulup kullanılabilir ama burada da rapor seçeneklerini de iletmek için bir ton parametre engeli karşınıza çıkacaktır. Zamanında bununla ilgili çalışmışlığım olmuştu. Bunun için Tek bir string parametre belirleyip TStrings tipinde çok satırlı bilgi gönderebilirsiniz. Diğer .dll tarafında da bu satırları yorumlayıp ona göre raporlar verebilirsiniz. Mesela .dll çağırmak için

Kod: Tümünü seç

function DlldekiRaporFonksiyonu(Bilgi:PChar):DWord;stdcall;external 'Rapor.dll' name 'DlldekiRaporFonksiyonu';
.
.
.
.

procedure TForm1.Button1Click(Sender:TObject);
var Parametre:TStringList;
begin
  try
    Parametre:=TStringList.Create;
    Parametre.Values['RaporTuru']:='GenelListe';
    Parametre.Values['Filtre']:=Edit1.Text;
    Paremetre.Values['Adet']:=IntToStr(SpinEdit1.Value);
    DlldekiRaporFonksiyonu(PChar(Parametre.Text));
  except
    on E:Exception do begin
      Parametre.Free;
      ShowMessage(E.Message);
    end;
  end;
end;
.exe tarafında böyle bir gönderim yapılabilir ve .dll tarafında ise FormAna isimli bir form eklenip buradaki forma GelenBilgiler isimli TListBox yerleştirilmeli.

Kod: Tümünü seç

library Rapor;

uses
  Windows,
  SysUtils,
  Forms,
  Classes,
  Activex,
  ana_form in 'ana_form.pas' {FormAna},
  genel_liste_formu in 'genel_liste_formu.pas' {FormGenelListe}';

function DlldekiRaporFonksiyonu(Bilgi:PChar):DWord;stdcall;
begin
  Sonuc:=0;
  try
    if not Assigned(FormAna) then FormAna:=TFormAna.Create(Application);
    FormAna.GelenBilgiler.Items.Text:=Bilgi; 
    Result:=FormAna.Calistir;
  except
    Result:=0;
  end;
  if Assigned(FormAna) then FreeAndNil(FormAna); 
end;
Tabi .dll tarafındaki FormAna da Calistir isimli fonksiyonu aşağıdaki gibi olmalı.

Kod: Tümünü seç

function TFormAna.Calistir: DWord;
var RaporTuru:String;
begin
   RaporTuru:=GelenBilgiler.Values['RaporTuru'];
  if SameText(RaporTuru,'GenelListe') then GenelListeRaporu //Genel liste prosedürü
  else if if SameText(RaporTuru,'..... //Diğer raporlar
  Result:=0; 
end;

procedure TFormAna.GenelListeRaporu;
begin
  with TFormGenelListe.Create(Application) do try //formda tanımlı değişkenlere gelen bilgiler parametre olarak aktarılır
    Filtre:=GelenBilgiler.Values['Filtre'];
    Adet:=StrToIntDef(GelenBilgiler.Values['Adet'],0);
    RaporAl;//parametreler ayarlandıktan sonra raporun hazırlandığı diğer formdaki raporlama çalıştırılır...
  finally
    Free;
  end;
end;

finalization
  if Assigned(FormAna) then FormAna.Free;
end.
Burada dikkat edilmesi gereken en önemli husus .dll tarafında oluşturulmuş nesnelerin işi bittiğinde mutlaka yok edilmelidirler. Yoksa proje kapandığı sırada çıkan Access Violation hataları nedeniyle çekilmez bir hal alabilir. Bileşenleri oluşturma ihtiyacı hissederseniz owner parametresine formu vermeni kafii, zira form yok edilirken üzerindeki bileşenleri tespit edip yok edebiliyor ama owner a özellikle nil verir veya bileşen olmayan nesneler oluşturursanız bunları mutlaka yok etmelisiniz. İyi çalışmalar.




Eğer çok sayıda raporunuz yoksa
aslangeri yazdı:...FastReport un dotmatrix desteği var ...
seçeneğine öncelik vermenizi öneririm.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Cevapla