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
402
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
402
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
402
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
402
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
318
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
318
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
318
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
402
@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
318
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
402
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
318
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 Ladenpreis auf Etikett mit Bedingung verknüpfen User helfen Usern - Fragen zu JTL-Wawi 1
Vorlage mit Bedingung JTL-Wawi 1.9 2
Neu Trainingsmodus für JTL-POS gewünscht JTL-POS - Ideen, Lob und Kritik 0
Artikel teilweise nicht für Verkaufskanäle aktivierbar JTL-Wawi 1.10 0
Neu VCS lite: Arithmetischer Überlauffehler für tinyint-Datentyp, Wert = -1. Amazon-Anbindung - Fehler und Bugs 0
Monatsweise Warenbewegungen für alle Artikel exportieren JTL-Wawi 1.10 1
WF - automatisches Aktivieren / Deaktivieren für Verkaufskanal Shop JTL-Wawi 1.9 6
Artikel nicht automatisch für Verkaufskanal aktivieren JTL-Wawi 1.10 2
Neu Welcher Hoster ist für JTL-Shop 5 empfehlenswert? User helfen Usern 12
Buchhaltung vollautomatisiert für die Schweiz JTL-Wawi 1.10 9
Vote für debugging des Mobile Server Fehlers JTL-Wawi 1.11 1
Massenänderung "Lagerplatz" für Artikel bei WMS Lager JTL-Wawi 1.10 2
Neu Bestellobergrenze (999€) für Schweizer Kunden im Shop hinterlegen Betrieb / Pflege von JTL-Shop 1
Alternativtext für Artikelbilder per Ameise pro Plattform setzen JTL-Wawi 1.10 0
Neu Staffelpreise für Verpackungseinheiten Einrichtung von JTL-Shop4 4
Neu Kunden einen Retouren QR Code beim ausliefern mitschicken für Warenankauf ??? JTL-ShippingLabels - Fehler und Bugs 0
Neu Suche Freelancer für Aufsetzen JTL B2B Shop Dienstleistung, Jobs und Ähnliches 3
Gelöst Kartenleser für RKSV JTL-POS - Fragen zu Hardware 1
Neu Artikel nur für Admin sichtbar Allgemeine Fragen zu JTL-Shop 2
Neu Zusätzlicher Kundendisplay für Kassensystem iMin D4 Pro Einrichtung / Updates von JTL-POS 1
Neu Besteht Interesse an einer Versandschnittstelle für GEL-Express? Schnittstellen Import / Export 0
Neu Tailwind als Basis für JTL Shop 6 ? Templates für JTL-Shop 2
Neu Variablen für Kassenbon Einrichtung / Updates von JTL-POS 1
Neu Feature Requests für das News System Refactoring JTL-Shop - Ideen, Lob und Kritik 7
Neu Neues Plugin: JTL Closed Shop – Zugangsbeschränkung, Pre-Sale & Wartungsmodus für deinen JTL-Shop Plugins für JTL-Shop 1
Neu Falsche Währung in VCS-Lite Rechnungsvorlage bei anderem Land für Rechnung als Lieferung, HUF statt EUR Amazon-Anbindung - Fehler und Bugs 0
Gelöst Workflow-Trigger für Selbstabholung / FFN-Versand JTL-Workflows - Fehler und Bugs 2
Ameisenimport ignoriert Feld "Ist Standardlieferant für Dropshipping" JTL-Wawi 1.10 2
In Diskussion Workflow für bezahlte Aufträge eines bestimmten Lagers → Pickliste zu bestimmter Uhrzeit JTL-Workflows - Ideen, Lob und Kritik 2
Neu Bekomme ich hier im Forum für mein Projekt Support? User helfen Usern 8
Neu Fehlermeldung: Der angegebene Wert für "purchasable_offer" ist ungültig. | Fehlercode(s): (4000001) Amazon-Anbindung - Fehler und Bugs 11
Neu WMS-Lager lässt sich nicht anlegen – Meldung „Sie besitzen keine Lizenz für JTL-WMS“ trotz gebuchtem WMS Start Installation von JTL-WMS / JTL-Packtisch+ 3
Neu SQL Code für GPSR Felder (Kaufland) zeigt Fehler + wird daher nicht übertragen kaufland.de - Anbindung (SCX) 0
Neu SQL für noch nie Verkaufte Artikel auf Marktplätzen. User helfen Usern - Fragen zu JTL-Wawi 3
Neu PromoBar-Portlet für JTL-Shop 5 – Aktionsleiste, Gutschein & Countdown Plugins für JTL-Shop 1
Neu JTL-Shop-Template Technik – optimiert für Performance & Conversion Templates für JTL-Shop 10
Neu GA4-Tracking für JTL-Shop 5 – sauberes E-Commerce & Kategoriepfade Plugins für JTL-Shop 0
So aktivieren Sie FEFO (Zuweisung des zuerst ablaufenden Bestands) für Arbeitsaufträge. JTL-Wawi 1.10 0
Neu Versandkosten für bestimmte Produkte (AT = 0 €, Ausland = 180 €) Betrieb / Pflege von JTL-Shop 0
Neu Import von SEO Meta Daten für Plattform Woocommerce WooCommerce-Connector 3
Neu Welche URLs/Ports werden für den JTL Worker benötigt? User helfen Usern - Fragen zu JTL-Wawi 8
Neu Suche Dienstleister für Providerwechsel von Domainfactory zu All-Inkl Dienstleistung, Jobs und Ähnliches 12
Neu Suchen Wawi- und Shopspezialist (m/w/d) für Pflege von Bestandssystem inhouse in PLZ 24* Dienstleistung, Jobs und Ähnliches 0
Neu Zusätzliche Daten für jedes Produkt Technische Fragen zu Plugins und Templates 7
JTL-Workflows >> Aufträge >> Ausgeliefert >> Abrechnungsposition für Versandkosten hinzufügen JTL-Wawi 1.10 3
In Diskussion Workflow für das Austauschen von bestelltem Artikel in einem Auftrag gegen einen alternativen Artikel JTL-Workflows - Ideen, Lob und Kritik 3
Neu Import von SEO Meta Daten für Plattform Woocommerce JTL-Ameise - Ideen, Lob und Kritik 0
Neu Versandgewichte exportieren für Anbietervergleich JTL Ameise - Eigene Exporte 4
Neu JTL mit Shopify für Etsy anstatt JTL mit Unicorn2 - hat das jemand gemacht? Anbindung, bestehende Artikel mappen? Multishop? Shopify-Connector 2
Neu Suche Linux-Spezialisten für die Betreuung von unseren Servern Dienstleistung, Jobs und Ähnliches 1

Ähnliche Themen