Neu Dotliquid für Hinweis

ninoboender

Gut bekanntes Mitglied
3. August 2014
174
1
Hallo Jtl User,

wir haben bei unserem Aufträgen im Hinweisfeld immer folgende Information stehen:

Color: Weiß, Größe: S, Kampagne: 8VZBPHS9

Dies wird aus unserem Onlineshop automatisch importiert und steht unter Hinwes. Jetzt möchten wir den Hinweis jedoch kürzen auf die Kampagnen Info, in diesem Fall "8VZBPHS9" und diese soll dann als Code129 angezeigt werden. Verständlich? Wir würden gerne also einen Scannbaren Code angezeigt bekommen, der immer diese 8stellige Nummer/Zahlenkombination darstellt.

Wie können wir das anstellen in die Druckvorlage? Über ein Feedback würde ich mich freuen.

Gruß Nino
 

Anhänge

  • Nino___TS_Server.jpg
    Nino___TS_Server.jpg
    119,1 KB · Aufrufe: 111

gutberle

Sehr aktives Mitglied
29. März 2011
1.292
402
Wenn der Code IMMER 8 Zeichen lang ist und IMMER ganz rechts steht, dann kannst Du ihn ganz einfach aus Vorgang.Hinweis rauslösen, z.B. mit ...
Code:
Right$(ATrim$(Vorgang.Hinweis),8)

Das ATrim$() ist hier nur wichtig, um zu verhindern, dass ein überflüssiges Leerzeichen am Ende Deinen BarCode künstlich "verkürzt". Ich gehe davon aus, dass Du "Code 128" meinst, richtig? Der zugehörige BarCode() Befehl lautet dann...
Code:
BarCode(Right$(ATrim$(Vorgang.Hinweis),8),"Code 128")

Und falls die Codelänge doch variabel ist, wird die Formel zwar ein wenig komplizierter, aber nur ein wenig und könnte wie folgt aussehen...
Code:
ATrim$(Right$(Vorgang.Hinweis,Len(Vorgang.Hinweis)-(StrRPos(Vorgang.Hinweis,":")+1)))
Damit wird rückwärts nach dem ersten Auftreten eines Doppelpunktes gesucht, dieser übersprungen und der rechte Rest des Hinweistextes zurückgeliefert. Der BarCode() Teil ist dann wieder wie gehabt...

Code:
BarCode(ATrim$(Right$(Vorgang.Hinweis,Len(Vorgang.Hinweis)-(StrRPos(Vorgang.Hinweis,":")+1))),"Code 128")
 

ninoboender

Gut bekanntes Mitglied
3. August 2014
174
1
hallo gutberle, so macht Forum Spaß!!!

Leider kommt jedoch eine Fehlermeldung "Syntaxfehler" bei dem 2. und 4. Code
Vielleicht kannst Du es Dir noch mal ansehen.
Vielen Dank für die super Hinweise. Schönes Wochenende!
 

Anhänge

  • Bildschirmfoto 2016-09-18 um 16.39.43.png
    Bildschirmfoto 2016-09-18 um 16.39.43.png
    157,4 KB · Aufrufe: 38
Zuletzt bearbeitet:

ninoboender

Gut bekanntes Mitglied
3. August 2014
174
1
Fehler habe ich anscheinend selber "erkannt" - "Vorgang.Hinweis" gibt es wohl nicht mehr, es sollte "Auftragspositionen.Hinweis" lauten und jetzt funktioniert es auch. DANKE
 

ninoboender

Gut bekanntes Mitglied
3. August 2014
174
1
Hallo, es hat sich wie folgt geändert der Ausdruck ist jetzt wie folgt "Unisex Hoodie / Schwarz / S / V6lAJDN / Front" und ich möchte jetzt nur den vorderen Bereich ausgegeben haben -> also "Unisex Hoodie" (ohne Barcode oder so, nur Text), alles also nach dem ersten "/" sollte abgeschnitten werden.
 

gutberle

