[gelöst] Auftragsreport

23. Februar 2009 18:00

Hallo!

Ich habe ein Problem bei der Report programmierung.

Der Report besteht aus zwei Data-Items. Einmal Sales Header und einmal Sales Header Archive.

Ich möchte verhindern das die archivierten Aufträge die in Sales Header noch vorhanden sind (also quasi noch aktuell sind) nicht angezeigt werden.

Dafür habe ich im

Sales Header OnAfterRecord() folgendes geschrieben um einen Filter auszubauen.
Code:
filter:="Sales Header"."no"+' |'+filter;
filterlaenge:=strlen(filter);


Im Sales Header Archive habe ich folgendes.
Sales Header OnPreDataItem()
Code:
if filterlaenge<>0 then filter:=delstr(filter,filterlaenge,1);
//löscht das letzte nicht notwendige |
"sales header archive".setfilter("sales header archive"."no.",filter);


Ich habe mir mal den Wert der Variable Filter anzeigen lassen und dort steht das Filterkriterium richtig drin.

Aber er zeigt trotzdem alle Datensätze an.

Könnt ihr mir weiterhelfen?

mfg

zimbo
Zuletzt geändert von zimbo am 5. März 2009 11:46, insgesamt 1-mal geändert.

Re: Auftragsreport

23. Februar 2009 19:04

Hallo!

Ich hätte ein paar Verständnisfragen:
1. Was verstehst du denn unter
"Ich möchte verhindern das die archivierten Aufträge die in Sales Header noch vorhanden sind (also quasi noch aktuell sind) nicht angezeigt werden." bzw.
was soll der Report als Ergebnis liefern.
2. Die Lösung mit deiner Variablen "Filter", die du ja wegen der maximalen Länge einer Textvariablen nicht uneingeschränkt mit Auftragsnummern füllen kannst,
kann eigentlich bei einer größeren Menge an Aufträgen nicht funktionieren.
3. Warum "holst" du dir im DataItem des archivierten Verkaufskopfes nicht den entsprechenden Verkaufskopf und arbeitest je nach Ergebnis mit dem Befehl
CurrReport.Skip.

Wichtig wäre aber eine Antwort auf die erste Frage.

Gruß
StephanS

Re: Auftragsreport

24. Februar 2009 10:13

Hallo!

Zum Verständnis. Unser Vertriebsleiter möchte einen Report über alle Aufträge. Dieser Report soll nach dem Verkäufercode gruppiert werden.
Es sollen quasi je Vertriebsmitarbeiter die Aufträge (offene sowie archivierte) angezeigt werden. Dies läuft auch soweit. Da aber jeder Vertriebler offene und archivierte Aufträge hat, muss ich meiner Meinung nach in beiden Tabellen mir die Werte raussuchen. Im Report werden je Verkäufercode Summen gebildet. Das Problem ist, das wenn ein offener Auftrag schon eine archivierte Version hat. Denn dann wird der Betrag doppelt gerechnet. Und das muss ich verhindern. Deswegen baue ich mir diesen Filterstring zusammen um dann die entsprechenden archivierten Aufträge "weg zu filtern". Dafür habe ich mittlerweile auch ne Lösung.

Unlgeich ist eine Textvariable mit dem Wert := <>

Sales Header
Code:
filter:="Sales Header"."no."+'&'+filter;
filterlaenge:=strlen(filter)


Sales Archiv
Code:
filter:=ungleich+filter;
"sales header archive".setfilter("Sales Header Archive"."no.", filter);


Jetzt habe ich nur weitere Probleme. StephanS hat es ja schon angesprochen das das nicht lange funktionieren wird wegen der maximalen Länge einer Textvariablen. Hat da einer ne Lösung für?

Mein weiteres Problem ist wenn es nur noch den archivierten Auftrag in mehreren Version gibt rechnet er ja auch doppelt. Hat einer eine Ahnung wie ich das verhindern kann?

mfg

zimbo

Re: Auftragsreport

25. Februar 2009 14:43

keiner eine Idee?

Re: Auftragsreport

25. Februar 2009 15:50

Hallo,

wenn ich es richtig verstehe, willst Du arch. Aufträge nur ausgeben, wenn es dazu keinen Auftrag mehr gibt.
Um das zu erreichen, könntest Du z. B. bei der Verarbeitung der Aufträge die Auftragsnummern in eine temp. Tabelle wegschreiben und beim Verarbeiten der arch. Aufträge prüfen, ob die Auftragsnummer in der temp. Tabelle enthalten ist. Wenn ja, dann mit SKIP den arch. Auftrag überspringen. Alternativ kannst Du auch bei jedem arch. Auftrag prüfen, ob Du zu seiner Auftragsnummer noch einen Auftrag findest und dann ggf. den arch. Auftrag mit SKIP überspringen.

Von den arch. Aufträgen solltest Du wahrscheinlich nur den mit der höchsten Versionsnummer nehmen. Das kann aber davon abhängen, zu welchen Zeitpunkten ein Auftrag archiviert wird.

Die Frage ist auch, welche Daten sind auszugeben und wie detailliert soll die Ausgabe sein.

Re: Auftragsreport

3. März 2009 18:19

gute Idee.
Ich versuche das mal so umzusetzen..

Re: Auftragsreport

5. März 2009 11:46

So wie es wolger beschrieben hat hat es gut geklappt.

Nochmals besten dank.

zimbo