Inaktiv Variable die mitzählt, möglich?

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.294
405
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
3
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.294
405
@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
3
: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.294
405
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
3
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
3
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.294
405
@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.579
771
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.579
771
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.294
405
... 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 Was ist die korrekte Variable für die letzte Seite eines Artikellistings? Betrieb / Pflege von JTL-Shop 11
Neu Variable für Maßeinheit gesucht Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 1
Formulareditor Vorlagen Variable Report.Company.InternalId geändert JTL-Wawi 1.11 0
Neu SPAM durch die Eingabeseite bei den Kundendaten JTL-Shop - Fehler und Bugs 15
Nach Update auf 1.11.6 werden die Preisänderung nicht mehr von der Wawi an Amazon übertragen JTL-Wawi 1.11 0
Neu eBay Webinar: Dein Business ist bereit für die Weltbühne? News, Events und Umfragen 0
Neu Es werden nicht die gesamter Menge einer Bestellung für die Produktion übernommen; die Bestellung bleibt teilgeliefert. JTL-Plan&Produce - Fehler und Bugs 0
JTL Fulfillment Network Reservierte Aufträge, die nicht gelöscht werden können JTL-Wawi 1.10 0
Meine Bestellungen sind in einer Pickliste "verschollen" - WIE bekomme ich sie in die Wawi-Pickliste??? JTL-Wawi 1.11 2
Neu Ist es möglich in WMS Picklistenvorlagen auszublenden, die gerade keinen gültigen Auftrag haben? Arbeitsabläufe in JTL-WMS / JTL-Packtisch+ 1
Neu JTL Fulfillment Network Reservierte Aufträge, die nicht gelöscht werden können Schnittstellen Import / Export 1
Update von 1.9.6.5 auf die 1.11.5 problemlos möglich? JTL-Wawi 1.11 7
Webinar: Verkaufe über die Landesgrenzen hinaus – ist dein Business bereit für die Weltbühne? Messen, Stammtische und interessante Events 0
Neu Kann die Verkaufsstatistik auch den aktuellen Bestand angeben? User helfen Usern - Fragen zu JTL-Wawi 1
Neu Wie wird die Seite "suche nach:" erzeugt? Allgemeine Fragen zu JTL-Shop 4
Neu Mit Ameise nur einen Artikel & die dazu gehörenden Varianten exportieren - wie? Schnittstellen Import / Export 3
Neu Die gulte alte Variante - diesmal nachträglich User helfen Usern - Fragen zu JTL-Wawi 5
Neu Frage an die Shopify Nutzer bzgl. Zahlarten Shopify-Connector 0
Neu Bestellung aus JTL-Shop wird nicht in die Wawi übernommen Allgemeine Fragen zu JTL-Shop 1
Neu Export/Import aller Amazon Angebote über die JTL-Ameise JTL-Ameise - Fehler und Bugs 1
Neu 🚨 Hinweis für JTL-Händler, die Taxdoo nutzen News, Events und Umfragen 1
Neu Gespeicherter Warenkorb - bleiben die Artikel reserviert? Betrieb / Pflege von JTL-Shop 2
Neu Nach Update komme ich nicht mehr auf die Shop Seite Installation / Updates von JTL-Shop 6
Neu Nicht alle Artikel einer Bestellung werden an die WaWi übermittelt Amazon-Anbindung - Fehler und Bugs 3
Neu Frage in die Runde, wie handhabt ihr einen Datenrestore? Arbeitsabläufe in JTL-Wawi 17
Neu Die Sequenz enthält kein übereinstimmendes Element. JTL-Wawi - Fehler und Bugs 1
Neu Artikelbilder ausgetauscht, jetzt sind die matschig. JTL-Shop - Fehler und Bugs 2
Neu JTL-Wawi Aufträge die mit JTL-POS bezahlt wurde tauchen im Tagenabschluss auf JTL-POS - Fehler und Bugs 7
Neu Einfügen eines Bildes in die Shopartikel-Reihe Allgemeine Fragen zu JTL-Shop 2
Wichtig 💡Die Retourenplattform für Webshops – Expertise von unserem neuen Partner Returnless News, Events und Umfragen 0
Artikelpflege - Wo die MPN anlegen? JTL-Wawi 1.9 2
Neu Datenabgleich schlägt fehl, wenn Hersteller zu Artikeln zugewiesen sind oder die Hersteller Bilder haben. WooCommerce-Connector 1
Kann ich mit dieser SQL Version die neue WaWi 1.11.1 installieren? JTL-Wawi 1.11 2
Buchhaltung vollautomatisiert für die Schweiz JTL-Wawi 1.10 10
Neu Gutscheine werden nicht an die WaWi übermittelt Modified eCommerce-Connector 3

Ähnliche Themen