[Gelöst] - Rabatte Filtern / Gruppieren für Reportausgabe

10. November 2008 16:20

Hallo,

ich möchte eine Preisliste mit Rabatte drucken (finde keinen Standard Report?) basierend auf die Tabelle 7004 "Sales Line Discounts".

Nun gibt es ja verschiedene Rabatt Arten (Verkaufsart = Debitor, Debitorenrabattgruppe,Alle Debitoren, Kampagne) .

Es gibt z.B. ein Artikel mit der Nummer: R02-0001, dieser hat verschiedene Mengenrabatte hinterlegt:

Verkaufsart Debitor Mindestmenge 5 Rabatt 10%
Verkaufsart Alle Debitoren Mindestmenge 5 Rabatt 15%
Verkaufsart Debitorenrabattgruppe Mindestmenge 5 Rabatt 10%

Hier listet mein Report bisher alle 3 Möglichkeiten auf(treffen alle 3 auf den von mir ausgewählten Debitor zu),
ich möchte aber für den Debitor nur einmal die Mindestmenge ausgeben, mit den höchstmöglichen % an Rabatt.

Von den obigen Möglichkeiten sollte also nur folgende ausgegeben werden:
Verkaufsart Alle Debitoren Mindestmenge 5 Rabatt 15%

So rein vom logischen her müsste ich also die Mindestmengen Gruppieren,
und von jeder Gruppierung dann den höchsten Rabatt in % auswaehlen um diesen dann im Report auszugeben.

Nur wie setze ich das um?

Danke

Gruß
Peter
Zuletzt geändert von elTorito am 12. November 2008 13:21, insgesamt 1-mal geändert.

Re: Rabatte Filtern / Gruppieren für Reportausgabe

10. November 2008 17:26

Du könntest die Rabatte in einer temporären Tabelle speichern, in der es für jeden Debitor nur einen Eintrag gibt. Da speicherst du die geringste Mindestmenge und den höchsten Rabatt, und die Daten dieser Tabelle gibst du dann aus.

Re: Rabatte Filtern / Gruppieren für Reportausgabe

11. November 2008 11:47

Hi,

die Ausgabe von Sales Line Disc erfolgt in einer Temporären Tabelle.
Das mit den "Ein Eintrag für jeden Debitor" habe ich aber nicht ganz verstanden.

Folgendes ist mir dazu noch eingefallen:

Eine Tabelle welche alle möglichen Rabatte enthaelt, in dieser sind doppelte Mindestmengen möglich (wenn Rabatt Art unterschiedlich ist).

Erstelle ich dann weitere Temporaere Tabelle wo ich dann die jeweiligen Rabattarten separat speichere, so das ich z.B. folgendes habe:

Tabelle1:
Verkaufsart Debitor Mindestmenge 5 Rabatt 10%

Tabelle 2:
Verkaufsart Alle Debitoren Mindestmenge 5 Rabatt 15%

Tabelle 3:
Verkaufsart Debitorenrabattgruppe Mindestmenge 5 Rabatt 10%

Dann müsste ich anschl. alle Datensaetze in der Sammeltabelle durchgehen und prüfen ob die jeweilige Mindestmenge auch in einer der anderen Tabellen ist und davon den Datensatz mit den größten Rabatt nehmen...

Wobei das irgendwie kompliziert und auch Performancelastig klingt ... hmm

Re: Rabatte Filtern / Gruppieren für Reportausgabe

11. November 2008 12:58

Das hatte ich dann wohl missverstanden.
Verkaufsart Debitor Mindestmenge 5 Rabatt 10%
Verkaufsart Alle Debitoren Mindestmenge 5 Rabatt 15%
Verkaufsart Debitorenrabattgruppe Mindestmenge 5 Rabatt 10%

Von den obigen Möglichkeiten sollte also nur folgende ausgegeben werden:
Verkaufsart Alle Debitoren Mindestmenge 5 Rabatt 15%

Du durchläufst also die Tabelle Sales Line Discount. Findest du dort einen Datensatz für deinen Debitor, kopierst du den in deine temporäre Sales Line Discount. Findest du einen zweiten Rabatteintrag, vergleichst du den mit dem Eintrag in der temporären Tabelle. Ist der neue Rabatt besser, ersetzt oder modifizierst du den Eintrag in der temp. Tabelle. Und im Report fragst du die temp. Tabelle ab. Darin steht dann pro Debitor max. ein Datensatz, der den besten Rabatt enthält.

Re: Rabatte Filtern / Gruppieren für Reportausgabe

11. November 2008 18:07

Hi,

danke für die Denkanstöße, habe das nun wie folgt gemacht:

Eine Temporaere Tabelle welche mir alle möglichen Rabatte in Zusammenhang mit Kunde und Artikel speichert,
diese durchlaufe ich im OnPostDataItem, dort setze ich einen FIlter auf Mindestmenge, ist eine Menge nicht vorhanden wird der
Rabatt dort temporär reingeschrieben, ist die Menge vorhanden wird geprüft welcher Rabattsatz der höhere ist, wenn größer als der eingetragene ist wird dieser modifiziert.

Jetzt noch irgendwie die Datensaetze irgendwie nach Mindestmengen sortiert ausgeben. Wenn ich das mit SETVIEW versuche bekomme ich den Fehler das ein ')' im Tableview fehlt??

Code:
SalesLineDisc1.SETVIEW('SORTING(Minimum Quantity,Type,Code)');


Danke
gruß
Peter

Re: Rabatte Filtern / Gruppieren für Reportausgabe

11. November 2008 18:35

Im SetView müssen die deutschen Captions stehen. Aber nimm doch lieber ein SetCurrentKey.

Re: Rabatte Filtern / Gruppieren für Reportausgabe

12. November 2008 13:00

McClane hat geschrieben:Im SetView müssen die deutschen Captions stehen. Aber nimm doch lieber ein SetCurrentKey.


Hmm.das mit den Captions wusste ich gar nicht ... Sachen gibts ...
Funktioniert mit deutschen Captions, habe aber nun wie du empfohlen hast SetCurrentKey benutzt.

Vielen Dank.