Sehr aktives Mitglied
29. März 2011
1.292
402
Auch das ist einfach, probier es mal mit dem Code unten. Hier wird der linke Teil eines Strings bis zur Position von "/" zurückgeliefert und dabei noch 1 abgezogen, damit das "/" im Resultat nicht enthalten ist. Und Atrim$() macht wie schon oben nur eine Bereinigung um führende oder folgende Leerzeichen im Resultat.
Code:
Atrim$(Left$(Auftragspositionen.Hinweis,StrPos(Auftragspositionen.Hinweis,"/")-1))
Allerdings vorausgesetzt, dass es hier um einen Auftragspositionen.Hinweis geht. Sonst mußt Du den Teil wieder anpassen, also die beiden Nennungen von Auftragspositionen.Hinweis gegen die gesuchte Variable austauschen.

Probier mal selber ein bißchen "rum". Du brauchst wirklich nur 3-4 Befehle, um richtig voran zu kommen, ähnlich wie bei den Gitarrenakkorden und der ersten eigenen Band mit 16 ... ;)
 

ninoboender

Gut bekanntes Mitglied
3. August 2014
174
1
ah ok und wenn ich nur den Bereich hier haben möchte.... V6IAJDN - das bekomm ich nicht hin

Unisex Hoodie / Schwarz / S / V6lAJDN / Front
 

gutberle

Sehr aktives Mitglied
29. März 2011
1.292
402
Schau Dir mal meine Antwort und die Erläuterungen zum Suchen des n.ten Vorkommens eines Zeichens in einem String in Deiner anderen Frage hier an. Dann bekommst Du das auf jeden Fall hin. - Es ist wirklich wie mit den Gitarrenakkorden: 3-4 reichen eigentlich aus, um schon richtig Musik zu machen ... ;)
 

ninoboender

Gut bekanntes Mitglied
3. August 2014
174
1
Wo kann ich denn genau die Akkorde lernen :) bisher konnte ich nicht wirklich ne Dokumentation finden. Aktuell muss ich den ersten Bereich bis zum "-" kürzen.

Unisex Hoodie - LIMITIERT - Meine Blutgruppe // *Front* // #K27AL1UT_JH001_Schwarz

Es soll nur noch "Unisex Hoodie" stehen bleiben. Wir bekomm ich das hin?
 

gutberle

Sehr aktives Mitglied
29. März 2011
1.292
402
Gute Frage und so kurz vor Weihnachten, wer kann sich da schon verweigern... ;)

Es gibt gleich ein paar Quellen für Informationen...

1. Inline Syntax-Hilfe in List & Label
Hier geht es genau um das Fenster "Funktionen bearbeiten", in dem Deine Formel oder Funktion steht und dann von List & Label ausgewertet wird, also das, worüber wir oben immer geschrieben haben. Wenn Du in diesem Dialog oben in der Zeile unterhalb von "Funktionen:" z.B. "atrim" eingibst, schnurrt die Baumstruktur darunter zusammen und Du siehst nur noch Atrim$ ({Zeichenkette}) und wenn Du jetzt einmal darauf klickst, erscheint im Fenster unter diesem Bereich der Hilfetext "Entfernt Leerzeichen am Anfang und Ende der Zeichenkette".
Gibst Du hier aber z.B. left ein, dann erscheint darunter Left$ ({Zeichenkette},{Zahl}[,{Boolean}]) und das sieht schon komplizierter aus. Grundsätzlich gilt bei dieser Form der Syntax immer, dass Parameter, die in eckigen Klammern stehen, optional sind, also nicht benutzt werden müssen, aber können. Wichtig sind hier also offenbar nur Zeichenkette und Zahl und der Hilfe-Text unter dem Bereich sagt denn auch "Gibt die ersten {Zahl} Zeichen der ursprünglichen Zeichenkette zurück." und darunter steht sogar noch ein Beispiel mit Left$("ABCD",2) -> "AB", das Dir zeigt, dass Du mit diesem Befehl die ersten beiden Zeichen von links aus Deiner Zeichenkette zurücklieferst. Analoges gilt dann für Right$(), etc.
Soll heißen, wenn Du genauer wissen willst, was die Befehle tun, die ich oben verwende, mußt Du nur Ihren Namen oben unter "Funktionen:" eintippen, einmal darauf klicken und schon bekommst Du mehr Information und ggfls. auch ein Beispiel.

