Mehrere Filter auf nen Record anwenden

6. Januar 2009 12:25

Hallöchen und noch ein Gesundes Neues euch allen, hoffe ihr seid alle gesund im Neuen Jahr angekommen.

Hab mal wieder ein kleines Problemchen:

Ich hab ein Tabellenformular mit sehr vielen Verkaufszeilen (basierend auf der Sales Line). Aus dieser Ansicht will ich nun bestimmte Datensätze "rausschmeißen", nämlich die, die nicht zum eingestellten Verkäufer des Auftrags gehören. Leider findet sich dieser im Sales Header wieder.
Also dachte ich mir:
- ich such mir zur Zeile den Auftrag im Sales Header
- wenn der Sales Header.Verkäufer <> Filter, dann mach ich ein SETFILTER("Document No.",<>%1,aktuelle Nummer);

klappt theoretisch, aber anscheinend haut er den Filter beim nächsten DAtensatz wieder über den Haufen, sprich in meiner Liste wird (werden) nur der (die) Zeilen des letzten Datensatzes auch wirklich entfernt ... der FILTER scheint den vorherigen FILTER wieder aufzuheben.

Ideen dazu?

Re: Mehrere Filter auf nen Record anwenden

6. Januar 2009 12:37

Über einen Filter lässt sich das so nicht lösen.
Setze für deine Form die Eigenschaft SourceTableTemporary = Yes und fülle Rec explizit durch INSERT.
Beispiel siehe hier: https://community.dynamics.com/blogs/na ... /9930.aspx

Führe das INSERT nur für solche SalesLines durch, die deiner Bedingung entsprechend.
Wichtig: Falls du INSERT in einem anderen Trigger als OnOpenForm ausführst (z.B. als Teil eines OnPush-Triggers eines neuen Buttons), musst du am Ende ein
Code:
IF Rec.FIND('-') THEN;
ausführen.
FINDSET wäre nur dann angebracht, wenn es sich um <= 500 Records handelt

Re: Mehrere Filter auf nen Record anwenden

6. Januar 2009 13:28

mmhhh...

da sag ich schonmal Dankeschön und schade, dass das so nicht geht ...

allerdings wollte ich die Form jetzt nicht zwingend in ne temporäre umwandeln, die ist schon viel zu groß was wohl deutlich mehr Anpassungsaufwand als Nutzen bringen würde ...

... aber danke für den Link, wieder was dazugelernt

Re: Mehrere Filter auf nen Record anwenden

6. Januar 2009 14:06

enno hat geschrieben:allerdings wollte ich die Form jetzt nicht zwingend in ne temporäre umwandeln, die ist schon viel zu groß was wohl deutlich mehr Anpassungsaufwand als Nutzen bringen würde ...

Wieso wäre das Mehraufwand für dich?
Nur die Eigenschaft umstellen, an einer zentralen Stelle Rec füllen, ggf. einen Button hinzufügen, und den Rest der Form so lassen wie er ist ...

Re: Mehrere Filter auf nen Record anwenden

6. Januar 2009 14:12

Natalie hat geschrieben:Wieso wäre das Mehraufwand für dich?



Die Form ist ne ziemlich umfangreiche, die von unserem Realisierungspartner entwickelt wurde. Außerdem nutzt sie schon 6 andere Filter (mit Setrange), die ich dann wahrscheinlich alle mit anpassen müßte, geschweige denn allen anderen Code und Funktionen, oder nicht?
Hab noch nicht mit temporären Tabellen gearbeitet....

Re: Mehrere Filter auf nen Record anwenden

6. Januar 2009 14:22

enno hat geschrieben:Die Form ist ne ziemlich umfangreiche, die von unserem Realisierungspartner entwickelt wurde.

Wäre kein Problem. Du solltest sie ihm dann nur zuschicken, falls du sie angepasst hast.

Außerdem nutzt sie schon 6 andere Filter (mit Setrange), die ich dann wahrscheinlich alle mit anpassen müßte,

Ich kenne zwar die genauen Anpassungen nicht, aber ich glaube nicht, dass für dich viel Aufwand bei herausspringt.

geschweige denn allen anderen Code und Funktionen, oder nicht?

Kein Problem.
Den Funktionen, die mit Rec arbeiten, ist es egal, ob Rec temporär ist oder nicht. Der Inhalt ist identisch mit denen der echten Record.
Einzig wenn diese Funktionen die angezeigten (echten) Datensätze direkt ÄNDERN sollen, muss man da etwas nachhelfen. Davon gehe ich jedoch nicht aus, da es sich um eine Übersicht handelt.

Hab noch nicht mit temporären Tabellen gearbeitet....

Es ist wirklich so einfach, wie ich es beschrieben habe.
Und wenn alle Stricke reißen, kannst du die Umsetzung noch immer eurem Partner beauftragen ;-)