Inaktiv Variable die mitzählt, möglich?

  • Hinweis: Am 25.02.2025 zwischen 21:30 u. 22:30 Uhr - Einschränkungen beim Login und Erreichen folgender Dienste: FFN, Kundencenter, Admin, JTL-Shop, JTL-Wawi, Lizenzserver, ISI Gateway, Vouchers, Kassensysteme, Plan&Produce, Versand. Grund dafür ist ein Major Upgrade des OAuth-Dienstes. Vielen Dank für euer Verständnis!

K3Ks

Gut bekanntes Mitglied
26. März 2008
186
10
Hallo,

ist es möglich im Formulareditor eine eigene Variable zu nutzen, die beim Lieferschein zB mitzählt?

Beispiel: 3 Positionen am Lieferschein zu jeweils 5 Stk. Nun soll nach/während des Abarbeitens des Berichtscontainers in einer Variable die Zahl 15 gespeichert bzw. verfügbar sein?

Ist so etwas möglich oder sind derartige Berechnungen nicht im Formulareditor drinnen?


Danke & LG,
Christian
 

K3Ks

Gut bekanntes Mitglied
26. März 2008
186
10
Hallo!

So, ich bin fündig geworden mit SetVar und GetVar, aber das Verhalten dieser beiden Variablen verstehe ich nicht.
Wenn ich folgendes im Formulareditor in der Datenzelle einer Tabelle eingebe, kann ich das Verhalten nicht nachvollziehen:

SetVar("TMP",54,True) + ... SetVar("VP2"),GetVar("TMP"),True)

Kommt raus 54 .. klar

So, und nun das Phänomen:

SetVar("TMP",54,True) + ... SetVar("VP2"),GetVar("VP2")+GetVar("TMP"),True)

Ergibt .. 108 .. ja, ne is klar?!

Sprich er liest zuerst VP2 aus, dies ist 0, schreibt dann 54 rein, und liest diese scheinbar nochmal aus und schreibt erneut 54 rein und somit kommt 108 raus?!
Wie kann ich dieses Phänomen bzw. Verhalten umgehen?

Danke
 

K3Ks

Gut bekanntes Mitglied
26. März 2008
186
10
Ja durch zwei Teilen ist eine Option, Problem sehe ich nur wenn dies über mehrere Zwischensummen läuft ;)
 

gutberle

Sehr aktives Mitglied
29. März 2011
1.292
399
Hallo @K3Ks,

tut mir leid, aber hier kann ich Dir nicht helfen, denn die SetVar() und GetVar() Funktionen sind leider unbrauchbar. Da kannst Du lange rumprobieren und vielleicht klappt es sogar mal, dann solltest Du die Wawi aber am Besten nie wieder zumachen, denn beim nächsten Start werden die Karten wieder neu gemischt... :confused:

Am besten und einfachsten kannst Du solchen simplen Zählaufgaben durch eine JTL_DirectQuery() mit SQL Code erledigen. Dazu findest Du (auch) von mir hier im Forum einige Beispiele, teilweise auch mit direktem Bezug zum Ersatz für SetVar() und GetVar().

Nachtrag: Warum eine JTL_DirectQuery() und nicht zum Beispiel eine Summenvariable in List & Label? Weil die auch völlig seltsam zählen und ich noch nicht dahinter gestiegen bin, was da los ist. SQL funktioniert IMMER!!!

Gruß,
Ingmar
 

Eiko

Aktives Mitglied
26. Juni 2017
58
2
Hallo @K3Ks,

Am besten und einfachsten kannst Du solchen simplen Zählaufgaben durch eine JTL_DirectQuery() mit SQL Code erledigen. Dazu findest Du (auch) von mir hier im Forum einige Beispiele, teilweise auch mit direktem Bezug zum Ersatz für SetVar() und GetVar().

Gruß,
Ingmar

Das ist ja eine schöne Funktion. :)

