Willkommen auf schweda.net | EN | DE
 
 
 
 
 
Momentan angezeigt werden nur Einträge der Kategorie »Microsoft Dynamics AX (Axapta)« Filter entfernen

In den letzten Jahren, in denen ich mich fast hauptsächlich mit der Entwicklung im Umfeld von Microsoft Dynamics AX (vormals Axapta) beschäftigt habe, ist das eine oder andere Code-Fragment entstanden, von dem ich mir vorstellen könnte, daß es auch für andere AX-Entwickler ganz nützlich sein könnte. Aber auch Tips und Tricks zu dem mächtigen ERP-System werde ich in dieser Kategorie präsentieren.

RSS-Feed dieser Kategorie

Eine häufige Anforderung ist es, daß zu einem bestimmten Zeitpunkt ein Bericht/Report vollautomatisch ausgedruckt werden soll.

Dabei gilt es meist, dem auszudruckenden Bericht bestimmte Parameter mitgeben zu können und je nachdem wie der Bericht entwicklungsseitig aufgebaut ist, kann dies mehr oder weniger aufwendig sein.

Der folgende Code ruft einen relativ einfachen Dataprovider-basierten Bericht auf:

TutorialMyReportDataContract dataContract;
SrsReportDataContract srsReportDataContract;

controller = new SrsReportRunController();
controller.parmReportName(ssrsReportStr(TutorialMyReport, MyDesign)); 
controller.parmShowDialog(false);    
controller.parmLoadFromSysLastValue(false);  

srsReportDataContract =
controller.parmReportContract();

dataContract = srsReportDataContract.parmRdpContract();

dataContract.parmSalesId("S1000"); 

Das nächste Beispiel ruft den Standardbericht Buchungen (Debitorenkonten > Berichte > Buchungen > Debitor) auf. Die Besonderheit dieses Berichtes ist es, daß hier ein Query innerhalb des Dataproviders verwendet wird. Auf diesen zuzugreifen war die Herausforderung:


Mit den nachstehenden Zeilen Code kann man ein Produkt in einem anderem Unternehmen freigeben:

EcoResProductReleaseSessionManager ecoResProductReleaseSessionManager;
   
ecoResProductReleaseSessionManager =
EcoResProductReleaseSessionManager::newReleaseSession();

ecoResProductReleaseSessionManager.addProduct(52565549190);
ecoResProductReleaseSessionManager.addLegalEntityForAllProducts(
CompanyInfo::findDataArea('USP2').RecId);

if( !ecoResProductReleaseSessionManager.execute())
{
    error("An error occured");
}

Wenn innerhalb eines SysOperation-Konstruktes ein Feld im Dialog gesperrt werden soll, daß über eine parm-Methode eingebunden ist, kann man Code wie den folgenden verwenden.

public void postBuild()
{
    DialogField df_SalesId;

    super();

    df_salesId =
    this.bindInfo().getDialogField(this.dataContractObject(),
                                   methodStr(DEV_SalesUpdateDatacontract, parmSalesId));

    if(df_salesId)
    {
        df_salesId.allowEdit(false);
        df_salesId.skip(true);
    }
}

ConViewMit Hilfe der Funktion conView() kann man sich den Inhalt eines Containers anzeigen lassen.

static void conViewExample(Args _args)
{
    container con;
   
    con = conIns(con, conLen(con)+1, ["Mazda", 2]);
    con = conIns(con, conLen(con)+1, ["Volkswagen", 1]);
    con = conIns(con, conLen(con)+1, ["Ferrari", 3]);
   
    conView(con);
}

Manchmal braucht man einfach nur die Länge eines Extended Datatypes (EDT):

new SysDictType(extendedtypenum(costingversionid)).stringLen()

Stellt euch folgendes Szenario vor: Im Dialog eines SysOperation-Konstruktes muss ein Feld abhängig von anderen Feldern manipuliert werden, beispielsweise soll die Eigenschaft AllowEdit verändert werden.

Dialog

Im folgenden findet ihr den Code für einen DataContract und den dazugehörigen UIBuilder, in welchem letztlich die entsprechende Programmlogik einzubauen ist.

Hier wir abhängig von der Auswahl im Feld Module entweder das Feld Customer account oder das Feld Vendor account freigeschalten.

DataContract

[DataContractAttribute, SysOperationContractProcessingAttribute(classStr(TutorialSysOperationUIBuilder))]
public class TutorialSysOperationDataContract
{
    ModuleCustVend moduleCustVend;
    CustAccount custAccount;
    VendAccount vendAccount;
}

 


Manchmal braucht man einfach nur die Länge eines Feldes einer Tabelle:

new SysDictType(SysDictField::findFieldByName(tableStr(SalesTable), identifierStr(SalesId)).typeId()).stringLen();

Seiten 1 2 3 4 ... 48 » 

 

 
Kategorien / Themen
Feeds
RSS RSS-Feed
RSS RSS-Feed (Kategorie)
Atom Atom-Feed
 
 
Beiträge des aktuellen Monats
Dezember 2017
MoDiMiDoFrSaSo
 123
45678910
11121314151617
18192021222324
25262728293031
 
 
© 2006-2016 Heinz Schweda | Impressum | Kontakt | English version (BETA) | 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