Dynamics AX Blog - finanzdimensionen - Beiträge von 2015

Die "Details anzeigen"-Funktion für eine als einzelnes Feld eingebundene Finanzdimension einbinden
28.03.2015Microsoft Dynamics AX (Axapta)
|
Eine Lookup-Methode für ein als einzelnes Feld eingebundene Finanzdimension überschreiben
28.03.2015Microsoft Dynamics AX (Axapta)
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 lookup()-Methode überschreiben kann. |
Eine einzelne Finanzdimension als bearbeitbares Feld einbinden
28.03.2015Microsoft Dynamics AX (Axapta)
Wie man in Dynamics AX 2012 einen Datensatz um die Finanzdimensionen erweitert, ist im Internet an mehreren Stellen hinlänglich beschrieben. Was aber, wenn man bei einem solchen Datzensatz eine einzelne Dimension nicht über den über das Framework eingebundene Register bearbeiten möchte, sondern diese an einer anderen Stelle im Formular - beispielsweise im Grid - einbinden möchte? In einem solchen Fall kann evtl. die folgende edit()-Methode helfen. In meinem Beispiel wird die Dimension Kostenstelle mit Hilfe einer solchen Methode eingebunden. |
AX 2012: Ändern einer Standardfinanzdimension (DefaultDimension) eines DatensatzesDer nachstehende Job demonstriert, wie man den Wert einer Dimension (im Beispiel wird die Dimension Kostenstelle eines Debitors geändert) innerhalb der Standardfinanzdimensionen eines Datensatzes per Code austauschen kann. Auf diese Art & Weise können auch einzelne Dimensionswerte entfernt werden. static void changeDimensionValue(Args _args) { DimensionAttributeValueSetStorage dimensionAttributeValueSetStorage; DimensionAttribute dimensionAttribute; CustTable custTable = CustTable::find("US-014"); DimensionValue oldDimensionValue; DimensionValue newDimensionValue = "011"; DimensionDefault newDimensionDefault; #define.dimensionName("CostCenter") DimensionValue getDimensonValue(DimensionDefault _dimensionDefault) { DefaultDimensionView defaultDimensionView; select firstonly DisplayValue from defaultDimensionView where defaultDimensionView.Name == #dimensionName && defaultDimensionView.DefaultDimension == _dimensionDefault; return defaultDimensionView.DisplayValue; } // Get current value oldDimensionValue = getDimensonValue(custTable.DefaultDimension); // Build DimensionAttributeValueSetStorage dimensionAttributeValueSetStorage = DimensionAttributeValueSetStorage::find(custTable.DefaultDimension); // Remove old dimension value dimensionAttribute = DimensionAttribute::findByName(#dimensionName); dimensionAttributeValueSetStorage.removeDimensionAttributeValue( DimensionAttributeValue::findByDimensionAttributeAndValue(dimensionAttribute, oldDimensionValue).RecId); // Set new dimension value if(newDimensionValue != "") { dimensionAttribute = DimensionAttribute::findByName(#dimensionName); dimensionAttributeValueSetStorage.addItem( DimensionAttributeValue::findByDimensionAttributeAndValue(dimensionAttribute, newDimensionValue)); } newDimensionDefault = dimensionAttributeValueSetStorage.save(); ttsbegin; custTable.selectForUpdate(true); custTable.DefaultDimension = newDimensionDefault; custTable.update(); ttscommit; } Screenshot vor der Änderung Screenshot nach der Änderung |
|
|
|
|
|
|
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.