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
403
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
403
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
403
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
403
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
321
44
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
321
44
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
321
44
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
403
@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
321
44
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
403
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
321
44
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
25 Gutscheine für Kunden auf Rechnung erstellen Allgemeine Fragen zu JTL-Vouchers 0
Neu SEO URL für den Blog Allgemeine Fragen zu JTL-Shop 2
Neu 🚨 Hinweis für JTL-Händler, die Taxdoo nutzen News, Events und Umfragen 1
Monatsabschluss Amazon FBA UK / CH mit JTL2Datev WaWi 1.10 bei IDU Nutzung und Zwangs VCS für GB / Schweiz JTL-Wawi 1.10 0
Neu Biete Connector-Tools für vollautomatische Lieferantenbestellungen an uvm. Dienstleistung, Jobs und Ähnliches 0
Externe Auftragsnummer für Rechnungs-Druckvorlage nicht vorhanden JTL-Wawi 1.11 6
Neu Sind Support-Tickets für WaWi und Ameise ohne kostenpflichtigen Tarif nicht mehr möglich? JTL-Wawi - Fehler und Bugs 3
Neu Coupon-Steuer Plugin: Korrekte Steuerberechnung für JTL-Shop Coupons Plugins für JTL-Shop 1
Neu Neuer Server für kleines Unternehmen User helfen Usern - Fragen zu JTL-Wawi 28
Neu Welche SQL Server Version für WaWi 1.0.0.0.0 unter Windows 11 Installation von JTL-Wawi 6
Neu Was ist die korrekte Variable für die letzte Seite eines Artikellistings? Betrieb / Pflege von JTL-Shop 11
Neu Open-Source-Lösung für produzierende Betriebe User helfen Usern 0
Neu Varianten Artikel erstellen mit Lister 2.0 nur für Amazon Amazon-Lister - Ideen, Lob und Kritik 0
Neu SUCHE Freelancer für JTL WAWI Anbindung an WooCommerce und Einrichtung Dienstleistung, Jobs und Ähnliches 2
Amazon-ASIN mit mehreren SKU für Chargenverfolgung JTL-Wawi 1.10 0
Neu ID Hook für Warenkrob User helfen Usern 0
Neu Platzhalter für GPSR werden mit angezeigt PrestaShop-Connector 1
Neu Workflow für voraussichtlichen Liefertag erstellen JTL-Workflows - Ideen, Lob und Kritik 6
Neu Workflow für voraussichtlichen Liefertag erstellen User helfen Usern - Fragen zu JTL-Wawi 1
Neu CustomWorkflow für Pattenkonto JTL-Workflows - Ideen, Lob und Kritik 1
Neu Adressetiketten für Briefe mit Etikettendrucker erstellen / Formatierungsproblem Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 4
Neu 🚀 Pilotkunden gesucht: HS Dynamic Pricing Plugin für JTL-Shop Plugins für JTL-Shop 0
Wichtig 💡Die Retourenplattform für Webshops – Expertise von unserem neuen Partner Returnless News, Events und Umfragen 0
Neu Kapazitäten frei für Routineaufgaben JTL Wawi Dienstleistung, Jobs und Ähnliches 0
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 2
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 2
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

Ähnliche Themen