Dynamics AX Blog - Dynamics AX 2012 - Seite 30

Momentan angezeigt werden nur Beiträge, welche für die Dynamics AX-Version »Dynamics AX 2012« relevant sind. Filter entfernen

RSS-Feed dieser Version

AX 2012: SysOperation-Framework: Werte eines Data Contracts initialisieren

Wenn man in einem Data Contract die Klasse SysOperationInitializable über den Befehl implements einbindet, kann man die dadurch zur Verfügung stehende Methode initialize() einbinden.

Mit Hilfe dieser Methode kann man Variablen innerhalb des Data contracts initialisieren. Diese Methode wird allerdings nur aufgerufen, solange keine Nutzungsdaten gefunden werden bzw. diese nicht aktiviert sind.

[DataContractAttribute]
class TutorialSysOperationDataContract
    implements SysOperationInitializable
{
    date dialogDate;
}

 

[DataMemberAttribute]
public TransDate parmDialogDate(TransDate _dialogDate = dialogDate)
{
    dialogDate = _dialogDate;
    return dialogDate;
}

 

public void initialize()
{
    dialogDate = systemDateGet() - 365;
}

 


 
 

AX 2012: SysOperation-Framework: Titel des Dialoges ändern

Als Titel eines vom SysOperation-Framework generierten Dialoges wird in der Regel der Label des aufrufenden MenuItems angezeigt.

Möchte man diesen Titel bewusst übersteuern, so muss man in der Service Controller Class (=abgeleitet von SysOperationServiceController) die nachstehenden beiden Methoden einbinden/überschreiben:

public LabelType parmDialogCaption(LabelType _dialogCaption = '')
{
    // Base class is setup to get the caption from the
    // the class name or from the menu item. Reroute it
    // to the caption override.
    return this.caption();
}

 

public ClassDescription caption()
{
    ClassDescription ret;

    ret = "Tutorial-SysOperation-Framework";

    return ret;
}

 


 
 

AX 2012: SSRS: Einen Parameter einrichten

In einem anderen Beitrag habe ich beschrieben, wie man beispielsweise einen SSRS-Report auf Basis eines Dataproviders erstellt. Dieser Beitrag ist quasi eine Fortsetzung in dem im demonstrieren möchte, wie man einen Parameter erstellt.

Ein solcher Parameter ist einerseits notwendig, wenn man den Bericht als Subreport verwenden möchte oder aber auch wenn man Funktionalitäten abbilden möchte, die über den Dataprovider nicht abgebildet werden können.

Im folgenden Beispiel soll der Bericht auf Basis eines Parameters so eingeschränkt werden können, sodaß Zeilen ohne Relevanz (im konkreten Fall Artikel, die noch nicht innerhalb einer Auftragsposition verwendet wurden) ausgeblendet werden können.

 

Schritt 1: Erstellen des Parameters

Screenshot


 
 

Fehlermeldungen temporär übersetzen

Kurzer Tipp zum Thema Fehleranalyse während des Entwickelns: Oft treten in Dynamics AX Fehlermeldungen auf, die auf den ersten Blick nicht verständlich sind und eine Suche nach beispielsweise deutschprachigen Fehlermeldungen im Internet ist oft nicht erfolgreich.

Mit Hilfe des nachstehenden Jobs kann man einfach kurzfristig die Ausgabesprache des InfoLogs ändern - z.b. auf en-us - um anschließend mit der englischsprachigen Fehlermeldung eine möglicherweise erfolgreichere Internetrecherche anzustossen.

static void changeInfologLanguage(Args _args) 
{     
    infolog.language("en-us"); 
}

Danach nur nicht vergessen, die Sprache wieder zurückstellen ;-) 


 
 

AX 2012: SSRS: Einen Bericht auf Basis eines Dataproviders erstellen

Ein Dataprovider ist eine Klasse, die dazu verwendet wird um Daten für die Verwendung durch die SQL Reporting Services (SSRS) aufzubereiten. Ein solcher Dataprovider ist in jenen Fällen sehr hilfreich, wenn die anzuzeigenden Daten nicht - oder nur sehr mühsam - über einen Query ermittelt werden können.

Im folgenden eine Schritt-für-Schritt Anleitung, wie man einen solchen Dataprovider erstellt und in den SSRS verwendet.

 

