flowfield in abhängigkeit zweier flowfields?

15. Juni 2007 09:45

Hallo,

soweit ich weiß ist ein "Flowfield auf einem Flowfield" nicht möglich.
Wie löst ihr denn dieses Dilemma?
Ich habe zwei flowfields in einer Tabelle, die sich unterschiedlicher Tabellen
bedienen.
Jetzt wäre es gut, wenn ich in Abhängigkeit der beiden Flowfields auch
mal die Obertabelle filtern kann.

also sowas wie "gib mir alle Tabelleneinträge wo Flowfeld1-Flowfeld2 > 0" ist.
Ich kann das ja mittels eines reports lösen..aber es wäre gut wenn der anwender es in den forms direkt nutzen könnte. Kann man das irgendwie oder
mach ich mir umsonst gedanken?

15. Juni 2007 09:59

"Alles ist möglich :D - aaaaber ..."

3. Flowfield in Abh. von 1. und 2. Flowfield IST möglich! Wichtig: In einer Form muss dieses neue Feld NACH den anderen FlowFields kommen. Dies kostet aber übelst Performance. Ganz abgesehen davon hilft dir das nicht weiter, da du in einem FlowField ohnehin keine Formel nach dem Schema "Feld 2 minus Feld 1" eingeben kannst. Dieser Abschnitt also nur zur Info.

Du kannst es nicht über ein automatisch errechnetes Feld lösen - du brauchst ein Feld, das du nur auf der Form hast und deren SourceExpr kein existierendes Feld, sondern eine Variable ist. Und diese Variable füllst zur Laufzeit der Form. Habe gerade kein Beispiel aus dem Navision-Standard zur Hand, aber das gibt es ....

15. Juni 2007 10:09

Natalie hat geschrieben:"[...] Du kannst es nicht über ein automatisch errechnetes Feld lösen - du brauchst ein Feld, das du nur auf der Form hast und deren SourceExpr kein existierendes Feld, sondern eine Variable ist. Und diese Variable füllst zur Laufzeit der Form.

Aber so ein Feld kann man leider nicht zum filtern nutzen. :-(

Gruß, Marc

15. Juni 2007 10:14

Auch wieder wahr!!
Da hilft nur eines:
Vor Anzeige der Datensätze durch alle durchgehen, Bedingung prüfen, Satzmarke setzen, Filter "Nur Satzmarkierte" setzen. Ach ja, und nicht allzuhohe Ansprüche an die Performance stellen ...

Programmiertechnisch:
http://www.navision24.de/tutorials/die- ... utzen.html
Zuletzt geändert von Natalie am 15. Juni 2007 10:24, insgesamt 1-mal geändert.

15. Juni 2007 10:22

ok..habe jetzt mal das versucht was du gesagt hast....und zwar im Trigger
OnAfterGetRecord


CALCFIELDS("Summe Iststunden","Summe Sollstunden");
IF ("Summe Iststunden" - "Summe Sollstunden" < 0) THEN BEGIN
Verlust:=TRUE;
CurrForm.UPDATE;
END;


Verlust ist die Variable die ich in einem Feld anzeigen will.
aber Navision zeigt mir nichts an????

Ausserdem will ich ja dieses Feld zum Filtern benutzen, das heisst ich kann bei einer Variablen keinen Filter setzen auf "Verlust = TRUE"

15. Juni 2007 10:24

Pegasus hat geschrieben:Ausserdem will ich ja dieses Feld zum Filtern benutzen, das heisst ich kann bei einer Variablen keinen Filter setzen auf "Verlust = TRUE"


Siehe meinen Beitrag direkt vor deinem (Satzmarken).

15. Juni 2007 10:33

ok..verstanden..aber trotzdem müsste navision doch die variable setzen wenn die bedingung erfüllt ist und anzeigen in der form?

das tut navision aber nun auch nicht....wo liegt denn da mein denkfehler?

15. Juni 2007 10:38

Pegasus hat geschrieben:ok..verstanden..aber trotzdem müsste navision doch die variable setzen wenn die bedingung erfüllt ist und anzeigen in der form?

das tut navision aber nun auch nicht....wo liegt denn da mein denkfehler?


Setz deine Funktion mal unter OnAferGetCurrRecord.
Hast du denn auch ein neues Feld (Checkbox) in die Form eingebunden mit SourceExpr = Verlust?
Im Übrigen sollte da noch unbedingt ein
Code:
ELSE
  Verlust := FALSE;

rein. Und lass das CurrForm.UPDATE erst einmal weg...

15. Juni 2007 10:59

gut, das macht jetzt navision anstandslos.

Jetzt hab ich gedacht das ich im gleichen zuge auch noch die Farbe eines
Feldes ändere mit

CurrForm."Summe Iststunden".UPDATEFORECOLOR:=255;

aber da meckert er das " das in diesem Kontext" nicht möglich ist.
Was bedeutet denn das?

15. Juni 2007 11:03

Pegasus hat geschrieben:Jetzt hab ich gedacht das ich im gleichen zuge auch noch die Farbe eines
Feldes ändere mit

CurrForm."Summe Iststunden".UPDATEFORECOLOR:=255;

aber da meckert er das " das in diesem Kontext" nicht möglich ist.
Was bedeutet denn das?

Dies gehört in den Trigger OnFormat.

15. Juni 2007 11:10

OnFormat gibt es nicht auf dieser Form für das Anzeigen eines einzelnen
Dateneintrages

15. Juni 2007 11:12

muss ich natrülich auf dem feld selber ändern.....hat sich erledigt....danke :-)

15. Juni 2007 11:13

OnFormat des zu ändernden Feldes, nicht der Form.