2. Programm-Hilfe von List & Label
In dem obigen Beispiel mit Left$ ({Zeichenkette},{Zahl}[,{Boolean}]) gab es mit [,{Boolean}] ja einen optionalen Parameter und der ist bisher nicht aufgetaucht oder erklärt worden. Hier und in allen ähnlichen Fällen hilft Dir aber das in List & Label integrierte Handbuch in der Hilfefunktion. Einfach oben rechts auf das Fragezeichen klicken, Befehl unter "Suchen" eingeben und schon erscheint der gleiche Hilfetext wie im PDF Handbuch, das JTL zwar nicht mitliefert, dass aber bei Combit umsonst heruntergeladen werden kann. Achtung: Die aktuelle Wawi benutzt L&L Version 20, bei Combit scheint es nur noch das Handbuch zur v22 zu geben, das aber für einfache Syntax-Suchen wie hier natürlich immer noch geeignet ist.

3. Web und Forum
OK, das wusstest Du schon...

Letztlich gilt auch hier wie beim Gitarre lernen: Üben, üben, üben und deshalb hier noch ein Übungsbeispiel. Deine Frage ist mit meiner letzten Lösung von oben eigentlich schon beantwortet, schauen wir uns das mal in einer auch für Deine aktuelle Frage funktionierenden Form an. Die sähe zum Beispiel folgendermaßen aus:

Atrim$(Left$(Auftragspositionen.Hinweis,StrPos(Auftragspositionen.Hinweis,"-")-1))

Man wertet solche Ausdrücke immer von Innen nach Außen aus, also zuerst einmal StrPos(Auftragspositionen.Hinweis,"-"). Ein Blick in die L&L Hilfe sagt, dass StrPos ({Zeichenkette},{Zeichenkette}[,{Zahl}]) die Position des ersten Auftretens einer (Teil)Zeichenkette (2. Parameter) innerhalb einer (Gesamt)Zeichenkette (1. Parameter) zurückliefert und die Hilfe darunter gibt auch ein Beispiel, easy. Der optionale Parameter wird auch hier nicht erklärt, aber die L&L Hilfe sagt, dass man mit der Zahl bestimmen kann, das wievielte Vorkommen des Textes oder bei Dir des Buchstabens gesucht werden soll. Das ist hier nicht nötig, weil der Default Wert für [,{Zahl}] gleich 1 ist, also das erste Auftreten, aber das ist ja nicht immer gegeben.

Hinter dem StrPos() Ausdruck steht noch "-1" und der Sinn dahinter ist, dass StrPos() ja die Position des Bindestrichs selbst zurückgibt und wenn wir die unverändert übernehmen, schneidet Left$() alles bis zum Bindestrich aus und nicht bis davor. Ok, weiter geht es mit Left$() und das dürfte jetzt eigentlich schon klar sein. Wir haben gerade den Parameter {Zahl} aus der Definition von Left$() bestimmt und damit ist Left$() vollständig mit Werten versorgt und liefert jetzt folgendes zurück...

"Unisex Hoodie "

... natürlich ohne Anführungszeichen, die sind hier nur dazu da, Dir zu zeigen, dass am Ende Deines Textes immer noch ein Leerzeichen zu viel steht. Hier kommt dann Atrim$({Zeichenkette}) ins Spiel, denn das schneidet einfach rechts und links von einer Zeichenkette die Leerzeichen ab. Und falls Du nur links oder rechts die Leerzeichen abschneiden willst (hier ginge ja auch "nur links"), dann gibt es dafür Ltrim$({Zeichenkette}) und Rtrim$({Zeichenkette}).

Und damit schließt sich der Kreis, denn um jetzt weiter zu lernen und so etwas wie Rtrim$() zu finden, klickst Du Dich einfach mal durch den Baum unterhalb von "Funktionen:" im "Funktion bearbeiten" Editor durch. Dort findest Du eine riesige Zahl an Funktionen aus den unterschiedlichsten Kategorien, die genauso aufgebaut sind, wie Left$() und Co. und teilweise wirklich coole Dinge leisten.

Ein Tipp noch zum Schluß: Da Du nicht immer vorab wissen kannst, was sich an Text in Variablen wie Artikelpositionen.Hinweis versteckt, kannst Du solche Variablennamen zum Rumprobieren auch einfach durch Deinen Wunschtext ersetzen, hier also zum Beispiel durch ...

"Unisex Hoodie - LIMITIERT - Meine Blutgruppe // *Front* // #K27AL1UT_JH001_Schwarz"