Schritt 1: Klasse erstellen, abgeleitet von SRSReportDataProviderBase

class DmoSalesLineCountDataProvider extends SRSReportDataProviderBase
{
    DmoSalesLineCountTmp DmoSalesLineCountTmp;
}

Screenshot


 
 

AX 2012: Erweitern des Formulares zur Anlage von Produkten/Artikel

Um einen Artikel bzw. ein Produkt in Dynamics AX 2012 anzulegen, wird das Formular EcoResProductCreate verwendet.
Dieses Formular enthält entgegen den meisten Formularen keinerlei Datasources, womit beispielsweise neue Felder in der Tabelle InventTable vollständig anders implementiert werden müssen.

Im folgenden eine Kurzbeschreibung zur Einbindung eines Beispielfeldes MyCustomField (vom Extended Datatype MyCustomId):

1.) Hinzufügen einen Formcontrols auf Basis des EDT MyCustomId zum Formular und setzen der Eigenschaft AutoDeclaration auf YES und Vergabe eines eindeutigen Namens (beispielsweise gleichlautend wie der Name des Feldes)

2.) Anpassen der Methode createData2Controls() des Formulares wie folgt:

private void createData2Controls()
{
     data2Controls = [
                     //--> (1)
                     //[tableStr(InventTable), [[fieldNum(InventTable, bomUnitId), formControlStr(EcoResProductCreate, BOMUnitId)]]],
                     [tableStr(InventTable), [[fieldNum(InventTable, bomUnitId), formControlStr(EcoResProductCreate, BOMUnitId)],
                                             [fieldNum(InventTable, MyCustomId), formControlStr(EcoResProductCreate, MyCustomField)]]],
                     //<-- (1)
                     [identifierStr(Purch), [[fieldNum(InventTableModule, UnitId), formControlStr(EcoResProductCreate, PurchUnitId)],
                               [fieldNum(InventTableModule, TaxItemGroupId), formControlStr(EcoResProductCreate, PurchTaxItemGroupId)]]],
                     [identifierStr(Invent),[[fieldNum(InventTableModule, UnitId), formControlStr(EcoResProductCreate, InventUnitId)]]],
                     [identifierStr(Sales), [[fieldNum(InventTableModule, UnitId), formControlStr(EcoResProductCreate, SalesUnitId)],
                               [fieldNum(InventTableModule, TaxItemGroupId), formControlStr(EcoResProductCreate, SalesTaxItemGroupId)]]],
                     [tableStr(EcoResStorageDimensionGroupItem), [[fieldNum(EcoResStorageDimensionGroupItem, StorageDimensionGroup), formControlStr(EcoResProductCreate, StorageDimensionGroup)]]],
                     [tableStr(EcoResTrackingDimensionGroupItem), [[fieldNum(EcoResTrackingDimensionGroupItem, TrackingDimensionGroup), formControlStr(EcoResProductCreate, TrackingDimensionGroup)]]],
                     [tableStr(InventItemGroupItem), [[fieldNum(InventItemGroupItem, ItemGroupId), formControlStr(EcoResProductCreate, ItemGroupId)]]],
                     [tableStr(InventModelGroupItem), [[fieldNum(InventModelGroupItem, ModelGroupId), formControlStr(EcoResProductCreate, ModelGroupId)]]]
                     ];
}

 


 
 

Erweitern von Dynamics AX um neue Icons

Custom IconsIn Dynamics AX kann man bekanntermaßen Menuitems oder Buttons mit Icons optisch aufwerten. Oft werden dafür die bereits in der Form SysImageRessources anzeigbaren sog. Embedded Resources verwendet.

Es ist allerdings nicht möglich, diese Embedded Ressources um eigene Icons/Bilder zu erweitern.

Dafür stellt AX den AOT-Knoten Resources zur Verfügung.


 
 
Seiten « 1 ... 27 28 29 30 31 32 33 ... 38 » 

 

 
 
 
Beiträge des aktuellen Monats
Mai 2024
MoDiMiDoFrSaSo
 12345
6789101112
13141516171819
20212223242526
2728293031 
 
© 2006-2024 Heinz Schweda | Impressum | Kontakt | English version | Desktop 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