Filter fĂĽhrt zu Validate

Bild Microsoft Dynamics NAV 5.xx

Filter fĂĽhrt zu Validate

Beitragvon moag » 13. Juni 2014 11:26

Hallo Zusammen,

kann mir jemand erklären, warum ich bei einem "Leer" Filter (also ' ') in der Tabelle Bin Content (auf Item. No.) folgenden Fehler bekomme?

---------------------------
Microsoft Dynamics NAV Classic
---------------------------
Sie können diesen Artikelnr. nicht bearbeiten, da dieser Lagerplatzinhalt Artikel enthält.
---------------------------
OK
---------------------------

Wenn ich das mit dem Debugger mitgehe will NAV tatsächlich durch den OnValidate des Feldes Item No. - ABER WARUM?
Ich setze doch lediglich einen Filter?

Bin verwirrt!

Vielen Dank fĂĽr jede Art von Tipp!

GrĂĽĂźe

Oliver
moag
 
Beiträge: 26
Registriert: 13. Juni 2014 11:15
Realer Name: Oliver Grau
Arbeitsort: Espelkamp
Bezug zu Microsoft Dynamics: End-Anwender
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 5

Re: Filter fĂĽhrt zu Validate

Beitragvon Natalie » 13. Juni 2014 11:31

Herzlich Willkommen bei uns!

moag hat geschrieben:Wenn ich das mit dem Debugger mitgehe will NAV tatsächlich durch den OnValidate des Feldes Item No.

Was hat der Debugger vorher aufgerufen? Eventuell Code im OnAfterGetRecord (welcher bei Filtersetzung erneut durchlaufen wird)?
GruĂź, Natalie

Frage beantwortet oder Problem von allein gelöst? Schreibe bitte [Gelöst] vor den Titel des ersten Beitrags.

Bitte erst suchen, dann fragen. Bitte beachte den kleinen Community-Knigge.
Kein Support per PN, Mail, IM oder Telefon! DafĂĽr ist dieses Forum da.
Benutzeravatar
Natalie
Moderator
Moderator
 
Beiträge: 9257
Registriert: 31. Oktober 2006 19:51
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV

Re: Filter fĂĽhrt zu Validate

Beitragvon moag » 13. Juni 2014 11:45

Hi Natalie und vielen Dank!

ich bin direkt auf der Tabelle 7302 - hier finde ich keine OnAfterGetRecord (oder? Neee da is keiner..)

GruĂź

Oliver

Nachtrag: Da die Tabelle "Orginal" ist mĂĽsste diese Verhalten eigentlich auch in anderen NAV Versionen nachzustellen sein.
moag
 
Beiträge: 26
Registriert: 13. Juni 2014 11:15
Realer Name: Oliver Grau
Arbeitsort: Espelkamp
Bezug zu Microsoft Dynamics: End-Anwender
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 5

Re: Filter fĂĽhrt zu Validate

Beitragvon Timo Lässer » 13. Juni 2014 11:50

Wird ein eindeutiger Filter auf ein Feld des Primärschlüssels gesetzt, so füllt NAV das Feld mit dem Filterwert, welches dann den OnValidate des Feldes ausführt.
Das gleiche macht NAV auch bei Nicht-Primärschlüsselfeldern, wenn das Property "PopulateAllFields" auf Ja gesetzt ist.

Dies gilt nicht, wenn die Filterbedingung einen Bereich definiert ('>xyz' bzw. 'abc..def')
Gruß, Timo Lässer

Frage beantwortet? Schreibe bitte "[Gelöst]" vor den Titel deines ersten Beitrags.
Bitte erst suchen, dann fragen. Bitte beachte den kleinen Community-Knigge.
Kein Support per PN, E-Mail, Instant Messanger, Soziale Netzwerke, Telefon oder Fax! DafĂĽr ist dieses Forum da.
Hier kannst du fĂĽr MSDynamics.de spenden.
Benutzeravatar
Timo Lässer
Administrator
Administrator
 
Beiträge: 5274
Registriert: 14. November 2004 22:18
Wohnort: DE 49716 Meppen
Arbeitsort: DE 49733 Haren (Ems)
Bezug zu Microsoft Dynamics: End-Anwender
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 1.10a - 2018, BC14, BC21

Re: Filter fĂĽhrt zu Validate

Beitragvon moag » 13. Juni 2014 12:11

Hallo Timo und Danke!