... hier aber natürlich mit den Anführungszeichen, um das Ganze als Zeichenkette kenntlich zu machen.

Frohe Weihnachten... :)
 

ninoboender

Gut bekanntes Mitglied
3. August 2014
174
1
Hallo Gutberle, ich steig einfach nicht durch. Ich bin eigentlich affin was das angeht, aber irgendwie auch nicht :(

"Unisex Hoodie - LIMITIERT - Meine Blutgruppe // *Front* // #K27AL1UT_JH001_Schwarz"

Wenn ich jetzt nur den "mittleren" Teil haben möchte *Front* was kann man machen?
 

gutberle

Sehr aktives Mitglied
29. März 2011
1.292
402
Da der Textteil, den Du ausschneiden möchtest, von zwei einmaligen Zeichen umschlossen ist, kannst Du ihn recht leicht ausschreiben. Im nachfolgenden Beispiel habe ich Deinen Text durch <DeinText> ersetzt, damit der Code etwas kürzer wird...
Code:
Mid$(<DeinText>,StrPos(<DeinText>,"*"),StrPos(<DeinText>,"*",2)-StrPos(<DeinText>,"*")+1)

Von links nach rechts passiert hier folgendes: Der Befehl Mid$(Text,StartPos,Länge) schneidet aus dem Text ab der StartPos einen Teilstring der Länge aus. Der Befehl StrPos(<DeinText>,"*") steht hier für die StartPos und sucht in <DeinText> nach dem ersten Vorkommen von "*". Ab dort wird ausgeschnitten.

Der zweite Parameter definiert ja die Länge und hier suche ich über StrPos(<DeinText>,"*",2) erst das zweite Vorkommen von "*" und ziehe davon die Position des ersten Vorkommens von "*" ab. Damit habe ich die Länge des Strings. Die muss ich noch um +1 erhöhen, weil ich sonst das zweite "*" abschneiden würde, aber das war's schon... :)
 

ninoboender

Gut bekanntes Mitglied
3. August 2014
174
1
Hallo Gutberle, ich wollte die Ausgabe nun etwas anpassen / verändern

BarCode((ATrim$(Right$(Auftragspositionen.Bezeichnung,Len(Auftragspositionen.Bezeichnung)-(StrRPos(Auftragspositionen.Bezeichnung,"#")+1)))+"_"+Auftragspositionen.InternePositionsnummer),"QRCode")

doch leider kommt die ganze Zeit eine Fehlermeldung, "Falscher Datentyp auf der rechten Seite von +" warum? :(

siehe Anhang
 

Anhänge

  • Bildschirmfoto 2017-06-05 um 11.40.29.png
    Bildschirmfoto 2017-06-05 um 11.40.29.png
    395,8 KB · Aufrufe: 13

gutberle

Sehr aktives Mitglied
29. März 2011
1.292
402
@ninoboender - Die Fehlermeldung sagt es doch eigentlich schon. Rechts vom + Zeichen wird eine Zeichenkette erwartet und da Du nur eine Variable rechts vom + Zeichen hast, nämlich Auftragspositionen.InternePositionsnummer, ist das also keine Zeichenkette, sondern wie der Name schon sagt, eine "...nummer". Um daraus dann eine Zeichenkette zu machen, mußt Du nur Str$() drum herum setzen, also Str$(Auftragspositionen.InternePositionsnummer) und schon geht's... ;)
Ich bin mir aber auch nicht sicher, ob Du wirklich Auftragspositionen.InternePositionsnummer haben möchtest, denn das ist die fortlaufende Nummer der Bestellposition aus der Datenbanktabelle tbestellpos. Bist Du Dir sicher?
 
Ähnliche Themen
Titel Forum Antworten Datum
In Diskussion Auftrag Notizen / Historie via dotliquid ausgeben!? JTL-Workflows - Ideen, Lob und Kritik 4
Neu CustomGPT - Workflows bzw. DotLiquid erstellen mit ChatGPT User helfen Usern 16
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 5
Artikel nicht automatisch für Verkaufskanal aktivieren JTL-Wawi 1.10 1
Neu Welcher Hoster ist für JTL-Shop 5 empfehlenswert? User helfen Usern 6
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 5
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
Neu Werte für Merkmale oder Eigenschaften Amazon-Lister - Fehler und Bugs 0

Ähnliche Themen