Suche: Teile von Wörtern finden und dann Seiten einblenden

Guten Morgen Miteinander,

kurz zu mir:
Ich habe so gut wie keine Erfahrung mit Java Programmierung.:eek:

Soll aber etwas programmieren, und zwar:

Wir haben ein Dokument, dass, je nach vorheriger Auswahl, in ein bestimmtes Textfeld Werte schreibt.
Das Dokument ist eine xdp Datei, andere Formate kann ich nicht nutzen.

Derzeit ist es so eingetragen:

if (this.rawValue.substring(0,5) == "Eigen"){OSPDMS.Anlage_01.presence = "visible";}
if (this.rawValue.substring(0,5) == "Eigen"){OSPDMS.Anlage_02.presence = "visible";}
if (this.rawValue.substring(0,6) == "Selbst"){OSPDMS.Anlage_03.presence = "visible";}
if (this.rawValue.substring(0,6) == "Selbst"){OSPDMS.Anlage_04.presence = "visible";}
if (this.rawValue.substring(0,6) == "Selbst"){OSPDMS.Anlage_05.presence = "visible";}
if (this.rawValue.substring(0,6) == "Selbst"){OSPDMS.Anlage_06.presence = "visible";}

Wenn dann in dem Textfeld der automatische Eintrag mit "Eigen" beginnt, werden die Anlagen 1 und 2 eingeblendet.
Bei dem Wort "Selbst" dann die Anlagen 3 bis 6.

Das funktioniert allerdings nur, wenn der Eintrag in dem Textfeld mit genau einem dieser Wörter beginnt.
Wenn z.B. davor noch "Ort" steht und dann "Eigen", geht es nicht, da anscheinend von vorn die ersten Buchstaben verglichen werden.
Ist das so richtig?

Das Ziel wäre nun, dass das Wort, dass angegeben ist ("Eigen" oder "Selbst") nicht zwingend an erster Stelle stehen muss, sondern auch irgendwo im Text stehen kann, es trotzdem gefunden wird und die Seiten dann entsprechend eingeblendet werden.

Das "presence = "visible" ist dem geschuldet, da die Anlagen 1 bis 6 normalerweise in dem Dokument ausgeblendet sind, und nur bei Treffer eingeblendet werden sollen.

Versucht habe ich auch :

if (this.rawValue.includes("Eigen") == true){OSPDMS.Anlage_01.presence = "visible";}
if (this.rawValue.search("Eigen") != -1){OSPDMS.Anlage_01.presence = "visible";}

Vielen Dank schon mal im voraus für die Hilfe :)

Schöne Grüße

Michael
 
Also mir sagt das mit dem xdp erst mal recht wenig. Aber einfach mal davon ausgehend, dass Du da irgend eine Library hast, die dann in rawValue einen String hat mit irgend einem Text:

So dies eine Java Applikation ist und rawValue ein String, dann hast Du natürlich alle Methoden zur Verfügung, die String bietet:
https://docs.oracle.com/javase/7/docs/api/java/lang/String.html

Was da alles Sinn machen könnte:
a) String.matches - da prüfst Du den String gegen einen regulären Ausdruck. Siehe z.B. https://regex101.com/ zum testen / herum spielen mit regulären Ausdrücken.
b) String.contains - da wird geprüft, ob eine Zeichenkette in dem String vor kommt.
 
Ich habe so gut wie keine Erfahrung mit Java Programmierung.:eek:

Soll aber etwas programmieren, und zwar:
Also beste Voraussetzungen :)

Das Dokument ist eine xdp Datei, andere Formate kann ich nicht nutzen.
Meinst Du das Format von Adobe? Dann dürfte es sich um JavaScript handeln.

Ist das so richtig?
Ja

Das Ziel wäre nun, dass das Wort, dass angegeben ist ("Eigen" oder "Selbst") nicht zwingend an erster Stelle stehen muss, sondern auch irgendwo im Text stehen kann, es trotzdem gefunden wird und die Seiten dann entsprechend eingeblendet werden.
Sollte mit includes funktionieren (JavaScript). In Java wäre das contains. Wichtig: das Zeug berücksichtigt Groß- und Kleinschreibung.
 
Also wäre richtig:

str.includes(searchString[, position])

->
if (str.includes("Eigen") == "True"){OSPDMS.Anlage_01.presence = "visible";}

Passt das dann so?
 
Wobei Du Dir den Vergleich auf "True" sparen kannst:
Javascript:
if (str.includes("Eigen")) { ... }
Außerdem brauchst Du natürlich nicht für jedes presence eine eigene if-Abfrage. Mit dem ternären Operator kann man das auch schön zusammenfassen:
Javascript:
var anlagen1 = str.includes("Eigen") ? "visible" : "hidden";
OSPDMS.Anlage_01.presence = anlagen1;
OSPDMS.Anlage_02.presence = anlagen1;

var anlagen2 = str.includes("Selbst") ? "visible" : "hidden";
OSPDMS.Anlage_03.presence = anlagen2;
OSPDMS.Anlage_04.presence = anlagen2;
OSPDMS.Anlage_05.presence = anlagen2;
OSPDMS.Anlage_06.presence = anlagen2;
Hat dann den Vorteil, dass presence auch wieder auf "hidden" gestellt wird, wenn der betreffende Wert abgewählt wird.
 
Hi,

also, grundsätzlich funktioniert es anscheinend so wie gewünscht.

Aaaber:
Das Dokument wird erstellt (aus dem xdp wird ein pdf). Dieses wird im Explorer gespeichert.
In dem Textfeld ist das gesuchte Wort "mitten drin", nicht mehr am Anfang.
Allerdings werden die Anlagen erst eingeblendet, wenn man im pdf auf die Stelle klickt, wo beim Textfeld die Java Formel hinterlegt ist.
Kann das sein?
Kann man das irgendwie "automatisieren", also, dass die Prüfung bzw. die Java Formale beim Öffnen "automatisch ausgeführt" wird, und alles entsprechend eingeblendet wird?

Merci.

LG
 
Klar. Das wäre sogar relativ normal.

Kann man das irgendwie "automatisieren", also, dass die Prüfung bzw. die Java Formale beim Öffnen "automatisch ausgeführt" wird, und alles entsprechend eingeblendet wird?
Das weiß ich nicht genau. Allerdings: wenn man Acrobat JavaScript Scripting Guide auf S. 21 schaut, sieht es so aus, als könnte man Ereignisse beim Öffnen einer Seite hinterlegen.
 
Hi,

ich arbeite mit dem Adobe Experience Manager.
Hier finde ich zwar etwas zum Einstellen. allerdings funktioniert das leider nicht.
Kann man das irgendwie in den Quelltext eintragen, z.B. nach dem letzten "if..." ?
Dass im Prinzip diese Formel immer ausgeführt wird, sobald das Dokument geöffnet wird???

Dankeschön :)
 
Die Frage ist halt: in welchen Quelltext? :) Wie wird denn aktuell dafür gesorgt, dass die Funktion beim Kick auf den Button ausgeführt wird?
Indem man draufdrückt :)
Derzeit kein Automatismus.

Frage:
Bei der ursprünglichen Programmierung war es dann so, wenn der Wert in dem Feld war, sind die Anlagen automatisch eingeblendet worden.
Nun nicht.
Warum ? Kann man da eine Abfrage einfügen, so nach dem Motto "if Textfeld ist nicht leer dann starte Funktion".
 
Passende Stellenanzeigen aus deiner Region:

Neue Themen

Oben