[RTC] Factbox mit Temporary Table

16. Dezember 2011 13:37

Hallo zusammen,

habt ihr schon mal Page, die auf Temporary Tabelle basiert, als Factbox verwendet oder vielleicht im Nav Standard gesehen?
Hintergrund:
Ich habe ein Page gebastelt, die beim onOpenpage die Temporary Tabele ausfüllt und anzeigen. (Bin Content). Ist soweit kein Problem.
Nun, ich möchte dieses Page als Factbox verwenden und in Artikelübersicht mit subFormLink einbetten.
Wie kann ich aber den Factbox in Abhängigkeit von Datensatz der Artikel beeinflussen?

Re: [RTC] Factbox mit Temporary Table

16. Dezember 2011 18:30

Hallo,

bau dir in der FactBox eine Funktion und eine globale Artikel Rec Variable ein.
und im OnAftergetRecord der Artikelübersicht rufst du diese Funktion auf.

Code:
CurrPage."my Temp FactBox".FORM.SetItemRec(Rec);


Vorher musst du natürlich definieren, was du mit der globalen Item rec Variable in der FactBox machen willst.

Alternative wäre doch über die Properties mit "Subformlink" wie du es bereits gesagt hast.
In der Temp Tabelle müssten dann entprechende Felder sein, um den Datensatz eindeutig zu identifzieren.


Gruß
Aydin

Re: [RTC] Factbox mit Temporary Table

19. Dezember 2011 09:53

aydina81 hat geschrieben:und im OnAftergetRecord der Artikelübersicht rufst du diese Funktion auf.

Nimm eine List-Page und packe ein MESSAGE-Befehl in den OnAfterGetRecord-Trigger. Dann verstehst du auch, wo das Problem liegt. Der OnAfterGetRecord-Trigger wird nicht durchlaufen, wenn man mit der Maus einen anderen Datensatz markiert.

navsyst hat geschrieben:Wie kann ich aber den Factbox in Abhängigkeit von Datensatz der Artikel beeinflussen?

Ich hatte schonmal das gleiche Problem. Die einzige Möglichkeit die ich gefunden habe: die Filter der Factbox nutzen. Die werden natürlich beim Datensatzwechsel in die FactBoxes übergeben. In der Filtergroup 4 findest du dann die gesetzten Filter. Folgender Code in der FactBox-Page im OnAfterGetRecord-Trigger müsste zum Ziel führen:
Code:
FILTERGROUP(4);
MESSAGE('%1',GETFILTERS);
FILTERGROUP(0);

Ich denke von hier an kommst du alleine weiter.

Re: [RTC] Factbox mit Temporary Table

19. Dezember 2011 10:18

Tim hat geschrieben:
aydina81 hat geschrieben:und im OnAftergetRecord der Artikelübersicht rufst du diese Funktion auf.

Nimm eine List-Page und packe ein MESSAGE-Befehl in den OnAfterGetRecord-Trigger. Dann verstehst du auch, wo das Problem liegt. Der OnAfterGetRecord-Trigger wird nicht durchlaufen, wenn man mit der Maus einen anderen Datensatz markiert.


Wir verwenden genau diese Technik. Bei uns funktioniert das wunderbar (NAV 2009 R2 RTC, 6.0.32012.0).

Gruß
Aydin

Re: [RTC] Factbox mit Temporary Table

19. Dezember 2011 11:55

aydina81 hat geschrieben:Wir verwenden genau diese Technik. Bei uns funktioniert das wunderbar (NAV 2009 R2 RTC, 6.0.32012.0).

Ich habe es gerade noch einmal mit Build 32012 versucht und auch da funktioniert es nicht. Ich denke die Grundvoraussetzungen sind nicht die gleichen.

