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
 
K

kneitzel

Gast
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.
 

mihe7

Top Contributor
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?
 

mihe7

Top Contributor
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
 

mihe7

Top Contributor
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".
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
P ISBN suche via Java Angular, React, JQuery - Fragen zu JavaScript 1
L [JavaScript] Mehrere Variablen für Live-Suche in MySql-DB Angular, React, JQuery - Fragen zu JavaScript 0
L suche Hilfe bei Anpassung eines Scripts Angular, React, JQuery - Fragen zu JavaScript 5
S Suche Lösung für einen Slider mit Textverlinkung Angular, React, JQuery - Fragen zu JavaScript 2
L Suche D3 Tutorial (speziell für Sunburst-Darstellung...) Angular, React, JQuery - Fragen zu JavaScript 2
R Suche Möglichkeit eine ID durch Dateiendung zu ergänzen [location.href / getElementById ] Angular, React, JQuery - Fragen zu JavaScript 4
Fab1 [SUCHE] JavaScript Buch für Umsteiger Angular, React, JQuery - Fragen zu JavaScript 4
M Suche programmieren Angular, React, JQuery - Fragen zu JavaScript 4
K Suche Scrollscript für Objekte Angular, React, JQuery - Fragen zu JavaScript 3
T Suche folgendes Script Angular, React, JQuery - Fragen zu JavaScript 3
S Suche eine bestimmte Seite Angular, React, JQuery - Fragen zu JavaScript 3
R suche besonderes script Angular, React, JQuery - Fragen zu JavaScript 2
D belohnung - suche lösung Angular, React, JQuery - Fragen zu JavaScript 2
G suche script Angular, React, JQuery - Fragen zu JavaScript 3
P Highlight von Wörtern/Zahlen in einem Text Angular, React, JQuery - Fragen zu JavaScript 7

Ähnliche Java Themen

Neue Themen


Oben