Also in der Art JTL_DirectQuery ("SELECT (5+1)")?
 

gutberle

Sehr aktives Mitglied
29. März 2011
1.292
399
@Eiko - Der war gut... :D

Aber nur für den Fall, dass Du das Ernst gemeint hast, klar, das ginge auch, aber ich meinte das Zählen und Sortieren, Aussortieren auf Basis der zugehörigen Bestellpositionen in der Datenbank. Meistens geht sowas dort ganz einfach, schwierig wird's erst dann wenn Stücklisten im Spiel sind, denn die sind in der Liste der Bestellpositionen zusätzlich zum Vaterartikel aufgelistet und dann muss man "intelligent" aussortieren, was nur über mehrere JOINs geht.

Ein anderer Forumsnutzer (@ThorstenR1) hat mir in der Zwischenzeit aber auch noch etwas gezeigt, das ich noch gar nicht kannte und zwar, dass die List & Label Befehle Sum(), Count() und CountIf() jeweils einen zweiten und optionalen Boolean Parameter, also True oder False akzeptieren, der festlegt, ob die gezählten oder summierten Werte nach der Ausgabe gelöscht werden sollen oder nicht.

Vielleicht läßt sich das Ganze damit ja sogar noch viel einfacher realisieren.
 

Eiko

Aktives Mitglied
26. Juni 2017
58
2
:D
Das war mehr beispielhaft gemeint. Ich müsste mal schauen, was mit JTL_DirectQuery so alles möglich ist, ob man also bspw. Variablen irgendwie speichern kann. Das zusätzliche Problem bei SetVar und GetVar ist mMn nämlich, dass die nicht innerhalb einer Tabelle funktionieren. Das in SetVar gespeicherte kann ich nur in einer anderen Tabelle abrufen.

Ich wollte letztens in der Positionsliste den Positionszähler dahingehend verändern, dass er für Freitextzeilen, Versandzeilen etc. keine Positionsnummer anzeigt und aber auch intern entsprechend 1 abzieht, damit der Zähler dann weiter fortlaufend ist. Ich habe über Summenvariablen, Get- und SetVar usw. keinen Weg gefunden und bin fast dran verzweifelt. Vielleicht geht es ja jetzt mit einer SQL-Query.
 

gutberle

Sehr aktives Mitglied
29. März 2011
1.292
399
Hallo Eiko,

vergiss SetVar() und GetVar(), denn die funktionieren dann doch schon "eigentlich überall", nur nicht immer und nicht immer gleich gut. Mal geht's und mal nicht, aber die beiden Funktionen haben auch ganz grundsätzliche und gravierende Einschränkungen. Dazu habe ich mich an anderer Stelle hier im Forum ausgelassen. Die beiden Funktionen sind entweder schon von Combit schlecht in L&L angelegt, oder aber JTL hat's bei der Implementierung der eigenen Objekte vermasselt, kann ich nicht sagen, ist aber auch egal, weil meine langjährige Erfahrung mit JTL ganz klar zeigt, dass wir da zumindest nicht auf schnelle Abhilfe hoffen dürfen, also Plan B...

Mit den JTL_DirectQuery() und vor allem dem JTL_DirectTableQuery() Befehl geht viel!!! - Wenn man erst anfängt, sich damit zu beschäftigen, denkt man noch so in etwa String=1Zeile, also dass das, was man übergibt begrenzt ist, das ist aber definitiv nicht so. Letztlich ist hier ein Übergabestring nicht eine einzige Zeile bis zu einem "Return", sondern alles, was in die Anführungszeichen eingeschlossen ist und das kann auch ein komplettes SQL Programm über 100 Zeilen sein.

