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
Dezember 2019
MoDiMiDoFrSaSo
 1
2345678
9101112131415
16171819202122
23242526272829
3031 
 
© 2006-2019 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