mehrsprachliches Formular mit dynamischen Feldnamen und Comboboxen

Alles was sich mit dem Thema dynamische XML Formulare auf Basis des LiveCycleDesigners beschäftigt
Antworten
Erasor
Beiträge: 10
Registriert: 30.03.2010, 14:38

mehrsprachliches Formular mit dynamischen Feldnamen und Comboboxen

Beitrag von Erasor » 31.03.2010, 14:11

Hallo zusammen!

Leider bin ich bisher nicht fündig geworden...

Ich möchte ein pdf-Formular erzeugen, das ich an unsere Vertreter (In- und Ausland) verteilen kann, damit sie uns vollstädig ausgefüllte Angebotsanfragen zurückschicken.
Da nicht alle Vertreter Deutsch sprechen, soll das Formular sowohl in Deutsch als auch in Englisch zur Verfügung stehen. Bis hierher habe ich schon diverse Anleitungen und Lösungsvorschläge gefunden...

Aber meine Idee geht ein wenig weiter. Da wir sehr viele Informationen sammeln müssen und diese sich hin und wieder ändern, würde ich sowohl die Beschriftung der Felder wie auch die Inhalte der Comboboxen gern über eine Datenbank befüllen. Leider stoße ich dabei an meine Grenzen - könnt ihr mir helfen?

Aufbau der Datenbank, so wie ich mir das vorstelle:[indent]Tabelle Feldnamen  <-- Quelle für alle Feldnamen
FeldID;Deutsch;Englisch
1;Vertreter;representative
2;Kunde;customer
3;Land;country
[/indent][indent]Tabelle Land <-- Eintragsquelle für die Combobox Land
LandID;Deutsch;Englisch
1;Deutschland;Germany
2;Italien;Italy
3;Frankreich;France
[/indent]
Vielen Dank und liebe Grüße

Alex

Benutzeravatar
FileAffairs
Beiträge: 372
Registriert: 15.09.2008, 20:14

mehrsprachliches Formular mit dynamischen Feldnamen und Comboboxen

Beitrag von FileAffairs » 01.04.2010, 19:16

Hallo Erasor,

auch wenn das prinzipiell möglich ist (via dynamische properties) bedeutet eine Datenbankanbindung auch, dass Du eine lokale ODBC Konfiguration auf den Arbeitsplatzrechnern benötigst. Kannst Du das sicherstellen?

Lieben Gruß
Maruan Sahyoun | fileaffairs.de

Erasor
Beiträge: 10
Registriert: 30.03.2010, 14:38

mehrsprachliches Formular mit dynamischen Feldnamen und Comboboxen

Beitrag von Erasor » 01.04.2010, 19:55

Oh - nein, das kann ich natürlich nicht garantieren.

Weißt du denn eine elegante Lösung für so viele Felder und Feldinhalte?

Danke und liebe Grüße

Erasor

Benutzeravatar
FileAffairs
Beiträge: 372
Registriert: 15.09.2008, 20:14

mehrsprachliches Formular mit dynamischen Feldnamen und Comboboxen

Beitrag von FileAffairs » 01.04.2010, 20:10

Hallo Erasor,

eine Möglichkeit wäre einen XML Datensatz mit den Texten zu laden und dagegen zu scripten (entweder einen je Sprache oder auch einen mit allen Sprachen) oder per XLIF zu arbeiten http://blogs.adobe.com/formfeed/2010/02 ... xliff.html

Gruß
Maruan Sahyoun | fileaffairs.de

Erasor
Beiträge: 10
Registriert: 30.03.2010, 14:38

mehrsprachliches Formular mit dynamischen Feldnamen und Comboboxen

Beitrag von Erasor » 14.04.2010, 07:51

Hmmm - ich muss gestehen, dass ich duch das Beispiel nicht wirklich durchblicke. Ich habe aber auch noch eine andere Idee, die ich gern mal auf Herz und Nieren prüfen lassen würde...

Was wäre mit einer nur im Layoutmodus sichtbaren Tabelle, in der alle Informationen zu einem Feld in der Datei hinterlegt sind. Der Aufbau der Spalten wäre in der einfachsten Ausführung so etwas wie:
  • Feldname (hier steht der Name des Feldes)
  • Deutsch (hier steht die deutsche Beschreibung)
  • Englisch (hier steht die englische Beschreibung)
Als komplexe Version vielleicht so:
  • Feldname (hier steht der Name des Feldes)
  • Deutsch (hier steht die deutsche Beschreibung)
  • Englisch (hier steht die englische Beschreibung)
  • Quickinfo Deutsch
  • Quickinfo Englisch
  • Fehlermeldung Deutsch
  • Fehlermeldung Englisch
  • etc.