Die selektiven Positionsnummern sind z.B. ganz leicht mit einer JTL_DirectQuery() zu erschlagen, here we go...
Code:
Fstr$(JTL_DirectQuery("SELECT COUNT(nSort) FROM tbestellpos WHERE nSort<"+ToString$(Count(Auftragspositionen.InterneAuftragspositionnummer, false)+1)+" AND nType=1 AND tBestellung_kBestellung="+ToString$(Vorgang.InterneAuftragsnummer)),"##&")
... und damit dieser unhandliche Query-Text nicht überall in der Vorlage steht, erzeugst Du Dir im Bereich Projekt > Benutzervariablen eine Variable namens @PositionsNummer und schreibst da den Coden rein. Jedes Mal, wenn Du dann im Vorlagentext @PositionsNummer ansprichst, wird der Code ausgeführt und die aktuelle Positionsnummer geholt.

Dann bleibt nur noch das Problem, dass die Query immer den Zähler "bis hierher" zurückliefert, Du also noch dafür Sorge tragen mußt, dass die Positionsnummer auch nur für reguläre Artikel angezeigt wird. Die Abfrage, ob der aktuelle Artikel ein regulärer und keine Freiposition oder Versandposition ist, geht mit folgendem Code ...
Code:
JTL_DirectQuery("SELECT nType FROM tbestellpos WHERE kBestellPos="+ToString$(Auftragspositionen.InterneAuftragspositionnummer))<>1
... und auch hier legst Du Dir wieder eine Benutzervariable mit Namen @doNotShow an und gibst ihr den obigen Code.

Damit reduziert sich die Formel, die Du unten im Berichtscontainer für die Positionsnummern verwendest, auf gerade mal ...
Code:
Cond(@doNotShow,"",@PositionsNummer)

Das war's und alles was es dazu braucht ist ein guter portabler SQL Editor wie HeidiSQL und ein bißchen Zeit, um die Datenbankstruktur der Wawi zumindest in Grundzügen zu begreifen... :)

Gruß,
Ingmar
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Eiko

Eiko

Aktives Mitglied
26. Juni 2017
58
2
Das funktioniert perfekt, danke dir. :)

Ich hoffe, es ist ok, wenn ich hier abschweifend noch kurz weiterschreibe? Ich hab es noch an meine Bedürfnisse angepasst, weil Freipositionen ja schon eine Positionsnummer haben sollen. Was nicht dastehen soll sind die Versandpositionen und meine selbst definierten Freitextzeilen, also Zeilen/Texte innerhalb der Positionsliste, welche über die ganze Breite gehen. Hierfür habe ich mir einen Artikel gemacht und der Text steht im Hinweis.

Wenn ich die Tabelle tbestellpos richtig verstehe, dann sind Artikel nType=1, Versandpositionen nType=2 und Freipositionen nType=0?

HeidiSQL muss ich mir mal anschauen, bisher verwende ich eigentlich ausschließlich das Management Studio vom SQL-Server.
 

Eiko

Aktives Mitglied
26. Juni 2017
58
2
Hallo,

ist es möglich im Formulareditor eine eigene Variable zu nutzen, die beim Lieferschein zB mitzählt?

Beispiel: 3 Positionen am Lieferschein zu jeweils 5 Stk. Nun soll nach/während des Abarbeitens des Berichtscontainers in einer Variable die Zahl 15 gespeichert bzw. verfügbar sein?

Ist so etwas möglich oder sind derartige Berechnungen nicht im Formulareditor drinnen?


Danke & LG,
Christian

Damit das nicht ganz untergeht - Geht das nicht mit einer simplen Summenvariable, welche
Code:
Auftragspositionen.Menge/2
zum Inhalt hat? Die addiert doch dann bei jeder Berichtsposition die Menge zu der Variable und du hättest dein 3 Positionen zu 5 Artikeln=15 in der Summenvariable stehen.
 

gutberle