Das ist also die Erklärung, auch wenn mir die Logik dahinter irgendwie nicht klar wird (wieso wird ein Feld gefüllt beim Filtern..) aber seis drum, lässt sich ja wahrscheinlich nicht ändern.
Nur - wie bekomme ich meine SubForm auf die Bin Content in meiner Umbuchungsform nun zum laufen die ĂĽber

SubFormLink = "Item No.=FIELD(Item No.)"

verknĂĽpft ist und bei jeder "neuen Zeile in dem Buchungsblatt" eben diesen Fehler wirft.
In der Bin Content wird bei durchlaufen des Item No. Validates ja folgende Funktion gezĂĽndet die dann den Fehler wirft

CheckManualChange(FIELDCAPTION("Item No."))

xRec.CALCFIELDS(
Quantity,"Pos. Adjmt. Qty.","Put-away Qty.",
"Neg. Adjmt. Qty.","Pick Qty.");
IF (xRec.Quantity <> 0) THEN
ERROR(Text007,CaptionField,TABLECAPTION);
IF (xRec."Pos. Adjmt. Qty." <> 0) OR (xRec."Put-away Qty." <> 0) OR
(xRec."Neg. Adjmt. Qty." <> 0) OR (xRec."Pick Qty." <> 0)
THEN
ERROR(Text008,CaptionField,TABLECAPTION);


Kann ich denn erkennen ob das aktuelle Validate ein "eindeutiger Filter '' ist und dementsprechend nicht geprĂĽft werden soll?

Nochmal Danke!

GruĂź

Oliver
moag
 
Beiträge: 26
Registriert: 13. Juni 2014 11:15
Realer Name: Oliver Grau
Arbeitsort: Espelkamp
Bezug zu Microsoft Dynamics: End-Anwender
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 5

Re: Filter fĂĽhrt zu Validate

Beitragvon Timo Lässer » 13. Juni 2014 13:14

moag hat geschrieben:Das ist also die Erklärung, auch wenn mir die Logik dahinter irgendwie nicht klar wird (wieso wird ein Feld gefüllt beim Filtern..) aber seis drum, lässt sich ja wahrscheinlich nicht ändern.

Sorry, das gilt natĂĽrlich nur, wenn der Filter ein leeres Ergebnis zurĂĽckliefert (und man somit auf einem "neuen" Datensatz steht), oder in dem gefilterten Ergebnis mit F3 einen neuen Datensatz anlegen will.
Sofern der Filter Ergebnisse zurĂĽckgibt, wird natĂĽrlich kein OnValidate ausgefĂĽhrt.
Gruß, Timo Lässer

Frage beantwortet? Schreibe bitte "[Gelöst]" vor den Titel deines ersten Beitrags.
Bitte erst suchen, dann fragen. Bitte beachte den kleinen Community-Knigge.
Kein Support per PN, E-Mail, Instant Messanger, Soziale Netzwerke, Telefon oder Fax! DafĂĽr ist dieses Forum da.
Hier kannst du fĂĽr MSDynamics.de spenden.
Benutzeravatar
Timo Lässer
Administrator
Administrator
 
Beiträge: 5274
Registriert: 14. November 2004 22:18
Wohnort: DE 49716 Meppen
Arbeitsort: DE 49733 Haren (Ems)
Bezug zu Microsoft Dynamics: End-Anwender
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 1.10a - 2018, BC14, BC21

Re: Filter fĂĽhrt zu Validate

Beitragvon moag » 13. Juni 2014 14:03

OK - mit meinen Worten:

Wenn eine Filterung eine "leere Tabellenansicht" erzeugt denkt NAV, dass die leere Zeile auf der der Cursor nun steht eine neue Zeile sein soll und durchläuft den Validatetrigger mit "Item No." = ' '
RIght? Und das wirft mir dann den Fehler in der Funktion CheckManualChange(FIELDCAPTION("Item No."))

Ich versuche mal das:


..............
IF (xRec.Quantity <> 0) AND ("Item No." <> '') THEN
ERROR(Text007,CaptionField,TABLECAPTION);
.............

oder meint ihr das haut mir woanders in den Nacken?
moag
 
Beiträge: 26
Registriert: 13. Juni 2014 11:15
Realer Name: Oliver Grau
Arbeitsort: Espelkamp
Bezug zu Microsoft Dynamics: End-Anwender
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 5


ZurĂĽck zu NAV 5.xx

Wer ist online?

Mitglieder in diesem Forum: Bing [Bot], Unbekannter Robot und 1 Gast