[GELÖST] Filter übernehmen

18. Dezember 2008 15:41

Hallo Leute,

habe ein ganz kniffliges Problem:

In den Bestellungen gibt es ja die Bestellungsübersicht, wo alle Bestellungen aufgelistet werden.
Jetzt muss ich einen Assistenten machen, der auf dieser Bestellungsübersicht Filter vergibt.

Ich habe einen neuen Button in der Form Bestellungsübersicht gemacht.

Wie kann ich jetzt machen, dass der aktuelle Reccord in die Form (Assistenten) übernommen wird und ich da meine SETRANGE machen kann? Wichtig ist, dass sich diese SETRANGE Funktionen von meinen Assistenten auf die aktuelle Übersicht auswirken.

Grüße
Zuletzt geändert von Rabe_Nitz am 18. Dezember 2008 17:40, insgesamt 1-mal geändert.

Re: Filter übernehmen

18. Dezember 2008 16:14

Probier mal aus, was passiert, wenn du wirklich nur SETRANGE(...) schreibst :-)

Denn: SETRANGE(...) ist gleich mit Rec.SETRANGE(...) ist gleich den aktuellen Datensätzen auf der Form.

Es kann evtl. notwendig sein, dass du nach deinem SETRANGE entweder ein CurrForm.UPDATE(FALSE) oder FIND('-') ausführen musst, damit der Filter wirksam wird.

Re: Filter übernehmen

18. Dezember 2008 16:19

Das verstehe ich jetzt nicht genau.

Also beim Button habe ich folgenden CODE hinterlegt:

Code:
CurrForm.SAVERECORD;
Reklamationsassistent.InitFilter(Rec);
Reklamationsassistent.RUNMODAL;


Ich übergebe mit der Funktion InitFilter den aktuellen Reccord der Form. ^

Danach habe ich in der Form eine Record-Variable erstellt, der ich REC übergebe und somit in der Form verfügbar mache.

Code:
InitFilter(VAR OldPurchaseList : Record "Purchase Header")
PurchaseList.COPYFILTERS(OldPurchaseList);


Danach habe ich SETRANGE's gesetzt

Code:
PurchaseList.SETRANGE("No.",'BE08-5624');


Und jetzt müsste ich die aktuellen Filter wieder zurückschreiben.

Re: Filter übernehmen

18. Dezember 2008 16:29

Ich bin gerade am überlegen, ob nicht ein Report die bessere Variante wäre.

Re: Filter übernehmen

18. Dezember 2008 16:29

Rabe_Nitz hat geschrieben:Ich übergebe mit der Funktion InitFilter den aktuellen Reccord der Form. ^

Danach habe ich in der Form eine Record-Variable erstellt, der ich REC übergebe und somit in der Form verfügbar mache.

Code:
InitFilter(VAR OldPurchaseList : Record "Purchase Header")
PurchaseList.COPYFILTERS(OldPurchaseList);


Danach habe ich SETRANGE's gesetzt

Code:
PurchaseList.SETRANGE("No.",'BE08-5624');


Und jetzt müsste ich die aktuellen Filter wieder zurückschreiben.

Mache es doch genauso, wie du die Filter vom Parameter OldPurchaseList nach PurchaseList überträgst: Mit COPYFILTERS:
Code:
OldPurchaseList.COPYFILTERS(PurchaseList);

Re: Filter übernehmen

18. Dezember 2008 16:37

Das Problem ist, dass OldPurchaseList nur in der Funktion verfügbar ist und nicht in der ganzen Form. Wie mache ich das? Denn ich löse anhand eines Buttons ein Erreignis aus.

Re: Filter übernehmen

18. Dezember 2008 16:52

Ich hatte deine Anforderung völlig missverstanden, insofern kannst du meinen vorherigen Beitrag ignorieren ....

Re: Filter übernehmen

18. Dezember 2008 17:20

Jat jemand eine idee, wie man das machen könnte?

Grüße

Re: Filter übernehmen

18. Dezember 2008 17:33

Wie wärs damit?

InitFilter(VAR OldPurchaseList : Record "Purchase Header", VAR PurchaseList : Record "Purchase Header")
Code:
PurchaseList.COPYFILTERS(OldPurchaseList);
...
PurchaseList.SETRANGE("No.",'BE08-5624');


Und auf der Form:
Code:
CurrForm.SAVERECORD;
Reklamationsassistent.InitFilter(Rec, RecNewFilter);
Reklamationsassistent.RUNMODAL;
Rec.COPYFILTERS(RecNewFilter);

Re: Filter übernehmen

18. Dezember 2008 17:39

So ähnlich habe ich es jetzt auch hingekrieg :) Bin ich froh, dass das funktioniert!!!!

Vielen Dank Leute!!!!!