Microsoft Dynamics Ax developer's blog

Friday, December 21, 2007

Blogroll

Just added a blogroll to the right bottom of my blog template. This blogroll is generated by Google Reader and represents all blogs in english I have subscribed to.

Friday, November 16, 2007

Comparing the Microsoft and Google tool chains

An interesting post about tools (software and hardware) which are used by Microsoft and Google developers.

By the way, I have two monitors too, and it is very useful for development in Ax, especially, for debugging display methods: when I had application and a debugger on the same screen, it was an ether not enough screen space (when debugger and application were placed side-by-side), or a deadloop (when I close the debugger, the underlying window starts to repaint, so display method was called again and debugger appears again).

Thursday, November 01, 2007

Gantt

Gannt charts in Ax are displayed Netronic VARCHART XGantt ActiveX control. If you follow the link you can download CHM and PDF documentation (about 900 pages) on it...

Friday, October 26, 2007

FarManager 1.80 will be Open Source



Far Manager1.80 will be Open Source.

FarManager is my favorite Norton Commander-like file manager.

The real power of this piece of software is in plugins. For example, a friend of mine had implemented a nice IDE for BAAN ERP based on FAR. And I also have some experience in this field.

Maybe, it looks weird for people, who do not remember DOS and NC, but is really powerful

Thursday, October 25, 2007

MS CRM in dotnetrocks

It is announced that the next tuesday a new dotnetrocks podcast show on MS CRM will be available:

10/30/2007
David Yack Talks Microsoft CRM!


AFAIR it is the first DotNetRocks show related to Dynamics

Tuesday, October 23, 2007

new version of the DEV_CreateStandardsMethods extendion



The extension now can add suffix to created methods and is fully translated to english. For example parameters from the screenshot will lead to creation of findByGUID and existByGUID methods. See axaptapedia article for download and details.

Monday, October 15, 2007

Wednesday, October 10, 2007

Print editor hotkeys

Just uploaded a printable version of editor hotkeys. I like lookup facilities of the code editor (F2 for tables and fields), but somtimes forget key combinations. Now I have printed it and sticked it to have it in front of my eyes.

Maybe it can be useful for you also...

Wednesday, October 03, 2007

Tabax is one year old

About one year ago the first version of tabax was released to public

Great Thanx to all people who took part in Tabax development: AndyD, Ivan, OIP and others.

And for i18n: Manel, Helmut, Romain Gasnier

BTW, Google Alerts gave me some Brazilian blog in Portugues and the only thing, that I can read there was Tabax :)

Below there are two screenshots:

A sidax predecessor, which was developed sombody from axforum




First internal version of sidax (which is two year old now).






Tuesday, August 07, 2007

Tabax 0.3.2

download
Changes:
  • AxPath: use of primary key of the record instead of recID
  • French localization (thanx to Romain Gasnier)
  • If tabax can not find it's resources on disk it tries to download them from Ax resources (useful for Ax 4 installations)

Tuesday, July 31, 2007

Unwanted fields fetching when selecting by unique index

UPD: Sorry, EmplTable is not good example - because of cache enabled. But this behavoiur is tested with a specially created table with CacheLookup==None.

Last friday i was optimizing a form with a lof of display fields with an implementation like the following:

display EmplName emplName()
{
return EmplTable::find(this.EmplID).Name;
}

The one of sources to increase performance of such code is to select only fields which will be used lately. So I have replaced this code with the following:

display EmplName emplName()
{
return this.EmplID ?
(select Name from EmplTable
where EmplTable.emplID==this.EmplID).Name
:
"";
}

but when I enabled SQL tracing, I found, that this code producess select with ALL fields of EmplTable.
It was strange... With a great help of my co worker, i've found the following:
  • when there is only fields of any unique index in the where condition, all fields are fetched
  • when there is an extra field in the condition, only required fields is selected (and the extra fields in where)
  • So I converted previously mentioned methods to the following:


display EmplName emplName()
{
return this.EmplID ?
(select Name from EmplTable
where EmplTable.emplID==this.EmplID
&&
EmplTable.recID
).Name
:
"";
}

Thursday, July 12, 2007

TabaxLite

TabaxLite is a stripped down version of Tabax for end users.
It is focused solely on the window management and does not require any external component



Wednesday, July 04, 2007

Hosting the Windows Workflow Foundation designer


Windows Workflow Foundation (WF) is the new MS technology. It comes with .NET framework 3.0.

It is interesting that workflow designer can be hosted by any app (here is an example).

And maybe someone can make an ActiveX which can be hosted by Axapta form (here is an example of ActiveX control implemented in C#)

Thursday, June 21, 2007

Sending attachments using the "mailto:" protocol

It works with Outlook at least. I think this example job is enough

static void Test_MailTo(Args _args)
{
str recepient='mbelugin@gmail.com';
str subject = 'Test';
str attachment = @'c:\AUTOEXEC.BAT';
str url = strFmt(
'mailto:%1?Subject=%2&attachments=""%3""',

recepient,
subject,
attachment
);
;
WinApi::shellExecute(url);
}