28. Juli 2009 11:00
28. Juli 2009 11:08
CurrForm.ItemPanel.VISIBLE := Type = Type::Item;
CurrForm.UPDATECONTROLS;
STRSUBSTNO('(%1)',SalesInfoPaneMgt.CalcAvailability(Rec))
Matt Kirby hat geschrieben:welcher Mechanismus die Artikelinformationen aktualisiert sobald ich auf die Artikelnummer validiere
28. Juli 2009 15:02
28. Juli 2009 16:03
Matt Kirby hat geschrieben:Ja, die Funktion OnAfterGetCurrRecord ist mir gleich aufgefallen. Zum Testen ob es auch der verantwortliche Code ist, habe ich ihn auskommentiert. Die Artikelinformationen werden dann aber trotzdem aktualisiert!
Hab nämlich das Problem, dass in einer Datenbank die Artikelinformationen erst aktualisiert werden, wenn man die Zeile wechselt, nicht jedoch nach Eingabe der Artikelnummer.
CurrForm.SAVERECORD;
28. Juli 2009 16:24
Natalie hat geschrieben:Matt Kirby hat geschrieben:Ja, die Funktion OnAfterGetCurrRecord ist mir gleich aufgefallen. Zum Testen ob es auch der verantwortliche Code ist, habe ich ihn auskommentiert. Die Artikelinformationen werden dann aber trotzdem aktualisiert!
Ja, da hatte ich mich missverständlich ausgedrückt ...
Also: Das Control befindet sich auf der Subform, gehörig zu einem Datensatz der Tabelle Sales Line. Jedes Mal, ganz ohne Programmierung deinerseits, wenn du von Zeile zu Zeile springst, versucht das Control sich zu wertemäßig aktualisieren. Nur für die Sichtbarkeit des Controls wird der OnAfterGetCurrRecord-Trigger verwendet.
Nach dem gleichen Prinzip werden in NAV z.B. FlowFields aktualisiert , nur wenn du blätterst (Beispiel: Artikelkarte, Feld Lagerbestand).
CurrForm.UPDATECONTROLS
SourceExpr = STRSUBSTNO('(%1)',SalesPriceCalcMgt.func_NoOfSalesPrices(Rec))
28. Juli 2009 16:30
Matt Kirby hat geschrieben:Habs probiert, funktioniert jedoch noch immer nicht.
...
CurrForm.SAVERECORD;
CurrForm.UPDATE;
Ich bin eigentlich davon ausgegangen, dass der Trigger "OnAfterGetCurrRecord" mit
- Code:
CurrForm.UPDATECONTROLS
alle Controls auf der Form aktualisiert, so dass die Textfelder bei Artikelinformationen die Eigenschaft z.B.
- Code:
SourceExpr = STRSUBSTNO('(%1)',SalesPriceCalcMgt.func_NoOfSalesPrices(Rec))
neu ausführen.
Ist das nicht so?
28. Juli 2009 16:46
Natalie hat geschrieben:Matt Kirby hat geschrieben:Habs probiert, funktioniert jedoch noch immer nicht.
Hm und was ist mit
- Code:
...
CurrForm.SAVERECORD;
CurrForm.UPDATE;
28. Juli 2009 16:48
Matt Kirby hat geschrieben:Aber warum funktioniert das im Cronus Mandanten ohne ein Update?
28. Juli 2009 17:04
Natalie hat geschrieben:Matt Kirby hat geschrieben:Aber warum funktioniert das im Cronus Mandanten ohne ein Update?
Wie meinst du das?
InsertExtendedText(FALSE);
IF (Type = Type::"Charge (Item)") AND ("No." <> xRec."No.") AND
(xRec."No." <> '')
THEN
CurrForm.SAVERECORD;
CurrForm.UPDATE
28. Juli 2009 17:42
Matt Kirby hat geschrieben:Dort steht bei No. - OnAfterValidate [...] Jedoch kein Update. Trotzdem geht es dort
und in der anderen Datenbank, die ich bekommen habe, funktioniert die Aktualisierung der Artikelinformationen nur mit
- Code:
CurrForm.UPDATE
28. Juli 2009 21:46
Natalie hat geschrieben:Könnte es sein, dass in der Datenbank "wo es ging", die (Sub-)Formeigenschaft DelayedInsert = False war?
28. Juli 2009 21:50
McClane hat geschrieben:Sobald in einem Rec mit Art=Artikel eine Nummer eingetragen wird, werden die Werte in den Artikelinformationen neu berechnet.
29. Juli 2009 09:37
Natalie hat geschrieben:In meiner Cronus-DB nicht ... erst wenn der Datensatz wirklich eingefügt ist bzw. ich blättere. Bin von daher auch nicht auf deinen Ansatz gekommen *grübel*
29. Juli 2009 09:42
Natalie hat geschrieben:Wenn deine Theorie also stimmt, dann hieße das, dass die Berechnung nach JEDER Feldänderung, egal wo, durchgeführt wird.
29. Juli 2009 11:40
29. Juli 2009 11:45
Matt Kirby hat geschrieben:Habs auch gerade getestet. Wird bei jeder Änderung aktualisiert. Hmm, vielleicht hat es in meiner DB nicht funktioniert, weil in der SourceExp der Felder in den Artikelinformationen Variablen ausgegeben werden statt eine Funktion aufzurufen. Wenn ich ein Feld hinzufüge, was bei einem Update eine Messagebox ausgibt funktioniert es. Vielleicht werden die Variableninhalte nicht aktualisiert....
29. Juli 2009 16:30
3. Oktober 2009 15:03
6. Oktober 2009 01:19