23. August 2013 11:28
Hallo,
ich soll im Zuge der Zertifizierung kontrollieren, ob die Anzahl der Optionen in einem Optionfeld mit der Caption übereinstimmt. Da das per Texteditor eine extremst aufwendige Arbeit ist, dachte ich mir, ob man das nicht per Code lösen könnte.
- Code:
l_Field.SETRANGE(Type,l_Field.Type::Option);
IF l_Field.FINDSET THEN
REPEAT
l_RecRef.OPEN(l_Field.TableNo);
l_FieldRef := l_RecRef.FIELD(l_Field."No.");
l_OptionString := l_FieldRef.OPTIONSTRING;
l_OptionCaption := l_FieldRef.OPTIONCAPTION;
g_Assert.AreEqual(l_StringMgt.GetCharCount(l_OptionString,','),l_StringMgt.GetCharCount(l_OptionCaption,','));
l_RecRef.CLOSE;
UNTIL l_Field.NEXT = 0;
Ich zähle also die Kommas in den beiden Strings und vergleiche. Der Test war grün keine Fehler. Das verwunderte mich, also hab ich in Tabelle 4 (Currency) Feld 12 (Invoice Rounding Type) ein Optionswert hinzugefügt ohne die Caption zu erweitern.
OptionCation lieferte mir nun aber "Kaufmännisch,Aufrunden,Abrunden,Test" zurück. Er hat also automatisch die Caption erweitert um die fehlende Option.
Meine Frage: Kann man das vielleicht irgendwie anders machen? Effektiver als per Texteditor? Und am besten per Code im NAV, da ich dann darüber ein Testcase schreiben kann? Kann ich mir irgendwie die richtige OptionCaptionML so wie sie in den Properties angegeben ist steht rausziehen?
Für Hilfe wäre ich euch sehr dankbar.
Grüße René