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. 
RSS-Feed dieser Version

RSS-Feed dieser Version
Modal Form in Dynamics AX erstellen/aufrufenUm 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
14.06.2013Microsoft Dynamics AX (Axapta)
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: |
|
|
|
|
|
|
Im folgenden eine kurze Anleitung, wie man eine Tabelle um ein Feld erweitert, in welchem ein verschlüsseltes Passwort gespeichert werden kann.
{
CryptoBlob cryptoBlob = connull();
;
cryptoBlob = DEV_Parameters::find().ServerPassword;
if (cryptoBlob != connull())
return cryptoblob2str(WinapiServer::cryptUnProtectData(cryptoBlob));
else
return '';
}
{
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 '';
}
}