Sehr aktives Mitglied
29. März 2011
1.292
399
@Eiko - Ja, die nTypes von oben sind korrekt. Ob es noch mehr gibt, kann ich nicht sagen. Das SQL Management Studio ist wirklich mächtig, aber auch mächtig groß und behäbig. HeidiSQL ist super klein, gibt es portabel und es kann trotzdem alles wichtige wie Favoriten, suchen, filtern, Code Schnipsel, etc. - In manchen Dingen gäbe es besseres, wie das auch erwähnte dBeaver, aber in der Summe ist HeidiSQL für mich inzwischen so eine Art Schweizer Messer geworden. Zum ernsten "SQL Coden" würde ich was anderes nehmen, aber bis ~20 Zeilen Code ist es wirklich gut ...

@K3Ks - Was die Frage nach den Summenvariablen angeht, hatte ich oben ja schon geschrieben, dass @ThorstenR1 mir gezeigt hat, dass die List & Label Funktionen Sum(Ausdruck,[Boolean]), Count(Ausdruck,[Boolean]) und CountIf(Ausdruck,[Boolean]) jeweils diesen in eckigen Klammern als optional deklarierten Boolean Parameter haben, mit dem man steuern kann, ob das Anzeigen einer dieser Funktionen die Zählung/Summierung zurücksetzt (True) oder nicht (False).

Der Defaultwert ist hierbei nämlich True, was Löschen/Zurücksetzen bedeutet und da der Parameter auch noch Optional ist und weder in der Online Hilfe noch im PDF Manual mehr als erwähnt wird, habe ich ihn bisher nicht wahrgenommen und die Funktionen deshalb als eher untauglich für diese Zwecke abgetan. Das ist aber weit gefehlt, denn gibt man z.B. ...
Code:
Sum(Lieferscheinpositionen.Menge,False)
... als Formel ein (also mit False), dann zählt die List & Label Funktion brav weiter auch wenn man zwischendurch ihren aktuellen Wert abfragt und/oder ausgibt. Das heißt, dass dieser klitzekleine Code wahrscheinlich die exakte Antwort auf Deine ursprüngliche Frage ist!

P.S. Man könnte sie auch für solche Sache, wie sie @Eiko haben will, verwenden, aber ich denke, sie sind dann am Besten geeignet, wenn die relevanten Variablen, die sie zählen oder summieren sollen, alle schon "einfach so" in der Vorlage vorliegen.

Gruß,
Ingmar
 
Zuletzt bearbeitet:

wawi-dl

Sehr aktives Mitglied
29. April 2008
6.275
688
Für nType gibt es verschiedene Codes, die man sich mühsam sammeln muss ... eine Doku seitens JTL wäre hierzu hilfreich.

nTypes:
0 = Freitext (auch Zusatzverpackung möglich?!)
1 = Artikel
2 = Versandposition
3 = Gutschein / Kupon
4 = ???
5 = Zahlungsrabatt (JTL Shop)
6 = Inselzuschlag / Spedition (JTL Shop)
7 = ???
8 = Zahlungsgebühr (JTL Shop, Nachnahme)
9 = Funktionsattribut
 

wawi-dl

Sehr aktives Mitglied
29. April 2008
6.275
688
MEGA, hatte ich schon mal als Wunsch geäußert ;)
Bitte dann die Liste ergänzen, das würde ungemein HELFEN!
 

SebastianB

Moderator
Mitarbeiter
6. November 2012
2.084
339
Hallo,

die Positionstypen werden letztlich vom Shopsystem festgelegt. Der Wawi sind die (bis auf wenige Ausnahmen) relativ egal. In der JTL-Wawi relevant sind
0 = Freiposition
1 = Artikel mit Bezug zu tArtikel
2 = Versandposition
und noch
11 = Gratisgeschenk

Alle anderen Positionstypen werden in der JTL-Wawi schlicht ignoriert (bzw. halt einfach durchgeschliffen).

Es kann also sein, dass manche Positionstypen mehrfach vorkommen, aktuell gar nicht mehr vorkommen oder neue hinzukommen.

Die Positionstypen die der JTL- Shop sendet kann man im Quelltext vom JTL-Shop nachschauen. Die Positionstypen die über Fremdconnectoren reinkommen kenne ich auch nicht.

