2016-04-21 8 views
1

Ich schreibe eine Klasse, die eine Zeichenfolge als ein existierendes MenuItem validieren muss. Idealerweise würde ich etwas ähnliches wie MenuItemDisplayStr() benötigen, aber ich brauche es, um diese Funktion zur Laufzeit anstelle der Kompilierzeit zu verwenden. Gibt es etwas Ähnliches, das eine Zeichenfolge überprüfen kann, wenn es sich um ein Menüelement handelt?Ähnliche Funktion zu MenuItemDisplayStr() als nicht-intrinsisch? (AX 2012)

Vielen Dank für die Hilfe!

Antwort

2

Sie müssen das AOT iterieren und die Zeichenfolge mit den Menüelementen vergleichen. https://blogs.msdn.microsoft.com/dsiebold/2010/08/13/use-x-to-loop-through-the-aot/

#AOT 

//These are the macros for the paths found in #AOT. 
//Don't use macros in practice. It's a bad habit. 
//#define.MenuItemsDisplayPath('\\Menu Items\\Display') 
//#define.MenuItemsOutputPath('\\Menu Items\\Output') 
//#define.MenuItemsActionPath('\\Menu Items\\Action') 

TreeNode menuItemParentNode; 

//str menuItemName = "derp";//output: "derp is not a valid menu item" 
str menuItemName = "ActivitiesMain";//output: "ActivitiesMain is a valid menu item" 

//Only checking display here, you would need another level of 
//nodes to do output and actions. 
menuItemParentNode = TreeNode::findNode(#MenuItemsDisplayPath); 

if (menuItemParentNode.AOTfindChild(menuItemName)) 
    info(strFmt("%1 is a valid menu item", menuItemName)); 
else 
    info(strFmt("%1 is not a valid menu item", menuItemName)); 
:

Dieser Code aus dem Beispiel hier bereitgestellten angepasst

Verwandte Themen