Inaktiv Bedingung für "Anmerkung enthält"

Just1978

Sehr aktives Mitglied
1. November 2007
440
25
Bremen
Hallo,

ich möchte einen Text auf den Lieferschein ausgeben. Wenn Glaswaren in der Sendung sind, schreibt mein Workflow "Zerblich" in das Feld Anmerkung.

Nun möchte ich, dass auf dem Lieferschein "Zerbrechlich" ausgegeben wird wenn das Feld "Anmerkung" dieses Wort enthält.

Die Bedingungen für ist gleich = und ist ungleich != helfen mir hier nicht weiter weil noch weitere Text in der Anmerkung stehen können. Wie bekome ich "enthält" als Bedingung in das Formular?

Vielen Dank vorweg!
Just
 

gutberle

Sehr aktives Mitglied
29. März 2011
1.292
401
Der Befehl, den Du suchst, heißt StrPos(GesamtString,TeilString) und gibt die Position eines Teilstrings in einem Gesamtstring zurück.

Konkret benutzt Du hier...
Code:
Cond(StrPos(Upper$(Vorgang.Auftrag.Anmerkung,"ZERBRECHLICH")>-1,"Zerbrechlich","")

Achtung: Der Rückgabewert für die Position ist 0-basiert. Steht Dein "Zerbrechlich" also gleich am Angang des Gesamtstrings, dann wird nicht etwa 1 für "an erster Stelle", sondern 0 für "ich bin C-Programmierer, ihr könnt mich mal..." zurückgegeben. Ist der Teilstring gar nicht im Gesamtstring enthalten, wird -1 zurückgegeben.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Just1978

Just1978

Sehr aktives Mitglied
1. November 2007
440
25
Bremen
Ich habe den Code wie dargestellt als Darstellungsbedingung eingegeben. Leider erhalte ich die Warnung "Synthaxfehler: bei Funktion `Cond`, Ausdruck
`Cond(StrPos(Upper$(Vorgang.Auftrag.Anmerkung,"ZERBRECHLICH")>-1,"Zerbrechlich","")`

Muss ich noch etwas anderes einstellen oder wo kann mein Fehler liegen?

Danke Just
 

gutberle

Sehr aktives Mitglied
29. März 2011
1.292
401
Upps, das passiert mir eigentlich selten, denn normalerweise schreibe ich solche Terme für Forumsbeiträge direkt in List & Label, um sicherzugehen, dass die auch funktionieren und kopiere sie dann einfach rüber.

Da habe ich hier wohl eine "Abkürzung" genommen und gleich zwei Hauer reingebastelt, sorry ... :confused:
Code:
Cond(StrPos(Upper$(Vorgang.Auftrag.Anmerkung),"ZERBRECHLICH")>-1,"Zerbrechlich","")

Das Upper$() Konstrukt, das ich oben gar nicht beschrieben hatte sorgt übrigens dafür, dass Groß-/Kleinschreibung bei der Suche nach "zErBrEcHlIcH" keine Rolle spielt.
 

Just1978

Sehr aktives Mitglied
1. November 2007
440
25
Bremen
Es ist mir echt unanagenehm weil Du schon soviel geschrieben hast...
Aber ich habe nun das Problem, dass ich die folgende Fehlermeldung erhalte:

"Fehler im Typ des Rückgabewerts (erwartet: Boolean, ist Zeichenkette)"

Woran kann das wohl liegen?
 

gutberle

Sehr aktives Mitglied
29. März 2011
1.292
401
Offenbar versuchst Du diese Formel in einem Feld einzufügen, dass eine ja/nein Antwort, also ein "Boolean" (True/False) erwartet.

Was ist das denn für ein Feld, ist es eins in einer Tabellenzeile im Berichtscontainer (mit den Lieferscheinpositionen, etc.) oder hast Du zum Beispiel aus Versehen das Feld einer "Darstellungsbedingung" erwischt. Die würde nämlich zurückmelden, ob ein Element angezeigt werden soll (True) oder nicht (False).

Im Zweifel mach doch mal einen Screenshot, auf dem zu sehen ist, um welches Feld es sich handelt und wo es steht...
 
  • Gefällt mir
Reaktionen: Just1978

Just1978

Sehr aktives Mitglied
1. November 2007
440
25
Bremen
Jo alles klar - Jetzt funktioniert´s!

Ich habe tatsächlich versucht die Formel als Darstellungsbedingung zu verwenden. Dank Deinem letzten Post habe ich auch verstanden wo mein Fehler lag.

Die Ausgabe muss natürlich True oder False sein. Mit folgender Formel hat es funktioniert:

Cond(StrPos(Upper$(Vorgang.Auftrag.Anmerkung),"ZERBRECHLICH")>-1,True,False)

Dann kann jetzt nichts mehr kaputt gehen :)

Vielen Dank!
 

gutberle

Sehr aktives Mitglied
29. März 2011
1.292
401
Wir haben hier aber auch "gscheit" aneinander vorbeigeredet, denn ich bin davon ausgegangen, dass Du den Text "Zerbrechlich" zurückgeliefert bekommen wolltest und Du wolltest nur darauf prüfen. Scheint aber so, als ob Du was dabei gelernt hast und das ist viel mehr wert, als es gleich richtig hinzubekommen... ;)
 

Just1978

Sehr aktives Mitglied
1. November 2007
440
25
Bremen
Ja, das stimmt komplett.
Das Problem ist immer, dass man selber akut etwas bearbeitet und dass die entsprechende Formulierung so ausfällt wie es für einen selber logisch erscheint.
Dass es noch links und rechts Anwedungen gibt die auch auf die Beschreibung zutreffen geht dabei leicht unter....

Aber Du hast recht - ich habe echt was gelernt und nun haben wir haben etwas für die Ewigkeit geschaffen - dank der Suchfunktion ;)

Vielen Dank nochmal!
 

volvisti

Sehr aktives Mitglied
18. Juli 2017
317
43
Auch von mir einen herzlichen Dank.
Habe damit das leider vorhandene Manko der nicht existierenden Briefanrede erfolgreich ausgleichen können.

Code:
"Sehr geehrte"+Cond(StrPos(Upper$(Vorgang.Kunde.Anrede),"Herr") = -1,"r "+Vorgang.Kunde.Anrede +" "+Vorgang.Kunde.Name+",¶", " "+Vorgang.Kunde.Anrede +" "+Vorgang.Kunde.Name+",¶")
 
Zuletzt bearbeitet:

volvisti

Sehr aktives Mitglied
18. Juli 2017
317
43
Hallo Leuts,
war über das Ergebnis in meinem Beitrag vom 12.09. ziemlich glücklich, ABER...

Mein Wunsch wäre:
Wenn Anrede = "Herr" dann "Sehr geehrter Herr xyz," / sonst "Sehr geehrte Frau zyx," / anderenfalls "Sehr geehrte Damen und Herren,"

Geht das?
Wie?
Hat einer eine Idee???????

Kann mir nicht vorstellen, dass das gar nicht gehen soll!!
Bitte um Hilfe!
 

Rico Giesler

Offizieller Servicepartner
SPBanner
10. Mai 2017
13.244
1.521
Du könnest mit Darstellungsbedingungen arbeiten.
Dann legst du deine Anredeformel 3 mal an.
Ein mal mit der Bedingung für Anrede ist gleich Herr. Ein mal für ist gleich Frau und ein mal für ist leer.
 

volvisti

Sehr aktives Mitglied
18. Juli 2017
317
43
Hallo Rico,
das ist theoretisch eine gute Idee.

Nur zum Verständnis: Ich vervielfache das Textfeld (in diesem Fall insgesamt 3 Felder), belege jedes mit der entsprechenden Darstellungsbedingung und lege dann die Felder aufeinander.
Dann wird der entsprechende Text immer an der gleichen Stelle angezeigt.

Hast Du noch einen Tipp für mich, wie ich das am Besten testen kann?
Hab keine Möglichkeit gefunden den, der Vorschau zugrundeliegenden, Vorgang zu ändern. :(

Ich habe mir zwischenzeitlich mit der geschlechtsneutralen Anrede "Guten Tag" beholfen. :)
 

Rico Giesler

