FastReport 2x ten FastReport 4 E Geçiş

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
erkankurtaga
Üye
Mesajlar: 62
Kayıt: 04 Oca 2009 06:36

FastReport 2x ten FastReport 4 E Geçiş

Mesaj gönderen erkankurtaga »

Raporları Fastreportun söylediği gibi dönüştürmesini tamamladık. Yani Rapor Olan Unite frx2xto30 ı uses a ekledik ve frxreporta eski raporu yükletip fr3 olara kaydettik ve düzenlemeleri tasarımda yaptıktan sonra rapor fr3 e geçmiş oldu. Şimdi asıl mesele kullanıcının bu eski raporları kendine göre tasarlaması sonucu oluşan problem. Kullanıcının kendi raporlarını nasıl fr3 e dönüştürürüz. Herşey için teşekkürler.
Kullanıcı avatarı
csunguray
Üye
Mesajlar: 855
Kayıt: 09 Ara 2006 05:08
Konum: Adana
İletişim:

Re: FastReport 2x ten FastReport 4 E Geçiş

Mesaj gönderen csunguray »

Maalesef bunun kolay bir yolu yok. Müşteri tüm raporları yeniden tasarlamak zorunda.
C. Sunguray
csunguray at netbilisim.kom
Net Bilişim Hizmetleri

Sıradan her programcı bilgisayarın anlayabileceği kodlar yazabilir.
Sadece iyi programcılar insanların da anlayabileceği kodlar yazarlar.
Martin Fowler (http://martinfowler.com/)
ikutluay
Üye
Mesajlar: 2341
Kayıt: 03 Tem 2007 10:13

Re: FastReport 2x ten FastReport 4 E Geçiş

Mesaj gönderen ikutluay »

bir ara bir exe vardı. dosyları otomatikman üst sürüm formatına dönüştüren. o bir çözüm olabilir.
Kişi odur ki, koyar dünyada bir eser. Eseri olmayanın yerinde yeller eser./Muhammed Hadimi
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
erkankurtaga
Üye
Mesajlar: 62
Kayıt: 04 Oca 2009 06:36

Re: FastReport 2x ten FastReport 4 E Geçiş

Mesaj gönderen erkankurtaga »

Önceleikle ilginiz için teşekkürler.
ikutluay yazdı:bir ara bir exe vardı. dosyları otomatikman üst sürüm formatına dönüştüren. o bir çözüm olabilir.
İşte bende o işi yapan bi exe yazdım . Eski raporu ve yeni raporu açıp eski rapordan memo konum ve boyutlarını okuyup yeni raporda değiştiriyordum. Ama yeterli olmadı çünkü memoların konumunu ayarlayamadım. Ben de aslında bu konuda sizlere soru sormak istedim. Yalnız o an bu işten çok bunaldığım için öle bir konu açtım.
ikutluay
Üye
Mesajlar: 2341
Kayıt: 03 Tem 2007 10:13

Re: FastReport 2x ten FastReport 4 E Geçiş

Mesaj gönderen ikutluay »

isterseniz koda bakalım. ama farazi fikir yürütmeyle ancak bu kadar olur.
Kişi odur ki, koyar dünyada bir eser. Eseri olmayanın yerinde yeller eser./Muhammed Hadimi
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
erkankurtaga
Üye
Mesajlar: 62
Kayıt: 04 Oca 2009 06:36

Re: FastReport 2x ten FastReport 4 E Geçiş

Mesaj gönderen erkankurtaga »

Herkese teşekkürler.
ikutluay yazdı:isterseniz koda bakalım. ama farazi fikir yürütmeyle ancak bu kadar olur.
İsteğiniz üzere düzenleme işini yapması için yazdığım procedure .

Kod: Tümünü seç

procedure RaporTasarimDuzenle;
var
  i,j  : Integer;
  HTop : Extended;

  Kaynak : TfrMemoView;
  Hedef  : TfrxMemoView;
begin
  if CheckedCount = 0  then
  begin
    Ok := False;
    SetProgress('Listeden Seçim Yapılmamış. Devam Edilemez ...');
    IslemKaydet('Listeden Seçim Yapılmamış. Devam Edilemez ...','Hata',1);
    Exit;
  end;

  for i := 0 to CheckListBox1.Count - 1 do
  begin
    if CheckListBox1.Checked[i] = True then
    begin
      KlasorAc(StdRaporDir);

      if FileExists(EskiRaporDir+CheckListBox1.Items[i]+'.frf') then frReport1 .LoadFromFile(EskiRaporDir+CheckListBox1.Items[i]+'.frf')
                                                                else Continue;
      if FileExists(RaporDir+CheckListBox1.Items[i]+'.fr3')     then frxReport1.LoadFromFile(Rapordir+CheckListBox1.Items[i]+'.fr3')
                                                                else Continue;

      SetProgress(CheckListBox1.Items[i] + ' Raporu Düzenleniyor ...');

      for j := 0 to frxReport1.ComponentCount - 1 do
      begin
        if frxReport1.Components[j].ClassType = TfrxMemoView then
        begin
          Hedef  := TfrxMemoView(frxReport1.Components[j]);
          Kaynak := TfrMemoView(frReport1.FindObject(Hedef.Name));

          HTop     := Hedef.Parent.Top;

          if Kaynak <> nil then
          begin
            if Kaynak.Prop['Left']   <> Hedef.Left     then Hedef.Left   := Kaynak.Prop['Left'];
            if (Kaynak.Prop['Top'] - HTop) <> Hedef.Top  then Hedef.Top    := Kaynak.Prop['Top'] - HTop;
            if Kaynak.Prop['Width']  <> Hedef.Width  then Hedef.Width  := Kaynak.Prop['Width'];
            if Kaynak.Prop['Height'] <> Hedef.Height then Hedef.Height := Kaynak.Prop['Height'];
          end;
        end;
      end;
    end;

      frxReport1.SaveToFile(RaporDir+CheckListBox1.Items[i]+'.fr3');
   end;
end;
Cevapla