Leider bin ich in Java eine völlige Niete, habe aber eine ganze Zeit lang viel in Delphi programmiert. Vielleicht ist hier ja jemand, der folgenden pseudo-Code in funktionierendes Java umbauen kann:

Code: Alles auswählen

for i := 0 to AnzahlDerObjekteAufDemFormular -1 do begin
  vObjektname := Objekt[i].name;

  for j := 0 to AnzahlZeilenInDerTabelle -1 do begin
    if Tabelle.Zeile[i].Spalte1.value = vObjektname then begin
      if vSprache = "Deutsch" then begin
        Objekt[i].beschreibung := Tabelle.Zeile[i].Spalte2.value;
      end else begin
        Objekt[i].beschreibung := Tabelle.Zeile[i].Spalte3.value;
      end;
      break;
    end;
  end;
end;

Erasor
Beiträge: 10
Registriert: 30.03.2010, 14:38

mehrsprachliches Formular mit dynamischen Feldnamen und Comboboxen

Beitrag von Erasor » 21.04.2010, 08:18

Hallo zusammen,

hier noch eine Ergänzung. Ich habe ein Codefragment gefunden, mit dem ich durch die einzelnen Objekte auf dem Formular wandern kann:

Code: Alles auswählen

for (var i = 0; i < xfa.host.numPages; i++)
{
  var oFields = xfa.layout.pageContent(i; "field");
  var nodesLength = oFields.length;
  for (var j = 0; j < nodesLength; j++)
  {
    var oItem = oFields.item(j);
    oItem.caption = "neue Caption";
  }
}
Ich habe den Code noch nicht probiert, aber wenn man nun noch an der Stelle >>oItem.caption = "neue Caption";<< eine Schleife mit Zugriff auf oben genannte Tabelle einbaut, denke ich, wäre mein Problem gelöst. Könnt ihr mir helfen?


Erasor
Beiträge: 10
Registriert: 30.03.2010, 14:38

mehrsprachliches Formular mit dynamischen Feldnamen und Comboboxen

Beitrag von Erasor » 23.04.2010, 06:06

Hallo zusammen!

Walde, danke für die Beispiele! Aber ich hab mich nun so in diese Idee vertieft, dass sie mir leider nicht mehr weiter helfen.
DENN *trommelwirbel* ICH HABS HINBEKOMMEN! :)

Ich habe mein Formular mal etwas verkleinert und hier angehangen. Vielleicht hilfts ja jemandem...

Eine Frage habe ich jedoch noch:

Code: Alles auswählen

function ChangeFormLanguage(iLanguageID)
{
//    xfa.form.Anfrageformular.unsichtbar.presence = "visible";
    
    for (var i = 0; i < xfa.host.numPages; i++){
        var oFields = xfa.layout.pageContent(i);
        var nodesLength = oFields.length;
        for (var j = 0; j < nodesLength; j++){
            var oItem = oFields.item(j);
            if (oItem.parent.name == "Uebersetzungstabelle"){
                //Jetzt weiß ich, wie das Feld heißt, das ich suchen muss! Name muss wie oItem.name lauten
                for (var k = 0; k < xfa.host.numPages; k++){
                    var oFields2 = xfa.layout.pageContent(k);
                    var nodesLength2 = oFields2.length;
                    for (var l = 0; l < nodesLength2; l++){
                        var oItem2 = oFields2.item(l);
                        if (oItem2.name == oItem.name & oItem2.parent.name != "Uebersetzungstabelle"){
                            ChangeFieldCaption(oItem2, oItem2.name, iLanguageID);
                        }
                    }
                }
            }
        }
    }
    Dropdowns.Dropdownfuellen(iLanguageID);
    
//    xfa.form.Anfrageformular.unsichtbar.presence = "hidden";
}
Wenn ich in dieser Funktion die Kommentare bei den presence-Eigenschaften weg nehme, funktioniert mein Script nicht mehr... Habt ihr eine Idee, warum?

Grüße

Alex
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Erasor
Beiträge: 10
Registriert: 30.03.2010, 14:38

mehrsprachliches Formular mit dynamischen Feldnamen und Comboboxen

Beitrag von Erasor » 04.05.2010, 14:00

Ich habe inzwischen herausgefunden, dass ich über mein Script gar nicht auf ausgeblendete Objekt zugreifen kann. Ich tippe darauf, dass sie aus Performancegründen nur verfügbar sind, wenn sie auch auf dem Bildschirm zu sehen sind.
Einer meiner Lösungsversuche war, die Höhe jeder Zeile der Tabellen so niedrig zu machen, dass sie nicht mehr sichtbar ist - nur finde ich dafür keine passende Eigenschaft die auch etwas bewirkt...

Leider funktioniert das zeitweise Ein- und Ausblenden auch nicht...

Habt ihr vielleicht noch eine Idee?

Danke!

Erasor

Antworten