Dynamics AX Blog - Dynamics AX 2009 - Beiträge vom Juni 2013

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

RSS-Feed dieser Version
Momentan angezeigt werden nur Beiträge vom »Juni 2013«. Filter entfernen

Eine Tabelle um ein Passwort-Feld erweitern

Im folgenden eine kurze Anleitung, wie man eine Tabelle um ein Feld erweitert, in welchem ein verschlüsseltes Passwort gespeichert werden kann.

  • Zwei EDTs erstellen
    • Vom Typ Container DEV_ServerPassword, extends CryptoBlog
    • Vom Typ String DEV_ServerPasswordStr (Länge 128)
  • Neues Feld in Tabelle vom EDT DEV_ServerPassword
  • Neue Methode in Tabelle, über diese statische Methode kann später der Wert ausgelesen werden
static DEV_ServerPasswordStr password()
{
    CryptoBlob cryptoBlob = connull();
    ;
    cryptoBlob = DEV_Parameters::find().ServerPassword;
    
    if (cryptoBlob != connull())
        return cryptoblob2str(WinapiServer::cryptUnProtectData(cryptoBlob));
    else
        return '';
}
    
  • Neue Methode in der Datasource der Form
edit DEV_ServerPasswordStr setPassword(boolean _set = false, DEV_ServerPasswordStr _pwd = '')
{
    CryptoBlob cryptoBlob = connull();
    ;
    if (_set && _pwd != 'xxxxxxxx')
    {
        cryptoBlob = WinapiServer::cryptProtectData(str2cryptoblob(_pwd));
    
        DEV_Parameters.ServerPassword = cryptoBlob;
        DEV_Parameters.update();
    }
    
    if (DEV_Parameters.ServerPassword != connull())
    {
        return 'xxxxxxxx';
    }
    else
    {
        return  '';
    }
 }
  • Diese edit()-Methode ins Design des Formulares hineinziehen und auf dem Control die Eigenschaft PasswortStyle=YES setzen

 


 
 
 

Modal Form in Dynamics AX erstellen/aufrufen

Um in Dynamics AX ein Formular modal aufzurufen, kann man folgendes Code-Fragment aus der clicked()-Methode einer Schaltfläche (Button) verwenden:

void clicked()
{
    FormRun formRun;
    Args args = new Args();

    super();
    
    args.name(formStr(MyFormName));
    args.record(SalesLine);

    formRun = classFactory::formRunClassOnClient(Args);

    formRun.init();
    formRun.run();
    If (!formRun.closed())
    {
        formRun.wait(true);
    }
}

Auf diese Art & Weise kann man praktisch jedes Formular als modales - also als ein Formular öffnen, welches erst geschlossen werden muss, bevor mit der Anwendung weitergearbeitet werden kann - öffnen.


 
 
 

Word-Dokument per Code erstellen II

Microsoft WordAnbei ein einfach gehaltener Job, der ein einfaches Word-Dokument mit Überschriften per Code erstellt. Voraussetzung ist ein lokal installiertes Microsoft Word.

static void CreateWordFile(Args _args)
{
    COM wordApplication;
    COM wordDocuments;
    COM wordDocument;
    COM wordRange;
    COM wordSelection;
    COM wordStyles;
   
    #define.Heading1(-2)
    #define.Heading2(-3)
    #define.Heading3(-4)
    #define.Heading4(-5)
    #define.Heading5(-6)   
   
    void insertHeader(str _str, int _level)
    {
        COM wordStyle;
        wordSelection = wordApplication.selection();

        switch( _level )
        {
            case 1:
                wordStyle = wordStyles.item(#Heading1);
                break;
            case 2:
                wordStyle = wordStyles.item(#Heading2);
                break;
            case 3:
                wordStyle = wordStyles.item(#Heading3);
                break;
            case 4:
                wordStyle = wordStyles.item(#Heading4);
                break;
            case 5:
                wordStyle = wordStyles.item(#Heading5);
                break;
            default:
                wordStyle = wordStyles.item(#Heading3);
        }       
       
        wordSelection.style(wordStyle);

        wordSelection.TypeText(_str);

        wordSelection.TypeParagraph();
    }   
   
    wordApplication = new COM("word.application");
    wordApplication.visible(TRUE);
    wordDocuments = wordApplication.Documents();
    wordDocument = wordDocuments.add();
    wordDocument.saveas(@"c:\temp\LoremIpsum.doc");
    wordDocument.activate();

    wordStyles = wordDocument.styles();

    wordRange = wordDocument.range(0,0);   
   
    // Let's go
    insertHeader("Lorem ipsum", 1);
    wordSelection.TypeText("Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam");
    wordSelection.TypeParagraph();
   
    insertHeader("Lorem ipsum", 2);
    wordSelection.TypeText("Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam");
    wordSelection.TypeParagraph();
   
    wordSelection.TypeText("Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut");
    wordSelection.TypeParagraph();
   
    // Finish
    wordDocument.save();
    wordDocument.close();
    wordApplication.quit();   

}

So sieht das Word-Dokument aus, daß mit obigem Code erstellt wurde:

Lorem Ipsum Word-file


 
 
 

 

 
 
 
Beiträge des aktuellen Monats
Juni 2013
MoDiMiDoFrSaSo
 12
3456789
10111213141516
17181920212223
24252627282930
 
© 2006-2025 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