AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Fastreport, mehrsprachige Reports
Thema durchsuchen
Ansicht
Themen-Optionen

Fastreport, mehrsprachige Reports

Ein Thema von EarlyBird · begonnen am 14. Feb 2013 · letzter Beitrag vom 16. Feb 2013
Antwort Antwort
Benutzerbild von ibp
ibp

Registriert seit: 31. Mär 2004
Ort: Frankfurt am Main
1.511 Beiträge
 
Delphi 7 Architect
 
#1

AW: Fastreport, mehrsprachige Reports

  Alt 14. Feb 2013, 10:49
was mir gerade einfällt du könntest mit der uses Klausel eine Sprachdatei einbinden in dem Textkonstanten vorhanden sind und diese dann verwenden.
  Mit Zitat antworten Zitat
Lemmy

Registriert seit: 8. Jun 2002
Ort: Berglen
2.395 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Fastreport, mehrsprachige Reports

  Alt 14. Feb 2013, 10:53
Hi,

ich habe die Reports versucht mit Übersetzungstools zu bearbeiten (Sizulizer) - hatte damit aber das Problem, dass jeder Report einzeln dem Projekt hinzugefügt werden muss. War jeden falls kompliziert und fehleranfällig. Dein Weg mit dem Mastertemplate gefällt mir dagegen schon recht gut

GRüße
  Mit Zitat antworten Zitat
EarlyBird

Registriert seit: 29. Mär 2007
235 Beiträge
 
#3

AW: Fastreport, mehrsprachige Reports

  Alt 14. Feb 2013, 11:47
Dein Weg mit dem Mastertemplate gefällt mir dagegen schon recht gut
Danke aber das ist mir zu umständlich, da ich bei Änderungen immer so viele Dateien änder muss.
Auch auf verschiedenen Servern.

was mir gerade einfällt du könntest mit der uses Klausel eine Sprachdatei einbinden in dem Textkonstanten vorhanden sind und diese dann verwenden.
Das muss ich mal zu ende Denken ob es mir wirklich weiterhilft.


je mehr ich darüber nachdenke scheint mir Lösung mit der Datenbank die die flexibelste zu sein.
Ich könnte die Objektnamen aus dem Report in einer Tabelle speichern und dann in "Sprachfeldern" die jeweilige Übersetzung
Nach dem Laden des Reports kann ich dann in einer Schleife alle Reportobjecte suchen und den Text anpassen.
Was meint Ihr dazu?

Weitere Anregungen und Meinungen sind herzlich Willkommen
  Mit Zitat antworten Zitat
DSCHUCH

Registriert seit: 6. Jun 2007
Ort: Dresden
187 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Fastreport, mehrsprachige Reports

  Alt 14. Feb 2013, 11:52
Wir machen das, indem die beschriftungsfelder eigene Funktionen erhalten, welche dann vom programm übersetzt werden.

Stichworte "AddFunction" bzw. "TfrxReport.OnUserFunction"

Die Variante mit Templates und Ableitungen ist gut, hat aber den Nachteil das man 2 Scripte hat, da nur das Layout und nicht das Script vererbt ist (das könnte man aber selbst implementieren).
  Mit Zitat antworten Zitat
EarlyBird

Registriert seit: 29. Mär 2007
235 Beiträge
 
#5

AW: Fastreport, mehrsprachige Reports

  Alt 14. Feb 2013, 12:15
Wir machen das, indem die beschriftungsfelder eigene Funktionen erhalten, welche dann vom programm übersetzt werden.

Stichworte "AddFunction" bzw. "TfrxReport.OnUserFunction"

Die Variante mit Templates und Ableitungen ist gut, hat aber den Nachteil das man 2 Scripte hat, da nur das Layout und nicht das Script vererbt ist (das könnte man aber selbst implementieren).
Das habe ich nicht ganz verstanden.
Kannst Du es mir bitte ein bisschen genauer erklären?
  Mit Zitat antworten Zitat
DSCHUCH

Registriert seit: 6. Jun 2007
Ort: Dresden
187 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Fastreport, mehrsprachige Reports

  Alt 14. Feb 2013, 12:37
du kannst in FR ja callbacks implementieren. Dann kannst Du aus dem Listengestalter heraus funktionen aufrufen, die Programmseitig abgearbeitet werden und dann ein ergebnis in den Listengestalter zurückgeben.

Du kannst zB im FR eine Funktion registrieren "translate(konstante: String) : string)"

In dein Memo schreibst Du dann den Funktionsaufruf "[translate('artikel')]"

FR ruft dann zum Zeitpunkt des Drucks Deine Delphi Funktion auf, darin kannst Du dann zB dinge machen wie
"If Kunde = EN then Result:='article no.'"
"If Kunde = D then Result:='Artikel'"

Dadurch hast du zur DesignTime der Liste überall konstanten, die dann von deiner Software in Abhängigkeit andere Werte zurückgeben. Wir haben zB immer ein Wörterbuch (Dictionary) aus der DB im Cache geladen, welches alle Konstanten hält.
  Mit Zitat antworten Zitat
Benutzerbild von user0815
user0815

Registriert seit: 5. Okt 2007
331 Beiträge
 
Delphi XE2 Professional
 
#7

AW: Fastreport, mehrsprachige Reports

  Alt 14. Feb 2013, 13:08
beim Erstellen des TfrxReport auf die Variablen zugreifen & die Texte entsprechend setzen:

Delphi-Quellcode:
var
  i : Integer;
  Variable : TfrxVariable;
  MemoFeld : TfrxMemoView;
begin
  i := Report.Variables.IndexOf('ReportVariable');
  if i <> -1 then
  begin
    Variable := Report.Variables.Items[i];
    Variable.Value := QuotedStr('Anzeigetext');
  end;

...

Report.ShowReport();
  Mit Zitat antworten Zitat
EarlyBird

Registriert seit: 29. Mär 2007
235 Beiträge
 
#8

AW: Fastreport, mehrsprachige Reports

  Alt 15. Feb 2013, 12:38
Du kannst zB im FR eine Funktion registrieren "translate(konstante: String) : string)"

In dein Memo schreibst Du dann den Funktionsaufruf "[translate('artikel')]"

Dadurch hast du zur DesignTime der Liste überall konstanten, die dann von deiner Software in Abhängigkeit andere Werte zurückgeben. Wir haben zB immer ein Wörterbuch (Dictionary) aus der DB im Cache geladen, welches alle Konstanten hält.
Vielen Dank für die Info.
Ich habe es gerade getestet und es funktioniert wie gewünscht.
Ich werde es nun mit der registrierten Funktion implementieren.
So kann ich die Übersetzungen gut in der Datenbank speichern und bei bedarf anpassen ohne den Report zu ändern.
Und ich brauche nur einen Report für viele Sprachen

Noch eine weitere Frage:
Übergebt Ihr alle möglichen Konstanten aus dem Wörterbuch an den Report damit sie als Auswahlliste im Designer zur Verfügung stehen?
Und Wenn ja wie?
  Mit Zitat antworten Zitat
Antwort Antwort

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:17 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz