Inaktiv Bedingung für "Anmerkung enthält"

Just1978

Sehr aktives Mitglied
1. November 2007
439
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
396
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
439
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
396
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
439
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
396
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
439
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
396
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
439
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.243
1.514
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.243
1.514
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
396
@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
396
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
In Diskussion Retoure: Bedingung Artikelzustand JTL-Workflows - Ideen, Lob und Kritik 11
Neu List&Label Bei Bedingung "FALSE" Breite der Spalte beibehalten User helfen Usern - Fragen zu JTL-Wawi 6
Neu Artikel zählen wenn Bedingung erfüllt Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 0
Neu JTL-Infoschreiben "Wichtige Neuerung im Postgesetz zur Kennzeichnungspflicht" - Umsetzung auch für Österreichische Post Labels ? JTL-ShippingLabels - Ideen, Lob und Kritik 0
Neu Benutzerdefinierte Klasse für Überschrift anlegen funktioniert nicht Templates für JTL-Shop 2
Kategoriebox Nummer für Unterkategorien JTL-Wawi 1.9 2
20 % USt wird für UK nicht ausgewiesen - was mache ich falsch JTL-Wawi 1.9 1
Neu Spezialist für Rechnungsformular-Anpassung benötigt Dienstleistung, Jobs und Ähnliches 1
Getrenntes Lager für den JTL shop JTL-Wawi 1.9 1
Neu Benutzer Authentifizierung für externe App/Shop Onlineshop-Anbindung 1
Sql Abfrage VK Preise pro Kundengruppe für Grafana JTL-Wawi 1.8 9
Neu List & Label - Eigene SQL-Abfrage als Grundlage für Tabelle im Berichtscontainer? User helfen Usern - Fragen zu JTL-Wawi 10
Schnittstelle für Zalando, Kaufland und Otto JTL-Wawi 1.9 5
Neu Die Kennzeichnungspflicht für schwere Pakete kommt am 1.1.2025 JTL-ShippingLabels - Ideen, Lob und Kritik 0
Neu Ausgabeweg => Beschreibungen werden nicht von JTL Wawi gezogen für Shop/ebay/sonst was User helfen Usern - Fragen zu JTL-Wawi 3
Neu SQL Vartable für Reservierte Artikel gesucht User helfen Usern - Fragen zu JTL-Wawi 2
Herstellername / Verantwortliche Person für die EU für Kaufland kaufland.de - Anbindung (SCX) 1
Neu Umfrage: Scanpflicht auf Artikelebene (Nur für bestimmte Artikel aktivieren/deaktivieren) JTL-WMS / JTL-Packtisch+ - Ideen, Lob und Kritik 0
Neu Workflow und Version für Vorhaben Starten mit JTL: Projektabwicklung & Migration 3
Neu Rabatt für Bundles Allgemeine Fragen zu JTL-Shop 2
Neu Suche Dienstleister für Rechnungsvorlage, MwSt Sätze User helfen Usern - Fragen zu JTL-Wawi 0
Provisionsabrechnung für Vertrieb JTL-Wawi 1.9 1
Beantwortet Kosten für Aufträge aus Shopware 5 Shopware-Connector 1
Neu Artikelbestände für Stücklistenartikel blockieren User helfen Usern - Fragen zu JTL-Wawi 2
Neu Attribute für EWR Pflichtangaben - otto.de User helfen Usern - Fragen zu JTL-Wawi 5
Neu Amazon Lister 2.0 Fehlercode: SLR402 Bild "1.jpg" für das Angebot mit SKU "xxxxx" auf Channel "AMAZONDEJTL" wurde nicht gefunden Amazon-Lister - Ideen, Lob und Kritik 0
Neu Variable für Zulaufdatum User helfen Usern - Fragen zu JTL-Wawi 1
Neu Wichtige Infos zu GPSR-Attributen für JTL-eazyAuction und kommende JTL-Wawi Version 1.9.6.0 Einrichtung und Installation von JTL-eazyAuction 76
Welche Einstellung für "Überverkäufe nicht mehr möglich" wenn "alle Lagerbestände null" sind. JTL-Wawi 1.9 5
Neu Preisdarstellung: keine „ab“-Preise mehr mit Staffelpreisen für Produkte ohne Variationen (JTL Shop 5.3.3) Allgemeine Fragen zu JTL-Shop 1
Attribute für EWR Pflichtangaben (ab 13.12.2024) auf den Marktplätzen otto.de & kaufland.de Otto.de - Anbindung (SCX) 8
Neu GTIN/EAN für mehrere Artikel verwenden Arbeitsabläufe in JTL-Wawi 2
Rabatt für einzelnen Kunden einrichten JTL-Wawi 1.9 2
Neu Artikeletikett für Kinderartikel drucken mit GTIN Barcode funktioniert nicht User helfen Usern - Fragen zu JTL-Wawi 12
Neu Vorlage für Angeboten Rechnungsbetrag ändern Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 1
Neu S: Plugin Dropdown-Menü für meine Kategorien Plugins für JTL-Shop 10
Neu EVRI Label für Versand nach UK - wer benutzt es? Business Jungle 2
Nur bestimmte Bilder für einen Marktplatz aktivieren (Hood.de) JTL-Wawi 1.8 2
Neu Drucker für WMS getauscht - Zollpapiere werden nicht gedruckt JTL-ShippingLabels - Ideen, Lob und Kritik 1
Variable für Kundengruppe Allgemeine Fragen zu JTL-Shop 6
Neu Beschreibung für Amazon ohne HTML Inhalte Arbeitsabläufe in JTL-Wawi 3
Hilfe gesucht für Änderung der internen Schlüsselnummern! JTL-Wawi 1.9 8
Beantwortet Manueller Worklfow Rechnung für Mahnung, wie den offenen Rechnungsbetrag bei Teilrechnung ausgeben? JTL-Workflows - Ideen, Lob und Kritik 7
Tipps für effiziente Änderungen bestehender Artikel JTL-Wawi 1.7 2
Neu Bilder für alle Plattformen verwenden User helfen Usern - Fragen zu JTL-Wawi 8
Neu JTL WaWI abgleich mit Amazon für Deal Day & Black Friday User helfen Usern - Fragen zu JTL-Wawi 1
Onpage composer Texte für Merkmal Seiten Einrichtung JTL-Shop5 1
Neu Amazon Lister 2.0 - Code 99016 - Ein Maximum von 1 Vorkommen (oder Vorkommnissen) ist für das Attribut color zulässig Amazon-Lister - Fehler und Bugs 1
Neu Anbindung von JTL an Onlinehandel für GPSR (Produktsicherheit) Schnittstellen Import / Export 3
Sonderpreise für den Otto Marktplatz übertragen Otto.de - Anbindung (SCX) 1

Ähnliche Themen