Offizieller Servicepartner
SPBanner
10. Mai 2017
13.244
1.521
Du kannst vor dem Bearbeiten der Vorlage neben dem "Bearbeiten"-Button auf den Pfeil klicken und dort "Designobjekt wählen" anklicken.
Hier kannst du einen Datensatz deiner Wahl nehmen, der dann im Editor dargestellt wird.
 

gutberle

Sehr aktives Mitglied
29. März 2011
1.292
401
@volvisti - Klar geht das ... :)

Die Cond() Funktion ist zwar nur eine Wenn/Dann Funktion, aber was hält Dich davon ab im Dann Teil gleich wieder ein Cond() einzusetzen? Hier ist eine saubere Variante, in der alle drei Bedingungen inhaltlich getrennt sind...
Code:
Cond(StrPos(Upper$(Vorgang.Kunde.Anrede),"HERR")>-1,"Sehr geehrter Herr "+Vorgang.Kunde.Name+",¶",Cond(StrPos(Upper$(Vorgang.Kunde.Anrede),"FRAU")>-1,Sehr geehrte Frau "+Vorgang.Kunde.Name+",¶","Sehr geehrte Damen und Herren"+",¶"))
Eigentlich wollte ich Dir noch eine zweite Variante auf Basis Deiner eigenen Kreation von oben anbieten, aber die hat ein paar Fehler, so dass ich sie doch komplett hätte neu schreiben müssen und dann gefällt mir die saubere Lösung hier drüber doch besser.

Kurz gesagt testet Du oben in Deiner Version, ob in einem komplett in Großbuchstaben gewandelten String der Begriff "Herr" vorkommt, was schon mal nicht sein kann und dann, also wenn der NICHT vorkommt, hängst Du das "r" für männlich an Deinen Kern-String "Sehr geehrte" ran. Hmmm, das macht auch keinen Sinn ...

Vielleicht schaust Du Dir besser meine Lösung genauer an, denn die ist deutlich weniger kompliziert als Deine Version angelegt, weil sie die jeweils auszugebenden Strings immer komplett innerhalb der Bedingung kapselt.

Gruß,
Ingmar
 

volvisti

Sehr aktives Mitglied
18. Juli 2017
317
43
Hallo zusammen ;)

@rico
Danke für den Tipp.

@Ingmar
Cooles Ding.
Danke Dir. Die Verschachtelung mehrerer cond() habe ich schon in anderen Bereichen der RE gesehen und auch erfolgreich modifiziert :)
Man muß halt die Denkweise erst einmal verstehen und verinnerlichen, dann wird einiges logischer und einfacher.
Manchmal sind zurückgegebenen Meldungen am unteren Rand des Formeleditors irreführend, bzw. wenig hilfreich.
Denke bei Verschachtelungen, wo es ja auf jede Klammer ankommt ist es sinnvoll, die Formel z.B. in Notepad++ anzusehen, weil hier zu jeder öffnenden Klammer auch die schließende Klammer angezeigt wird.
Oder wie machst Du das?
Zum Glück gibt es dieses Forum, sonst wäre ich doch ziemlich aufgeschmissen.:):)
Manchmal denke ich zu kompliziert und dann kommt halt ein Statement dabei heraus, das sich irgendwie widerspricht.:(
 
Zuletzt bearbeitet:

gutberle

Sehr aktives Mitglied
29. März 2011
1.292
401
Hallo @volvisti,

jo, genau so gehe ich auch vor. Alles, was ich zu Fuß überblicken kann (kann bis 3 zählen...) mache ich direkt im Vorlageneditor, danach in Notepad++. - Und wenn's richtig komplex wird, dann breche ich die lange Befehlskette in Notepad++ einfach auseinander, um den Überblick zu behalten.

Für die ja immer noch einfache Abfrage von oben sähe das so aus ...
Code:
Cond(StrPos(Upper$(Vorgang.Kunde.Anrede),"HERR")>-1,
    "Sehr geehrter Herr "+Vorgang.Kunde.Name+",¶",
    Cond(StrPos(Upper$(Vorgang.Kunde.Anrede),"FRAU")>-1,
        "Sehr geehrte Frau "+Vorgang.Kunde.Name+",¶",
        "Sehr geehrte Damen und Herren"+",¶"
        )
    )
Nimmst Du mal exemplarisch die innere Cond(), dann siehst Du sofort, dass in der Cond-Zeile selbst die Testbedingung steht, in der nächsten Zeile die True-Aktion und in der nächsten Zeile die False-Aktion. Das ist viel übersichtlicher und List & Label stört sich überhaupt nicht daran, dass der Befehl jetzt über mehrere Zeilen geht.

Tipp: Ich habe darüberhinaus auf meinem zweiten Bildschirm immer ein Notepad++ Fenster auf, das ich wie ein Clipboard verwende und wo ich für die aktuelle Session Snippets und Lösungsansätze "parke".

Wenn es dabei um eine Lösung aus dem Forum geht, die ein bißchen komplexer wird, also mit viel SQL- oder Dotliquid-Code, dann kopiere ich den Krams in ein weiteres Notepad++ Fenster, ergänze ganz oben den Link auf den Thread, schreibe darunter einen Einzeiler zum Thema oder Problem, dann einen Paarzeiler zum Lösungsansatz und darunter kommt nur noch der Code. Ist die Lösung dann fertig, wird die Datei mit einem immergleichen Namensschema gespeichert und so habe ich eine stetig wachsende Bibliothek von kleinen Lösungen für die Wawi, in denen ich schneller suchen/finden kann, als im Forum.

Gruß,
Ingmar
 

volvisti

Sehr aktives Mitglied
18. Juli 2017
317
43
Hallo Ingmar,
Danke für die ausführliche Beschreibung Deiner Vorgehensweise.
Ist sicher auch für andere Newbies von Interesse.

Wo ich immer noch meine Schwierigkeiten mit habe, ist mit dem Verständnis der Wahrheitsabfrage.
Also was bedeutet eigentlich > -1 und wann wird diese oder eine andere Aussage in der Bedingung verwendet?
Gibt es dazu eine Anleitung?
Ehrlich gesagt habe ich noch nicht intensiv danach gesucht, aber wenn Du oder jemand anderes mir einen Tipp geben kann, wäre das schon klasse.

Besten Dank jedenfalls für die Hilfe.
 
Ähnliche Themen
Titel Forum Antworten Datum
Druckvorlage Bedingung JTL-Wawi 1.9 1
In Diskussion Workflow Bedingung Reserviert = Zulauf JTL-Workflows - Ideen, Lob und Kritik 9
Neu Keine Rechnungen für FBA -> Der Auftrag wird extern abgerechnet Amazon-Anbindung - Fehler und Bugs 1
Neu 📢 Plugin: "Video für Beschreibung (YouTube, Vimeo, andere Formate) 📢 Plugins für JTL-Shop 0
Neu (WMS-)Lager - Lagerplatz - Für den verfügbaren Bestand sperren - Verwirrung User helfen Usern - Fragen zu JTL-Wawi 5
Neu Server Hardware für eigenes Wawi / SQL Hosting Installation von JTL-Wawi 3
Neu Individueller Festpreis für Kunden lässt sich nicht speichern. JTL-Wawi - Fehler und Bugs 1
Neu Affiliate Plugin Empfehlung für JTL Shop 5 Plugins für JTL-Shop 0
Neu ETA für Onlineshop-Abgleich JTL-Wawi - Ideen, Lob und Kritik 0
Neu Mindestbetrag für kostenlosen Versand Allgemeine Fragen zu JTL-Shop 0
Neu Ameise: Hilfe für Eigener Export JTL Ameise - Eigene Exporte 5
JTL-Wawi 1.9.7.1 – Wie kann man "Suchbegriffe" für Kaufland.de anlegen? JTL-Wawi 1.9 0
Neu Versandpreise für Ebay bearbeiten User helfen Usern - Fragen zu JTL-Wawi 0
JTL 1.9.7.0 | Warum ändert sich der Nummernkreis für Rechnungen bei Bestellungen aus dem OTTO-Market und bei anderen Marktplatzanbindungen nicht? Otto.de - Anbindung (SCX) 3
Neu 🌟Neues Plugin: digi·access - Die Lösung für Barrierefreiheit Plugins für JTL-Shop 20
Neu Plugin Debugging installiertes Plugin sorgt für 2-3 Sekunden längere Ladezeit seit JTLShop5 Plugins für JTL-Shop 2
Neu Otto PRODUCT_LISTING_FAILED für importiertes und verknüpftes Listing Otto.de - Anbindung (SCX) 0
Neu Suche JTL-Plugin-Entwickler für Bewertungsanzeige in Google (Rich Snippets) Plugins für JTL-Shop 4
Neu Suchen IT Service Dienstleister für kleinere Aufgaben Dienstleistung, Jobs und Ähnliches 1
Neu EINFACHE Lösung für Packstation? Plugins für JTL-Shop 6
Neu WMS Mobile Wareneingang: Etikett für Artikel drucken Arbeitsabläufe in JTL-WMS / JTL-Packtisch+ 1
Beantwortet eigene Chargen Übersicht für "Verknüpfte Artikel" Eigene Übersichten in der JTL-Wawi 7
Letzte Lieferung von Lieferadressen für Außendienstmitarbeiter JTL-Wawi 1.9 1
In Diskussion Workflow für Kleinpaket anhand eigener "Volumenzahl" JTL-Workflows - Ideen, Lob und Kritik 1
Neu "Nicht Ausliefern" für Lagerplatz definieren Arbeitsabläufe in JTL-WMS / JTL-Packtisch+ 0
Mailadresse für Mahnungen JTL-Wawi 1.9 0
Automatische Lagerbuchung mit verschiedenen Barcodes für ein und dasselbe Produkt JTL-Wawi 1.9 2
Kurz- Langbeschreibung Artikel lässt sich für den Ausdruck nicht einstellen bzw. abstellen. JTL-Wawi 1.9 0
Neu Gesamtzahl der Aufträge pro Monat für JTL Rechnung Einrichtung und Installation von JTL-eazyAuction 1
Telefonisch Beratung, Hilfe bei der Angebotserstellung für otto.de Otto.de - Anbindung (SCX) 0
Neu Aufteilung einer Sendung auf mehrere Lieferscheine für die Schweiz User helfen Usern - Fragen zu JTL-Wawi 0
Neu Artikelbeschreibung für diverse Artikel ergänzen Arbeitsabläufe in JTL-Wawi 1
Neu Anfrage für CSS Anpassung Nova Childtemplate Dienstleistung, Jobs und Ähnliches 1
Neu Drucker für Gutscheine Allgemeine Fragen zu JTL-Vouchers 0
Neu Connector für Geschäftspartner Allgemeines zu den JTL-Connectoren 1
Neu Artikel für spezielle Kunden ausblenden Allgemeine Fragen zu JTL-Shop 3
Neu Zustandstexte für ebay auslesen? JTL-Ameise - Fehler und Bugs 2
Neu BUG: kann die neu erstellte Vorlage für eine Rechnung nicht editieren, WAWI stürzt ab JTL-Wawi - Fehler und Bugs 3
SQL-Abfrage für eigene Übersicht im Verkauf – Aufträge zu Angeboten prüfen JTL-Wawi 1.9 2
Erfahrungsaustausch & Unterstützung für JTL-FFN-Setup gesucht JTL-Wawi 1.9 1
Rechnungsvorlagen für Kleinunternehmer JTL-Wawi 1.8 7
Neu Workflow-Bedingungen für Teillieferung aus zwei Lagern (Lager A & Lager B) User helfen Usern - Fragen zu JTL-Wawi 2
Neu Warenkorb Anzeige Problem für Kleinunternehmer Allgemeine Fragen zu JTL-Shop 6
Neu Plugin für Checkout Prozess Plugins für JTL-Shop 5
In Diskussion Grundsätzlich mehrfach Versandlabel für Pakete über 30kg JTL-Workflows - Ideen, Lob und Kritik 10
Neu Mindestbestand für bestimmte Lagerplätze User helfen Usern - Fragen zu JTL-Wawi 3
Neu Connector für Magento 2.4.6 Allgemeines zu den JTL-Connectoren 1
Neu Suche SQL Abfrage für Hersteller die keinem Artikel mehr zugeordnet sind. User helfen Usern - Fragen zu JTL-Wawi 6
Neu Faktura-Liste für Aufträge pro Kunden Schnittstellen Import / Export 1
Neu Artikelanzahl für die Startedition Allgemeine Fragen zu JTL-Shop 5

Ähnliche Themen