Dynamics AX Blog - Beiträge vom September 2012
Fehlermeldungen temporär übersetzen
08.09.2012Microsoft Dynamics AX (Axapta)
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
05.09.2012Microsoft Dynamics AX (Axapta)
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 SRSReportDataProviderBaseclass DmoSalesLineCountDataProvider extends SRSReportDataProviderBase
{ DmoSalesLineCountTmp DmoSalesLineCountTmp; } |
AX 2012: Erweitern des Formulares zur Anlage von Produkten/Artikel
02.09.2012Microsoft Dynamics AX (Axapta)
Um einen Artikel bzw. ein Produkt in Dynamics AX 2012 anzulegen, wird das Formular EcoResProductCreate verwendet. 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)]]] ]; }
|
|
|
|
|
|
|
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