1. Ihr benutzt eine List-Page als Ausgangspunkt? Ich habe es mit der Artikelübersicht (Page 31) und der dort als FactBox eingebundenen Page 9090 getestet.
2. Wenn du einen Datensatz in der List-Page wechselst (also lediglich einen anderen Datensatz markierst), dann wird der Befehl ausgeführt? Kann ich mir nicht vorstellen, aber wenn doch, dann bitte genau die Vorgehensweise posten.
3. Was passiert in der aufgerufenen Funktion denn? Was natürlich auf funktionieren würde: Gleicher Ansatz wie von dir beschrieben, aber in der Funktion der FactBox werden die temporären Datensätze nicht ausgetauscht, sondern nur hinzugefügt. Der "SubFormLink" zwischen Page und FactBox tut dann sein übriges. Da der OnAfterGetRecord-Trigger der Page ja beim Aufruf der Page schon für jeden angezeigten Datensatz (und noch ein paar mehr) durchlaufen wird, sieht es an der Oberfläche dann so aus, als würde es wie von navsyst angefragt, funktionieren.

Insofern: da ich dir natürlich glaube, dass es bei euch funktioniert, gib mal bitte ein paar mehr Details preis.

Re: [RTC] Factbox mit Temporary Table

19. Dezember 2011 15:33

Hallo Tim,

muss mich korrigieren:-)
Ich habe das ganze mit der Subpage verwechselt. Da funktioniert das ganze.

Das Problem bei FactBoxen ist:
Wenn man diese in die List-Page einbindet, dann kommt man an die Funktionen der FactBox nicht ran.
Code:
CurrPage."my FactBox".FORM.SetItemRec(Rec);

Gibt es gar nicht.

Also doch nur über SubFormLink verbinden.
Als Beispiel kann man im SourceExpression eine Fkt. aufrufen und Rec übergeben.

Gruß
Aydin

Re: [RTC] Factbox mit Temporary Table

19. Dezember 2011 15:42

aydina81 hat geschrieben:Hallo Tim,

muss mich korrigieren:-)
Ich habe das ganze mit der Subpage verwechselt. Da funktioniert das ganze.

Das Problem bei FactBoxen ist:
Wenn man diese in die List-Page einbindet, dann kommt man an die Funktionen der FactBox nicht ran.
Code:
CurrPage."my FactBox".FORM.SetItemRec(Rec);

Gibt es gar nicht.

Also doch nur über SubFormLink verbinden.
Als Beispiel kann man im SourceExpression eine Fkt. aufrufen und Rec übergeben.

Gruß
Aydin


Also an die Funktion kommt man schon dran. Hier muss man einfach der FactBox einen Namen geben und darf nicht mit dem Standardwert für den Namen arbeiten.

Allerdings meine ich, dass ich dann auch damals das Problem hatte, dass der OnAfterGetRecord-Trigger auf der listen Page nicht beim wechsel des Datensatzes aufgerufen wird.

Re: [RTC] Factbox mit Temporary Table

19. Dezember 2011 17:36

Hallo,

leider fehlt mir die Zeit um alles nachzustellen.
Aber zusammenfassend kann man schon sagen, dass die Idee mit der FactBox zwar gut ist aber nicht ganz durchdacht ist.
Schade, dass es nicht so wie bei den SubPages funktioniert.

Also muss man da nur über SubFormLink die Verknüpfung herstellen.
Da bleibt einem nix anderes übrig als zu probieren.
(Probieren geht über studieren...;-))


Gruß
Aydin

Re: [RTC] Factbox mit Temporary Table

19. Dezember 2011 17:56

Es funktioniert doch genau wie bei den SubPages. Hier hat man aber genau das gleiche Problem, wenn man versucht zu einer List-Page im OnAfterGetRecord-Trigger den Filter an die SubPage zu übergeben.

Re: [RTC] Factbox mit Temporary Table

20. Dezember 2011 08:18

Ich denke Aydin bezog sich auf die "typische" Main-/Sub-Page, wobei die Main-Page dann in der Regel im Karten-Style ist. Dann wird der "OnAfterGetRecord"-Trigger natürlich immer für den aktuellen Datensatz ausgeführt und dann kann man in diesem Trigger auch Funktionen für diesen einen Datensatz ausführen. In List-Pages hat man immer das Manko des fehlenden "OnAfterGetCurrRecord"-Triggers. Aber auch schon früher musste man als NAV Entwickler Lösungen für "fehlende" Funktionen finden und deshalb finde ich das jetzt nicht dramatisch. Man muss es halt nur wissen.