mehrsprachliches Formular mit dynamischen Feldnamen und Comboboxen
mehrsprachliches Formular mit dynamischen Feldnamen und Comboboxen
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
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
- FileAffairs
- Beiträge: 372
- Registriert: 15.09.2008, 20:14
mehrsprachliches Formular mit dynamischen Feldnamen und Comboboxen
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
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
mehrsprachliches Formular mit dynamischen Feldnamen und Comboboxen
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
Weißt du denn eine elegante Lösung für so viele Felder und Feldinhalte?
Danke und liebe Grüße
Erasor
- FileAffairs
- Beiträge: 372
- Registriert: 15.09.2008, 20:14
mehrsprachliches Formular mit dynamischen Feldnamen und Comboboxen
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
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
mehrsprachliches Formular mit dynamischen Feldnamen und Comboboxen
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:
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)
- 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.
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;
mehrsprachliches Formular mit dynamischen Feldnamen und Comboboxen
Hallo zusammen,
hier noch eine Ergänzung. Ich habe ein Codefragment gefunden, mit dem ich durch die einzelnen Objekte auf dem Formular wandern kann:
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?
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";
}
}
mehrsprachliches Formular mit dynamischen Feldnamen und Comboboxen
Hallo Erasor,
Im Forum gibt es bereits zahlreiche Beispiele für mehrsprachige Formulare. Siehe Links:
http://www.acronaut.de/view_topic.php?id=1565&forum_id=18&highlight=sprache
http://www.acronaut.de/view_topic.php?id=1204&forum_id=35&highlight=sprache
http://www.acronaut.de/view_topic.php?id=1707&forum_id=18&highlight=deutsch
http://www.acronaut.de/view_topic.php?id=1656&forum_id=18&highlight=deutsch
Gruß,
Walde
Im Forum gibt es bereits zahlreiche Beispiele für mehrsprachige Formulare. Siehe Links:
http://www.acronaut.de/view_topic.php?id=1565&forum_id=18&highlight=sprache
http://www.acronaut.de/view_topic.php?id=1204&forum_id=35&highlight=sprache
http://www.acronaut.de/view_topic.php?id=1707&forum_id=18&highlight=deutsch
http://www.acronaut.de/view_topic.php?id=1656&forum_id=18&highlight=deutsch
Gruß,
Walde
mehrsprachliches Formular mit dynamischen Feldnamen und Comboboxen
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:
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
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";
}
Grüße
Alex
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
mehrsprachliches Formular mit dynamischen Feldnamen und Comboboxen
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
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