2017-07-04 4 views
0

RecRef est le type de données de RecRef, et par là j'accède à la table et peut sélectionner le champ de la table;Comment vérifier recref.field (Integer) est vide ou existe-t-il dans Navision Development (C/ALL)?

RecRef.OPEN(IDTABLE); 
RecRef.field(2); // RETURN THE FIELD DATA OF THE IDTABLE. 

mais si cela est une erreur d'envoi de Navision vide ainsi;

Comment faire pour vérifier si RecRef.field(Integer) est vide ou existe dans Navision Development (C/ALL)?

Merci à l'avance,

Répondre

1

Vous pouvez utiliser la zone de table virtuelle pour vérifier les numéros champ existent dans une table, ainsi que leurs types de données et d'autres propriétés.

https://msdn.microsoft.com/en-us/library/dd301354(v=nav.90).aspx

Vous pouvez également faire référence à l'aide de champs RecRef.FIELDINDEX (i), où i est compris entre 1 et RecRef.FIELDCOUNT. Par ceci, vous n'avez pas besoin de deviner les numéros de champs si vous ne les connaissez pas.

Je vous conseille également de regarder Codeunits 423 Change Log Management et 8617 Config. Validate Management pour des exemples avancés et des scénarios de travail avec RecordRefs et FieldRefs.

+0

Merci, mais après une recherche sur le codeUnits, je ne trouve pas comment détecter si le champ est vide (Dans Navision Dynamics Nav ce champ n'a pas d'info). Parce qu'après l'envoi si le RecRef.FIELD (lCounter) .Type est le texte, l'entier ... etc. la navision envoie l'erreur et dit que le champ est vide :) – Tabutnas

+1

Vous pouvez utiliser IF RecRef.FIELDEXIST (i) ALORS ... pour vérifier si le champ avec le numéro spécifié existe. Si le champ existe mais est vide, alors vous pouvez parfaitement utiliser RecRef.FIELD (i) – sergeyol

+0

Merci Sergeyol, c'est ce dont j'avais besoin .. Une chose de plus est de savoir comment vous connaissez la question? Je suis nouveau au développement de Navision et il est difficile de trouver ce qui est si facile dans d'autres langues du programme. – Tabutnas