Mein Stand ist (und der muss durchaus nicht korrekt oder vollständig sein, da es wie gesagt für die Wawi völlig egal ist):
3 = Coupon
4 = Gutschein
5 = Zahlungszuschlag
6 = Versandzuschlag
7 = Neukundencoupon
8 = Nachnahmegebühr
9 = Versandzuschlag für Artikel
10 = Verpackungsgebühr
11 = Gratisgeschenk
12 = TrustedShops
13 = Zinsaufschlag
14 = Bearbeitungsgebühr
 

gutberle

Sehr aktives Mitglied
29. März 2011
1.292
399
... und ich auch nicht, aber Kunststück, ich habe mich ja auch lange nicht so weit aus dem Fenster gelehnt, wie Du... :rolleyes:
 
Ähnliche Themen
Titel Forum Antworten Datum
Neu Welche Template-Variable gibt die aktuelle Kategorie-ID zurück? Technische Fragen zu Plugins und Templates 3
Neu In Workflow Variable definieren und nachträglich den Wert verändern? User helfen Usern - Fragen zu JTL-Wawi 6
Gelöst Variable für das Zählprotokoll Allgemeine Fragen zu JTL-POS 1
Neu Hilfe bei korrekter Variable für Umsatzsteuer-Summe und dotLiquid-Übersicht Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 0
email Vorlage eigene Felder Variable English JTL-Wawi 1.9 6
Wo steht jetzt die Seriennummer in der Rechnungsübersicht? JTL-Wawi 1.9 0
Neu Suche SQL Abfrage für Hersteller die keinem Artikel mehr zugeordnet sind. User helfen Usern - Fragen zu JTL-Wawi 6
Artikel filtern, die nicht auf Kaufland.de gelistet sind. JTL-Wawi 1.9 1
Neu Kunde zusammenführen - Die Kunden haben unterschiedliche Konten im selben Onlineshop User helfen Usern - Fragen zu JTL-Wawi 0
Neu Shopify Connector: Wo ist die benutzerdefinierte App? Shopify-Connector 0
Neu Artikelanzahl für die Startedition Allgemeine Fragen zu JTL-Shop 5
Neu Die Tabelle tkampagnevorgang verlangsamt den Shop Allgemeine Fragen zu JTL-Shop 1
Wie wird der Sonderpreis auf die Kindartikel übertragen? JTL-Wawi 1.9 4
Neu Über die Set Komponente den Produktionsplan finden JTL-Plan&Produce - Ideen, Lob und Kritik 0
Neu Workflow : Bei Artikel die ein Erscheinungsdatum haben Denn Auftrag Farblich markieren Arbeitsabläufe in JTL-Wawi 7
In Diskussion Workflow für die Abfrage des noch offenen Kreditlimits JTL-Workflows - Ideen, Lob und Kritik 2
Beantwortet "PDFs direkt an Rechnung speichern" . .. kann mir hier jemand sagen wo, oder wie die abgelegt werden? User helfen Usern - Fragen zu JTL-Wawi 2
Verwiesen an Servicepartner Worfkflow, um die UK Bestellungen über amazon auf "Rechnungserstellung extern" setzen. JTL-Workflows - Fehler und Bugs 1
dbo.tRestApiRequestLog löschen nicht möglich über die JTL Admin Oberfläche JTL-Wawi 1.9 0
Neu beim Update auf die 5.4.0 erhalte wir folgende Fehlermeldung: JTL-Shop - Fehler und Bugs 4
Neu Apple Pay in PayPal Plugin für die Schweiz Plugins für JTL-Shop 4
Neu Downloads über die standardmäßig angelegte Download Seite bereitstellen Betrieb / Pflege von JTL-Shop 3
Neu Die wichtigsten Shopify/JTL-Wawi Tipps für Anfänger (wie mich) Shopify-Connector 9
Neu Produktionszettel für die Kommissionierung JTL-Plan&Produce - Ideen, Lob und Kritik 5
Neu Import von Kategorien geht nur für die Standrdsprache. Zweite Sprache geht leider nicht. JTL-Ameise - Fehler und Bugs 4
Neu Verwaltet Greyhound mit WaWi 1.9 auch die Lieferanten, oder nur Kunden? User helfen Usern - Fragen zu JTL-Wawi 4
Neu nur die Infos zu Artikelbilder in CSV exportieren JTL Ameise - Eigene Exporte 43
Neu Suchen Freelancer für Support JTL wawi und shop sowie Anbindung an die Markplätze Dienstleistung, Jobs und Ähnliches 1
Neu Seit update auf version 5.4 habe ich den Fehler das die Shop class nicht mehr gefunden wird. Technische Fragen zu Plugins und Templates 4
Die Variation kann nicht angelegt werden! JTL-Wawi 1.9 3
Änderung der Lieferadresse einer Verkaufsbestellung über die JTL-Wawi API JTL-Wawi 1.9 0
Neu Kennt / nutzt jemand die MagicBOX (Fotobox) aus Holland ? User helfen Usern 0
Neu Änderung der Lieferadresse einer Verkaufsbestellung über die JTL-Wawi API User helfen Usern - Fragen zu JTL-Wawi 0
Neu Amazon - Änderung bei Versand in die Schweiz - Änderungen notwendig ?! Amazon-Anbindung - Ideen, Lob und Kritik 9
Falscher "Gewinn"-Eintrag matscht mir in die Statistik JTL-Wawi 1.9 1
Neu BUG: Seit JTL 1.9.6.4 stürzen die Workflows im Worker wieder regelmäßig ab JTL-Wawi - Fehler und Bugs 2
Neu Leere Hersteller Felder über die Suche finden (GPSR) User helfen Usern - Fragen zu JTL-Wawi 2
Neu Bestände eines Artikels, die mindestens ein MHD von x Tagen aufweisen Eigene Übersichten in der JTL-Wawi 5
Neu Neues Lager, Artikel sind angelegt, Bestände auf 0, wie pflege ich jetzt die Bestände korrekt ein ? User helfen Usern - Fragen zu JTL-Wawi 6
Neu Kann man in JTL-Wawi die Versandkosten basierend auf der Entfernung automatisch berechnen? JTL-ShippingLabels - Fehler und Bugs 1
Neu [Error][Code:21920403] Die angegebene E-Mail-Adresse ist falsch formatiert. eBay-Anbindung - Fehler und Bugs 6
Wie überträgt man final die GPSR Daten an Kaufland? kaufland.de - Anbindung (SCX) 4
Neu [Error][Code:21920427] Adressangaben für die verantwortliche Person sind unvollständig. Geben Sie für die Adresse bitte die Straße, den Ort, die PLZ eBay-Anbindung - Fehler und Bugs 4
Sollte man jetzt auf die Wawi 1.9.6.5 updaten? JTL-Wawi 1.9 33
Versandklassen von Amazon in die WaWi übertragen JTL-Wawi 1.9 3
Neu JTL-Wawi 1.9.6.5 - GPSR: Bei Amazon wird kein Bild in die GPSR-Informationen hochgeladen, wo muss dies angegeben werden? Amazon-Anbindung - Fehler und Bugs 0
Neu JTL-Wawi 1.9.6.5 - GPSR: Bei Amazon wird der Hersteller falsch gefüllt und die Verantwortliche Person ist LEER - eBay/JTL-Shop sind korrekt Amazon-Anbindung - Fehler und Bugs 27
Neu Die Sendungserstellung wurde vorübergehend deaktiviert Amazon-Anbindung - Fehler und Bugs 4
Neu Id für die Zonen im Banner herrausfinden Allgemeine Fragen zu JTL-Shop 0
Neu BadRequest - ich verstehe die Welt nicht mehr Einrichtung JTL-Shop5 2

Ähnliche Themen