Die "Details anzeigen"-Funktion für eine als einzelnes Feld eingebundene Finanzdimension einbinden

In diesem Beitrag habe ich beschrieben, wie man eine einzelne Finanzdimension als eigenes Feld einbinden kann.

Dies ist ein Folgebeitrag und soll demonstrieren, wie man für ein solches Feld die "Details anzeigen"-Funktion programmieren kann.

Dazu legen wir auf unserer Tabelle - im Beispiel die CustTable - eine entsprechende Methode wie folgt an:

public void jumpRefCostCenter(DimensionValue _value)
{
    DimensionAttribute      dimAttribute;
    DimensionAttributeValue dimAttributeValue;
    selectableDataArea      company = curext();
    MenuFunction            menuFunction;
    Args                    args = new Args();
   
    #define.CostCenter("CostCenter")
 
    appl.setDefaultCompany(company, false);
 
    // Determine the attribute value
    dimAttribute = DimensionAttribute::findByName(#CostCenter);
    if (_value)
    {
        dimAttributeValue = DimensionAttributeValue::findByDimensionAttributeAndValue(dimAttribute, _value, false, true);
    }
 
    // Jump to the appropriate backing table
    if (dimAttribute.Type == DimensionAttributeType::MainAccount)
    {
        menuFunction = new MenuFunction(menuitemDisplayStr(MainAccountDetails), MenuItemType::Display);
 
        if (dimAttributeValue)
        {
            args.lookupRecord(MainAccount::find(dimAttributeValue.EntityInstance));
        }
    }
    else
    {
        menuFunction = new MenuFunction(menuitemDisplayStr(DimensionValueDetails), MenuItemType::Display);
 
        args.record(dimAttribute);
        args.parmEnum(NoYes::Yes);
 
        if (dimAttributeValue)
        {
            args.lookupRecord(DimensionDefaultingControllerBase::findBackingEntityInstance(company, dimAttribute, dimAttributeValue.EntityInstance));
        }
    }
 
    // Make sure no queries get passed to the jumpRef form
    menuFunction.copyCallerQuery(CopyCallerQuery::No);
    menuFunction.run(args);
}

Nun muss man noch im Formular die jumpRef()-Methode des jeweiligen StringEdit-Controls wie folgt überschreiben:

public void jumpRef()
{
    //super();
   
    CustTable.jumpRefCostCenter(this.valueStr());
}
Dieser Beitrag bezieht sich auf die Version:
Dynamics AX 2012

Kommentar hinzufügen
 
 

 

 
 
 
Beiträge des aktuellen Monats
März 2024
MoDiMiDoFrSaSo
 123
45678910
11121314151617
18192021222324
25262728293031
 
© 2006-2024 Heinz Schweda | Impressum | Kontakt | English version | Mobile Version
Diese Webseite verwendet Cookies, um Benutzern einen besseren Service anzubieten. Wenn Sie weiterhin auf der Seite bleiben, stimmen Sie der Verwendung von Cookies zu.  Mehr dazu