Knifflig: Summe - Gewicht aus einzelnen Positionen

derH

Aktives Mitglied
13. Dezember 2012
25
0
Schwabenland
Hallo,

wir versenden neben normalen Artikeln auch Artikel, die wir als Gefahrgut deklarieren müssen.
Dies habe ich über die Merkmale und den Lieferschein soweit hinbekommen.

Das Gesamtgewicht aller Positionen ist kein Problem und wird auf dem Lieferschein auch korrekt ausgedruckt.

Das Problem: ich brauche das Gesamtgewicht der Artikel, die "nur" unter Gefahrgut fallen.

Beispiel:

Pos. 1 - Artikel - 20 kg
Pos. 2 - Gefahrgut - 50 kg
Pos. 3 - Artikel - 15 kg
Pos. 4 - Artikel - 23 kg
Pos. 5 - Gefahrgut - 30 kg

Das Gesamtgewicht 138 kg hab ich:
=> str$(Sum (Lieferscheinpositionen.GewichtGesamt),0,2)

Die Kennzeichnung, dass Gefahrgut enthalten ist, habe ich durch eine benutzerdefinierte Variable realisiert.
Hier wird mittels QUERY die SQL-Datenbank nach Merkmal und Merkmalwert abgefragt.
Kennzeichnung:
if(Contains (@Gefahrgut,"X"),'Gefahrgut entalten!','Kein Gefahrgut')

Nun die Frage:
Ist es möglich, durch eine solche Abfrage das Gewicht einzelner Positionen zu summieren, wenn die Abfrage TRUE ist?
(Im o.g. Beispiel bräuchte ich die Summe der Menge aus den Positionen 2 und 5 = 80 kg)


Besten Dank schonmal für Inspirationen :)
 

derH

Aktives Mitglied
13. Dezember 2012
25
0
Schwabenland
AW: Knifflig: Summe - Gewicht aus einzelnen Positionen

Einen kleinen Schritt bin ich schon weiter gekommen:

Mit der folgenden Abfrage wird unterhalb der Positionenliste eine Übersichtsliste "nur" mit den Gefahrgutartikeln und dem jeweiligen Positionsgewicht gedruckt.

if(Contains (@Gefahrgut,"X"),SetVar('Gefmenge',str$(Lieferscheinpositionen.GewichtGesamt,0,0)),"")

Lt. obigem Beispiel werden also die Positionen 2 und 5 mit Gewicht gedruckt. (Die anderen Positionen werden nicht berücksichtigt).

Jetzt bräuchte ich nur noch eine Lösung hierfür:
- WIE lässt sich die Variable 'Gefmenge' aufaddieren?

Danke
 

derH

Aktives Mitglied
13. Dezember 2012
25
0
Schwabenland
AW: Knifflig: Summe - Gewicht aus einzelnen Positionen

Selbstgespräche sind doch auch mal nett :)

Bin einen Schritt weiter gekommen. Oder auch nicht...


Für mein Beispiel oben funktioniert die Sache so (Formel in der Datenzeile):

cond(Contains (@Gefahrgut,"X"),str$(SetVar('Gefmengeges',sum(val(GetVar('Gefmengeges') + cond(Contains (@Gefahrgut,"X"),GetVar('Gefmenge'),GetVar('Gefmengeges')) + cond(Contains (@Gefahrgut,"X"),Lieferscheinpositionen.GewichtGesamt,GetVar('Gefmengeges')))))),GetVar('Gefmengeges'))

Formel in der Fußzeile:

GetVar('Gefmengeges')


Ausgabe im Lieferschein:
Pos. 2 - Gefahrgut - 50 kg => 0
Pos. 5 - Gefahrgut - 30 kg => 80,00000

Gefahrgutmenge: 80,00

------------------------------------------------------------------

Nun zum Problem 1:
In einem anderen Beispiel habe ich folgende Werte genommen:

Pos. 1 - Gefahrgut - 500 kg
Pos. 2 - Artikel - 350 kg
Pos. 3 - Gefahrgut - 50 kg
Pos. 4 - Gefahrgut - 50 kg
Pos. 5 - Artikel - 20 kg
Pos. 6 - Artikel - 25 kg
Pos. 7 - Artikel - 80 kg


Ausgabe im Lieferschein:
Pos. 1 - Gefahrgut - 500 kg => 0
Pos. 3 - Gefahrgut - 50 kg => 550
Pos. 4 - Gefahrgut - 50 kg => 650

Gefahrgutmenge: 650


Scheint, als würde eine Position mit 50 kg 2x gerechnet werden.

------------------------------------------------------------------

Problem 2:
Bei einem Beispiel mit nur einen Position Gefahrgut:

Pos. 1 - Gefahrgut - 200 kg
Pos. 2 - Artikel - 100 kg
Pos. 3 - Artikel - 40 kg


Ausgabe im Lieferschein:
Pos. 1 - Gefahrgut - 200 kg => 0

Gefahrgutmenge: 0


Scheint, als würde hier keine Addition stattfinden, weil eine weitere Position fehlt.


Fazit:
Ich bin mir sicher, es liegt an der Formel zur Berechnung der Gefahrgutmenge.
Diese sollte ab der ersten Position anfangen zu rechnen und nicht erst in der zweiten Position.


Hat jemand eine Idee?
 

derH

Aktives Mitglied
13. Dezember 2012
25
0
Schwabenland
AW: Knifflig: Summe - Gewicht aus einzelnen Positionen

Hi,

ich hänge wirklich in der Luft. Von daher wäre es nicht schlecht, wenn wenigstens einer der Profis eine kurze Antwort geben könnte.
Auch wenn es nur heisst:

- geht nicht
- Sonderwünsche nur gegen Bezahlung

Dann könnte ich mir die vielen Stunden sparen, die ich durch Selbstversuche verbrate.
Im Moment werden die fehlenden Daten nämlich noch manuell auf den Lieferscheinen eingefügt, was echt nervig und zeitaufwändig ist.
Gibt es evtl. in der neuen Version eine Möglichkeit? Im Prinzip wollte ich das Thema hier erst geklärt haben, bevor ich mich an das Update auf die aktuellste JTL Version mache.

Es war hier im Forum schon einmal die Frage, ob man in Kategorien aufteilen kann. Der Thread damals verlief leider auch ins Leere und endete mit dem Vorschlag einer Direkt QUERY-Abfrage.
Im Prinzip hab ich die Positionen ja schon aussortiert, nur an der Berechnung hakt es noch. Leider ist der Formulardesigner in der Anwendung von Formeln etwas hakelig und nicht so einfach zu programmieren wie ein PHP-Script oder eine Excel-Berechnung.

Viele Grüße ins Forum
in der Hoffnung auf kurze Antwort