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
395
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
395
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
395
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
395
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
311
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
311
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.508
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
311
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.508
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
395
@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
311
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
395
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
311
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
Neu Workflow - als Bedingung Standard-Dropshipping-Lieferantenname prüfen Gelöste Themen in diesem Bereich 5
Neu Bedingung triff nicht zu: (3 Kleiner gleich 21) Gelöste Themen in diesem Bereich 4
Neu Plugin für Boomerang Versandverpackungen Plugins für JTL-Shop 1
SQL Abfrage für verkaufte Artikel + aktueller Bestand JTL-Wawi 1.8 1
Neu Grundpreisangaben für geringe Gramm-Mengen werden nicht angezeigt Betrieb / Pflege von JTL-Shop 0
Neu mit FBM für Ausland User helfen Usern - Fragen zu JTL-Wawi 2
Neu Falsche Gewinnermittlung für Kleinunternehmer JTL-Wawi - Ideen, Lob und Kritik 8
Neu Netto für Händler gleich, Brutto für Endkunden - Plugin oder andere Alternative? Allgemeine Fragen zu JTL-Shop 0
Neu Mindestbestellwert für Netto-Einkaufswert JTL-Shop 5 Allgemeine Fragen zu JTL-Shop 0
Neu Cron für Export-Manager "tut nix" JTL-Shop - Fehler und Bugs 13
Neu Liquid Variable für Positionsart User helfen Usern - Fragen zu JTL-Wawi 3
Neu leeres Textfeld erstellen für einen Hinweis auf der Rechnung User helfen Usern - Fragen zu JTL-Wawi 2
Neu Filter für Zeitraum in "Alle Bons" aktualisiert sich nicht JTL-POS - Fehler und Bugs 0
Neu Mobatraum.de Alles für die Modellbahnträume Shops stellen sich vor 0
Neu Nachbestellung via Bestellvorschläge für Ladenlokale Allgemeine Fragen zu JTL-POS 0
Neu Export Gesamtpreis für Artikel mit Mindestabnahme Allgemeine Fragen zu JTL-Shop 0
Neu Frage zu Designvorlage JTL-Adept - Slider (für Ebay) eBay-Designvorlagen - Fehler und Bugs 4
Hosted (gehostete?) Datenbank Download Zweitgerät für unterwegs JTL-Wawi 1.8 13
Kennzahlen Übersicht für JTL Wawi - Wirtschaftliche Auswertung JTL-Wawi 1.8 0
Neu Feldname für Workflow herausfinden User helfen Usern - Fragen zu JTL-Wawi 4
Neu Datenimport über Ameise in JTL für Shopware Shopware-Connector 1
Wichtig Beta Connector für Presta 8 mit PHP 8+ PrestaShop-Connector 35
Anfrage für Zusammenarbeit zur Verbesserung unseres JTL-Onlineshops Einrichtung JTL-Shop5 1
Neu Track&Trace für Österreichische Post JTL-Track&Trace - Ideen, Lob und Kritik 2
Neu PrestaShop Connector für Prestashop 8 mit PHP 8.2 wird nicht unterstützt PrestaShop-Connector 3
Neu Variablen für den Email Versand Einrichtung JTL-Shop5 0
Neu Nach Update auf 5.3 funktioniert das Video-Portlet für lokale Videos nicht Gelöste Themen in diesem Bereich 9
Wo befindet sich das Feld mit der Information für "Zustandsbeschreibung" auf Ebay? JTL-Wawi 1.8 9
Neu Egener Export für CBAM-Bericht möglich? JTL Ameise - Eigene Exporte 0
Beantwortet Globaler Haken für Überverkaufe ermöglichen JTL-Workflows - Fehler und Bugs 2
Neu JTL 1.8.12.0 - Artikelattribut für Shop importieren - Format CSV-Datei / Hilfe bei Import von individuellen Attributen für JTL-Shop (googlekat) JTL-Ameise - Ideen, Lob und Kritik 1
In Diskussion Benutzerdefinierten Standardpfad für Errorlogs definieren (Voting) JTL-Workflows - Ideen, Lob und Kritik 0
Neu Freitextfeld über Variation - Zeichenbeschränkung für Gravur Allgemeine Fragen zu JTL-Shop 8
Neu Template/ Vorlage für Bestellbestätigung gesucht Templates für JTL-Shop 0
WaWi Preisuntergrenze für Artikel festschreiben JTL-Wawi 1.7 4
Neu Variablen für Stücklistartikel in den neuen Vorlagen Angebot Auftrag Rechnung ect. Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 0
Neu Anleitung: Artikeletiketten für Auftrag, Rechnung, Lieferschein etc. drucken mit Etikettenanzahl = Artikelanzahl User helfen Usern - Fragen zu JTL-Wawi 0
Neu Zusatzkosten für Artikel Gelöste Themen in diesem Bereich 17
Neu Versandschein für Schweiz kann nicht gedruckt werden folgende Fehlermeldung JTL-ShippingLabels - Fehler und Bugs 1
Neu Bestellbestätigung email Variable Hinweistext für Downloadartikel Allgemeine Fragen zu JTL-Shop 3
Neu Dienstleister/Freelancer für Vorlagenerstellung Design gesucht Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 2
Neu JTL erstellt falsche Rechnungskorrekturen für Amazon.co.uk Aufträge und verweigert den Support Amazon-Anbindung - Fehler und Bugs 5
Neu Pickliste für Standardlager - Sortierung in WMS Mobile Arbeitsabläufe in JTL-WMS / JTL-Packtisch+ 0
Neu Workflow Web-Request Post für mollie Arbeitsabläufe in JTL-Wawi 6
Versuch Bilder aus Ebay für Kaufland zu übernehmen JTL-Wawi 1.8 0
Debitorennummern für bestehende und neue Kunden anlegen JTL-Wawi 1.8 2
Druckvorlage für Etiketten aus Auftragspositionen JTL-Wawi 1.8 4
Eigene Felder für Ebay-Listings verwenden JTL-Wawi 1.8 0
In Diskussion Automatische Zuweisung der Kategorien für Artikel durch Workflow JTL-Workflows - Ideen, Lob und Kritik 3
Gelöst Hardware für häufige Konstellationen mit USB und Swissbit TSE-Problem ab Android 11 JTL-POS - Fragen zu Hardware 5

Ähnliche Themen