RTC: Filter vor Report-Aufruf löschen

29. August 2011 13:08

Wenn ich es recht sehe, wird im RTC beim Aufruf eines Reports immer der letzte benutzte Filter wieder vorgeschlagen.

Damit habe ich nun ein Problem durch folgende Anpassung:
1. Der Report 99001015 Calculate Subcontracts wird aus einer Zusatzfunktion in Fertigungsauftrag aufgerufen, um Fremdarbeit nur für diesen Auftrag zu berechnen.
Das funktioniert auch problemlos - für FA-Arbeitsgang werden die Filter entsprechend Übergabe verwendet.
2. Nun wird danach der Report 99001015 Calculate Subcontracts direkt aus Page 99000886 Subcontracting Worksheet aufgerufen.
=> Jetzt sind im Report 99001015 aber noch die Filter aus dem letzten Aufruf gesetzt - also die für FA-Arbeitsgang.
Will der Anwender nun aber ohne Filter arbeiten, muss er manuell diese Filter entfernen.

Wie kann ich dafür sorgen, dass die Filter beim 2.Aufruf nicht übernommen werden ?

Im CC funktioniert das problemlos ...

Re: RTC: Filter vor Report-Aufruf löschen

29. August 2011 14:29

Wird der Report jeweils mit übergebenem (und damit gefiltertem) Record aufgerufen?
Das CC-SaveValues wird im RTC in Tabelle 2000000080 abgelegt; mir ist aber neu, das dies auch für Filter gelten könnte.

Falls der Report mit einer Report-Variable aufgerufen wird, vielleicht noch ein CLEAR(DeineFormVar) absetzen?

Re: RTC: Filter vor Report-Aufruf löschen

29. August 2011 14:53

In der Zusatzfunktion wird der Report wie folgt aufgerrufen:
Code:
CalculateSubContract.SetWkShLine(g_recReqLine);
CalculateSubContract.SETTABLEVIEW(ProdOrderRtngLine);
CalculateSubContract.RUNMODAL;
Damit wird über den SETTABLEVIEW der Filter gesetzt.

In der Standard-Page 99000886 lautet der Code zu der PageAction
Code:
CalculateSubContract.SetWkShLine(Rec);
CalculateSubContract.RUNMODAL;
Da wird also kein Filter gesetzt.

Re: RTC: Filter vor Report-Aufruf löschen

29. August 2011 15:07

Und wenn du für den zweiten Aufruf nun das hier implementierst?

Code:
CalculateSubContract.SetWkShLine(g_recReqLine);
ProdOrderRtngLine.RESET;
CalculateSubContract.SETTABLEVIEW(ProdOrderRtngLine);
CalculateSubContract.RUNMODAL;

Re: RTC: Filter vor Report-Aufruf löschen

30. August 2011 10:43

Natalie hat geschrieben:Und wenn du für den zweiten Aufruf nun das hier implementierst?

Code:
CalculateSubContract.SetWkShLine(g_recReqLine);
ProdOrderRtngLine.RESET;
CalculateSubContract.SETTABLEVIEW(ProdOrderRtngLine);
CalculateSubContract.RUNMODAL;

Dss funktioniert auch nicht :-(
Irgendwie setzt der RESET die gespeicherten Filter nicht zurück.

Es funktioniert auch NICHT, wenn man nur einen Filter entfernt:
Code:
l_recProdOrderRtngLine.SETRANGE(Status);
CalculateSubContract.SETTABLEVIEW(l_recProdOrderRtngLine);


Man muss wohl wieder mindestens einen Filter "aktiv" setzen, damit die gespeicherten Filter zurückgesetzt werden:
Code:
l_recProdOrderRtngLine.SETRANGE(Status,l_recProdOrderRtngLine.Status::Released);
CalculateSubContract.SETTABLEVIEW(l_recProdOrderRtngLine);

Das ist jetzt eine halbwegs akzeptable Lösung ...
Beim Fremdarbeitenvorschlag ist ein Filter auf "Status=freigegeben" recht sinnvoll. Und wenn der Anwender auf etwas anderes filtern will, muss er nur diesen einen Filter ändern/entfernen.