<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Art Of Creation - Dynamics AX Blog &#187; X++</title>
	<atom:link href="http://www.artofcreation.be/tag/x/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.artofcreation.be</link>
	<description>The everyday life of a Dynamics AX developer</description>
	<lastBuildDate>Thu, 02 Feb 2012 12:20:26 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1</generator>
		<item>
		<title>Top reasons to follow best practices</title>
		<link>http://www.artofcreation.be/2011/08/16/top-reasons-follow-best-practices/</link>
		<comments>http://www.artofcreation.be/2011/08/16/top-reasons-follow-best-practices/#comments</comments>
		<pubDate>Tue, 16 Aug 2011 17:14:16 +0000</pubDate>
		<dc:creator>Klaas Deforche</dc:creator>
				<category><![CDATA[Dynamics AX]]></category>
		<category><![CDATA[Best practices]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[X++]]></category>

		<guid isPermaLink="false">http://www.artofcreation.be/?p=1067</guid>
		<description><![CDATA[Hi all. Here&#8217;s a list of af few reasons why I think it is important to fix those best practice errors :-). Improved performance Many best practices have an influence on performance. For example, it is best practice to set the property CreateRecIdIndex to True on tables with Created/Modified DateTime fields. If you don&#8217;t, this [...]]]></description>
			<content:encoded><![CDATA[<p>Hi all. </p>
<p>Here&#8217;s a list of af few reasons why I think it is important to fix those best practice errors :-). </p>
<p><strong>Improved performance</strong><br />
Many best practices have an influence on performance. For example, it is best practice to set the property CreateRecIdIndex to True on tables with Created/Modified DateTime fields. If you don&#8217;t, this will have an adverse effect on the performance of those tables.<br />
Another example is that if you adhere to the best practices concerning the construction of classes and the use of batch classes, it will be much easier to improve performance by enabling batch multi-threading. </p>
<p><strong>Improved readability of code</strong><br />
When all developers follow best practices about formatting of code, the code will be more readable and easier to understand. Avoiding dead code and removing unused variables will also make the code less confusing. </p>
<p><strong>Developers learn</strong><br />
There are a lot of handy things you can learn by solving best practice deviations. Adding fields to field groups for example is a great way to avoid customizations to forms. And by figuring out what configuration is needed on a menu item, you learn about what effect configuration keys have on you solution. </p>
<p><strong>Improved security </strong><br />
Adding security and configuration keys is vital to good security. When ignoring best practices, an unauthorized user might cause a big mess that you&#8217;ll have to clean up. </p>
<p><strong>Certified for Dynamics AX</strong><br />
Making sure your solution is best practice deviation free goes a long way towards passing the <a href="http://en-us.lionbridge.com/ProductEngg.aspx?pageid=1197&#038;LangType=1033">Software Solution Test</a>. </p>
<p><strong>Better user experience</strong><br />
Some best practices have to do with labels, help texts, descriptions for batch task, etc. If you ignore those, it will be more difficult for the user to understand the solution you created. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.artofcreation.be/2011/08/16/top-reasons-follow-best-practices/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>X++ Performance tips</title>
		<link>http://www.artofcreation.be/2011/02/06/x-performance-tips/</link>
		<comments>http://www.artofcreation.be/2011/02/06/x-performance-tips/#comments</comments>
		<pubDate>Sun, 06 Feb 2011 12:21:02 +0000</pubDate>
		<dc:creator>Klaas Deforche</dc:creator>
				<category><![CDATA[Dynamics AX]]></category>
		<category><![CDATA[2009]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[X++]]></category>

		<guid isPermaLink="false">http://www.artofcreation.be/?p=975</guid>
		<description><![CDATA[Hi everyone. I want to do an other post about performance. But not so much about exotic SQL stuff or hidden settings, but simple X++ performance tips. These are the first things I do and look for when there is a performance problem, because they are easy and obvious things to fix. Tip 1: Measure [...]]]></description>
			<content:encoded><![CDATA[<p>Hi everyone. </p>
<p>I want to do an other post about performance. But not so much about exotic SQL stuff or hidden settings, but simple X++ performance tips.<br />
These are the first things I do and look for when there is a performance problem, because they are easy and obvious things to fix. </p>
<p><strong>Tip 1: Measure execution time of your code</strong><br />
Measuring is knowing. Before you start changing code, make sure you have a set of data you can keep reusing for your tests. Measure the performance of your code on that data after each change in code so you know the impact of your changes. </p>
<p>One way to do this is by using the Winapi::getTickCount() (or WinApiServer::getTickCount() if your code runs on server) method.</p>
<div class="codecolorer-container xpp default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="xpp codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #0000ff;">static</span> <span style="color: #0000ff;">void</span> KlForTickCountSample<span style="color: #000000;">&#40;</span>Args _args<span style="color: #000000;">&#41;</span><br />
<span style="color: #000000;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #0000ff;">int</span> ticks;<br />
&nbsp; &nbsp; ;<br />
<br />
&nbsp; &nbsp; <span style="color: #007f00;">// get the tickcount before the process starts</span><br />
&nbsp; &nbsp; ticks <span style="color: #00007f;">=</span> winapi<span style="color: #00007f;">::</span><span style="color: #000000;">getTickCount</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;<br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #007f00;">// start the process</span><br />
&nbsp; &nbsp; <span style="color: #0000ff;">sleep</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">2000</span><span style="color: #000000;">&#41;</span>; <span style="color: #007f00;">// simulate 2 seconds of processing</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #007f00;">// compare tickcount</span><br />
&nbsp; &nbsp; ticks <span style="color: #00007f;">=</span> winapi<span style="color: #00007f;">::</span><span style="color: #000000;">getTickCount</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span> <span style="color: #00007f;">-</span> ticks;<br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #007f00;">// display result</span><br />
&nbsp; &nbsp; info<span style="color: #000000;">&#40;</span><span style="color: #0000ff;">strfmt</span><span style="color: #000000;">&#40;</span><span style="color: #ff0000;">'Number of ticks: %1'</span><span style="color: #00007f;">,</span> ticks<span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span>;<br />
<span style="color: #000000;">&#125;</span></div></div>
<p><strong>Tip 2: limit the number of loops</strong><br />
A LOT of time goes into loops. If you have a performance problem, start looking for loops. Code can run really fast, but it can get slow when it is executed too many time, eg, in a loop. </p>
<p><strong>Tip 3: avoid &#8216;if&#8217; in &#8216;while select&#8217;</strong><br />
When there is a &#8216;if&#8217; in a &#8216;while select&#8217;, see if you can rewrite it a a where statement in your select. Don&#8217;t be affraid use a join either. Consider the following example:</p>
<div class="codecolorer-container xpp default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="xpp codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #0000ff;">static</span> <span style="color: #0000ff;">void</span> KlForIfInLoop<span style="color: #000000;">&#40;</span>Args _args<span style="color: #000000;">&#41;</span><br />
<span style="color: #000000;">&#123;</span><br />
&nbsp; &nbsp; VendTable vendTable;<br />
&nbsp; &nbsp; ;<br />
<br />
&nbsp; &nbsp; <span style="color: #007f00;">// usually slower</span><br />
&nbsp; &nbsp; <span style="color: #0000ff;">while</span> <span style="color: #0000ff;">select</span> vendTable<br />
&nbsp; &nbsp; <span style="color: #000000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">if</span><span style="color: #000000;">&#40;</span>vendTable.<span style="color: #000000;">VendGroup</span> <span style="color: #00007f;">==</span> <span style="color: #ff0000;">'VG1'</span><span style="color: #000000;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; info<span style="color: #000000;">&#40;</span>vendTable.<span style="color: #000000;">AccountNum</span><span style="color: #000000;">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #000000;">&#125;</span><br />
<br />
&nbsp; &nbsp; <span style="color: #007f00;">// usually faster</span><br />
&nbsp; &nbsp; <span style="color: #0000ff;">while</span> <span style="color: #0000ff;">select</span> vendTable<br />
&nbsp; &nbsp; <span style="color: #0000ff;">where</span> vendTable.<span style="color: #000000;">VendGroup</span> <span style="color: #00007f;">==</span> <span style="color: #ff0000;">'VG1'</span><br />
&nbsp; &nbsp; <span style="color: #000000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; info<span style="color: #000000;">&#40;</span>vendTable.<span style="color: #000000;">AccountNum</span><span style="color: #000000;">&#41;</span>;<br />
&nbsp; &nbsp; <span style="color: #000000;">&#125;</span><br />
<span style="color: #000000;">&#125;</span></div></div>
<p><strong>Tip 4: avoid double use of table methods</strong><br />
Using table methods a lot can get really slow if you do it wrong. </p>
<p>Consider the following example:</p>
<div class="codecolorer-container xpp default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="xpp codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #0000ff;">static</span> <span style="color: #0000ff;">void</span> klForTableMethodsSlow<span style="color: #000000;">&#40;</span>Args _args<span style="color: #000000;">&#41;</span><br />
<span style="color: #000000;">&#123;</span><br />
&nbsp; &nbsp; SalesLine salesLine;<br />
&nbsp; &nbsp; InventDim inventDim;<br />
&nbsp; &nbsp; ;<br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #007f00;">// select a salesline</span><br />
&nbsp; &nbsp; <span style="color: #0000ff;">select</span> <span style="color: #0000ff;">firstonly</span> salesLine;<br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; inventDim.<span style="color: #000000;">InventColorId</span> <span style="color: #00007f;">=</span> salesLine.<span style="color: #000000;">inventDim</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>.<span style="color: #000000;">InventColorId</span>;<br />
&nbsp; &nbsp; inventDim.<span style="color: #000000;">InventSizeId</span> &nbsp;<span style="color: #00007f;">=</span> salesLine.<span style="color: #000000;">inventDim</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>.<span style="color: #000000;">InventSizeId</span>;<br />
&nbsp; &nbsp; inventDim.<span style="color: #000000;">inventBatchId</span> <span style="color: #00007f;">=</span> salesLine.<span style="color: #000000;">inventDim</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>.<span style="color: #000000;">inventBatchId</span>;<br />
<span style="color: #000000;">&#125;</span></div></div>
<p>This example code looks nice, but there&#8217;s a problem.<br />
The salesLine.inventDim() method contains the following:</p>
<div class="codecolorer-container xpp default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="xpp codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">InventDim inventDim<span style="color: #000000;">&#40;</span><span style="color: #0000ff;">boolean</span> &nbsp;_forUpdate <span style="color: #00007f;">=</span> <span style="color: #0000ff;">false</span><span style="color: #000000;">&#41;</span><br />
<span style="color: #000000;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #0000ff;">return</span> InventDim<span style="color: #00007f;">::</span><span style="color: #000000;">find</span><span style="color: #000000;">&#40;</span>this.<span style="color: #000000;">InventDimId</span><span style="color: #00007f;">,</span> _forUpdate<span style="color: #000000;">&#41;</span>;<br />
<span style="color: #000000;">&#125;</span></div></div>
<p>This means that the invendDim record is read three times from the database.<br />
It is better to declare the inventDim record locally and only retrieve it once:</p>
<div class="codecolorer-container xpp default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="xpp codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #0000ff;">static</span> <span style="color: #0000ff;">void</span> klForTableMethodsFast<span style="color: #000000;">&#40;</span>Args _args<span style="color: #000000;">&#41;</span><br />
<span style="color: #000000;">&#123;</span><br />
&nbsp; &nbsp; SalesLine salesLine;<br />
&nbsp; &nbsp; InventDim inventDim;<br />
&nbsp; &nbsp; InventDim inventDimLoc;<br />
&nbsp; &nbsp; ;<br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #007f00;">// select a salesline</span><br />
&nbsp; &nbsp; <span style="color: #0000ff;">select</span> <span style="color: #0000ff;">firstonly</span> salesLine;<br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; inventDimLoc <span style="color: #00007f;">=</span> salesLine.<span style="color: #000000;">inventDim</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;<br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; inventDim.<span style="color: #000000;">InventColorId</span> <span style="color: #00007f;">=</span> inventDimLoc.<span style="color: #000000;">InventColorId</span>;<br />
&nbsp; &nbsp; inventDim.<span style="color: #000000;">InventSizeId</span> &nbsp;<span style="color: #00007f;">=</span> inventDimLoc.<span style="color: #000000;">InventSizeId</span>;<br />
&nbsp; &nbsp; inventDim.<span style="color: #000000;">inventBatchId</span> <span style="color: #00007f;">=</span> inventDimLoc.<span style="color: #000000;">inventBatchId</span>;<br />
<span style="color: #000000;">&#125;</span></div></div>
<p><strong>Tip 5: Don&#8217;t put too much code on tables</strong><br />
Code on tables is usually fast, but things can get slow if you use it to much.<br />
Say you have a table with an InventDimId field. If you have 5 methods that need the InventDim record, because you don&#8217;t have a classDeclaration method on your table, you need to call this function 5 times, once in every method:</p>
<div class="codecolorer-container xpp default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="xpp codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">InventDim<span style="color: #00007f;">::</span><span style="color: #000000;">find</span><span style="color: #000000;">&#40;</span>this.<span style="color: #000000;">inventDim</span><span style="color: #000000;">&#41;</span></div></div>
<p>.<br />
When you put these methods on a class, you could optimise it by fetching the record only once and storing it in the classDeclaration, or better, passing it as a parameter to your methods. </p>
<p>An other example is fetching parameters from parameter tables, eg InventParameters::find(). On a table, you have to fetch it each time you call a method. In a class, you would probably optimize your code to only fetch the parameter record once. </p>
<p><strong>Tip 6: Use the fastest code</strong><br />
For some tasks, there is &#8216;special code&#8217; that is faster than the code you would normally write.<br />
For example:</p>
<div class="codecolorer-container xpp default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="xpp codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #007f00;">// slower</span><br />
<span style="color: #0000ff;">while</span> <span style="color: #0000ff;">select</span> <span style="color: #0000ff;">forupdate</span> custTable<br />
<span style="color: #0000ff;">where</span> custTable.<span style="color: #000000;">custGroup</span> <span style="color: #00007f;">==</span> <span style="color: #ff0000;">'TST'</span><br />
<span style="color: #000000;">&#123;</span><br />
&nbsp; &nbsp; custTable.<span style="color: #000000;">delete</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;<br />
<span style="color: #000000;">&#125;</span><br />
<br />
<span style="color: #007f00;">// faster</span><br />
<span style="color: #0000ff;">delete_from</span> custTable<br />
<span style="color: #0000ff;">where</span> custTable.<span style="color: #000000;">custGroup</span> <span style="color: #00007f;">==</span> <span style="color: #ff0000;">'TST'</span>;</div></div>
<p>The same applies to update_recordset for updating records. </p>
<p>Also, when adding values to the end of a container</p>
<div class="codecolorer-container xpp default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="xpp codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">cont <span style="color: #00007f;">+=</span> <span style="color: #ff0000;">&quot;a value&quot;</span>;</div></div>
<p>is faster than</p>
<div class="codecolorer-container xpp default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="xpp codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">cont <span style="color: #00007f;">=</span> <span style="color: #0000ff;">conins</span><span style="color: #000000;">&#40;</span>cont<span style="color: #00007f;">,</span> <span style="color: #0000ff;">conlen</span><span style="color: #000000;">&#40;</span>cont<span style="color: #000000;">&#41;</span><span style="color: #00007f;">,</span> <span style="color: #ff0000;">&quot;a value&quot;</span><span style="color: #000000;">&#41;</span>;</div></div>
<p><strong>Tip 6: Every optimization counts</strong><br />
Remember that every optimization you do to you code counts, even if it&#8217;s a little one. Small performance tweaks can have a huge effect once you process large quantities of data. So don&#8217;t be lazy, and optimize :-).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.artofcreation.be/2011/02/06/x-performance-tips/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Trivial: by in group by is optional</title>
		<link>http://www.artofcreation.be/2010/08/04/trivial-by-in-group-by-is-optional/</link>
		<comments>http://www.artofcreation.be/2010/08/04/trivial-by-in-group-by-is-optional/#comments</comments>
		<pubDate>Wed, 04 Aug 2010 16:11:45 +0000</pubDate>
		<dc:creator>Klaas Deforche</dc:creator>
				<category><![CDATA[Dynamics AX]]></category>
		<category><![CDATA[Compiler]]></category>
		<category><![CDATA[Job]]></category>
		<category><![CDATA[Syntax]]></category>
		<category><![CDATA[Trivial]]></category>
		<category><![CDATA[X++]]></category>

		<guid isPermaLink="false">http://www.artofcreation.be/?p=880</guid>
		<description><![CDATA[Here is something I did not know: apparently, the &#8216;by&#8217; in &#8216;group by&#8217; is optional. The following job compiles just fine, and outputs the correct result: static void KlForGroupBy&#40;Args _args&#41; &#123; &#160; &#160; InventTable inventTable; &#160; &#160; ; &#160; &#160; &#160; &#160; while select inventTable &#160; &#160; group by ItemGroupId &#160; &#160; &#123; &#160; &#160; [...]]]></description>
			<content:encoded><![CDATA[<p>Here is something I did not know: apparently, the &#8216;by&#8217; in &#8216;group by&#8217; is optional. </p>
<p>The following job compiles just fine, and outputs the correct result:</p>
<div class="codecolorer-container xpp default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="xpp codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #0000ff;">static</span> <span style="color: #0000ff;">void</span> KlForGroupBy<span style="color: #000000;">&#40;</span>Args _args<span style="color: #000000;">&#41;</span><br />
<span style="color: #000000;">&#123;</span><br />
&nbsp; &nbsp; InventTable inventTable;<br />
&nbsp; &nbsp; ;<br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #0000ff;">while</span> <span style="color: #0000ff;">select</span> inventTable<br />
&nbsp; &nbsp; <span style="color: #0000ff;">group by</span> ItemGroupId<br />
&nbsp; &nbsp; <span style="color: #000000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; info<span style="color: #000000;">&#40;</span>inventTable.<span style="color: #000000;">ItemGroupId</span><span style="color: #000000;">&#41;</span>;<br />
&nbsp; &nbsp; <span style="color: #000000;">&#125;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; info<span style="color: #000000;">&#40;</span><span style="color: #ff0000;">'------'</span><span style="color: #000000;">&#41;</span>;<br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #0000ff;">while</span> <span style="color: #0000ff;">select</span> inventTable<br />
&nbsp; &nbsp; group ItemGroupId <span style="color: #007f00;">// without by</span><br />
&nbsp; &nbsp; <span style="color: #000000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; info<span style="color: #000000;">&#40;</span>inventTable.<span style="color: #000000;">ItemGroupId</span><span style="color: #000000;">&#41;</span>;<br />
&nbsp; &nbsp; <span style="color: #000000;">&#125;</span><br />
<span style="color: #000000;">&#125;</span></div></div>
<p>It looks funny though :-). </p>
]]></content:encoded>
			<wfw:commentRss>http://www.artofcreation.be/2010/08/04/trivial-by-in-group-by-is-optional/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>X++ editor bug?</title>
		<link>http://www.artofcreation.be/2010/04/14/x-editor-bug/</link>
		<comments>http://www.artofcreation.be/2010/04/14/x-editor-bug/#comments</comments>
		<pubDate>Wed, 14 Apr 2010 17:02:36 +0000</pubDate>
		<dc:creator>Klaas Deforche</dc:creator>
				<category><![CDATA[Dynamics AX]]></category>
		<category><![CDATA[Editor]]></category>
		<category><![CDATA[X++]]></category>
		<category><![CDATA[Youtube]]></category>

		<guid isPermaLink="false">http://www.artofcreation.be/?p=682</guid>
		<description><![CDATA[Hi All! There&#8217;s this little bug in the X++ editor that I find fairy annoying. When you paste text at the beginning of a line, the first character get overwritten. I demonstrate it in the next video: Is it just me?]]></description>
			<content:encoded><![CDATA[<p>Hi All!</p>
<p>There&#8217;s this little bug in the X++ editor that I find fairy annoying.<br />
When you paste text at the beginning of a line, the first character get overwritten. </p>
<p>I demonstrate it in the next video:<br />
<object width="640" height="385"><param name="movie" value="http://www.youtube.com/v/FZA4lPVIVj0&#038;hl=nl_NL&#038;fs=1&#038;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/FZA4lPVIVj0&#038;hl=nl_NL&#038;fs=1&#038;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="385"></embed></object></p>
<p>Is it just me?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.artofcreation.be/2010/04/14/x-editor-bug/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>X++ and Notepad++</title>
		<link>http://www.artofcreation.be/2010/02/18/x-and-notepad/</link>
		<comments>http://www.artofcreation.be/2010/02/18/x-and-notepad/#comments</comments>
		<pubDate>Thu, 18 Feb 2010 17:13:19 +0000</pubDate>
		<dc:creator>Klaas Deforche</dc:creator>
				<category><![CDATA[Dynamics AX]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Notepad++]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[X++]]></category>

		<guid isPermaLink="false">http://www.artofcreation.be/?p=494</guid>
		<description><![CDATA[I notice that a lot of people are looking for a way to syntax color their xpo&#8217;s when viewing them in Notepad++. There is an article on Axaptapedia that covers this, that includes a sample xml snippet you can use. For some reason though, when you google &#8220;x++ notepad++&#8221;, the Axaptapedia page is nowhere to [...]]]></description>
			<content:encoded><![CDATA[<p>I notice that a lot of people are looking for a way to syntax color their xpo&#8217;s when viewing them in <a href="http://notepad-plus.sourceforge.net/uk/site.htm">Notepad++</a>. </p>
<p>There is an <a href="http://www.axaptapedia.com/Notepad">article on Axaptapedia</a> that covers this, that includes a sample xml snippet you can use. </p>
<p>For some reason though, when you google &#8220;x++ notepad++&#8221;, the Axaptapedia page is nowhere to be found. </p>
<p>I&#8217;ve also created a custom language based on the one on wikipedia, that uses colors that resemble the ones in the X++ editor a bit more:</p>
<div class="codecolorer-container xml default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="xml codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;UserLang</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;XPP_XPO&quot;</span> <span style="color: #000066;">ext</span>=<span style="color: #ff0000;">&quot;xpo&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Settings<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Global</span> <span style="color: #000066;">caseIgnored</span>=<span style="color: #ff0000;">&quot;no&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;TreatAsSymbol</span> <span style="color: #000066;">comment</span>=<span style="color: #ff0000;">&quot;no&quot;</span> <span style="color: #000066;">commentLine</span>=<span style="color: #ff0000;">&quot;no&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Prefix</span> <span style="color: #000066;">words1</span>=<span style="color: #ff0000;">&quot;no&quot;</span> <span style="color: #000066;">words2</span>=<span style="color: #ff0000;">&quot;no&quot;</span> <span style="color: #000066;">words3</span>=<span style="color: #ff0000;">&quot;no&quot;</span> <span style="color: #000066;">words4</span>=<span style="color: #ff0000;">&quot;no&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Settings<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;KeywordLists<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Keywords</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;Delimiters&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span><span style="color: #ddbb00;">&amp;quot;&amp;apos;</span>0<span style="color: #ddbb00;">&amp;quot;&amp;apos;</span>0<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Keywords<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Keywords</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;Folder+&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>SOURCE { CLASS METHODS PROPERTIES CONTROL CONTAINER ARRAY INDEX FORM OBJECTBANK DATASOURCE OBJECTPOOL FIELDLIST JOINS DESIGN TYPEELEMENTS TYPEREFERENCES USERTYPE FIELDS GROUPS GROUPFIELDS GROUP DATAFIELD INDICES INDEXFIELDS REFERENCES REFERENCE FIELDREFERENCES DELETEACTIONS BEGINNODE MENUITEM MENU<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Keywords<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Keywords</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;Folder-&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>ENDSOURCE } ENDMETHODS ENDCLASS ENDPROPERTIES ENDCONTROL ENDCONTAINER ENDARRAY ENDFORM ENDOBJECTBANK ENDDATASOURCE ENDOBJECTPOOL ENDFIELDLIST ENDJOINS ENDDESIGN ENDTYPEELEMENTS ENDTYPEREFERENCES ENDUSERTYPE ENDFIELDS ENDGROUPS ENDGROUPFIELDS ENDGROUP ENDINDEXFIELDS ENDINDICES ENDFIELDREFERENCES ENDREFERENCE ENDREFERENCES ENDDELETEACTIONS ENDTABLE ENDNODE ENDPROJECT ENDDATAFIELD ENDMENUITEM ENDMENU<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Keywords<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Keywords</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;Operators&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span><span style="color: #ddbb00;">&amp;apos;</span> ! <span style="color: #ddbb00;">&amp;quot;</span> ?<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Keywords<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Keywords</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;Comment&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>1/* 2*/ 0//<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Keywords<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Keywords</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;Words1&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>Formatversion: Configuration: language directory company user client fetchahead opencursors database dsn sqluser hint sqlbuffer log hassqlpwd sqlpwd sqlparm retry dbserversqltrace haswarnings warnings share bindir startupmsg servermask localappl localappldoc locallabel localsysdoc applshare applexclusive doclanguage startupcmd logdir hascompwd compwd hasserveridletimeout serveridletimeout connectionidletimeout querytimelimit extracmdline port createdsn createdsn_tcpipport aos allowunauth exposeserverprers useserverprers sqlformliterals sqlcomplexliterals sqloraclefirstrowsfix ignoredatasourceindex aosencryption xppdebug dbcli ociconnectservice ociservice ocihost ocidbid ocitcpipport ociuser hasocipwd ocipwd preloadthresholdmsec preloadthresholdrecords dbunicodeenabled newconnectionretrydelayms newconnectionretrycount cachesynctime _clientmode _clientadname application broadcast internet aol aolcode sql native dbserver sqltrace exposeserverprinters useserverprinters ***Element FRMVERSION str container int select firstonly where while for Filename if return void public super element Return Yes No Delayed<span style="color: #ddbb00;">&amp;#x0D;&amp;#x0A;</span> First Auto Default Normal Watch Vertical NoAccess Main Column width None Outside Opaque Button face View Grid Window background Highlight text Left Right only Text info run Version Else error Args Raised height Horizontal flush right boolean Common QueryRun FormTreeItem class Set FormTreeControl map anytype Dialog SysDictField this New new Query QueryBuildRange else QueryBuildDataSource Array mapiterator ttsbegin ttscommit FileName SaxReader SaxErrorHandler SaxAttributes TextBuffer protected catch try Called from classDeclaration Arrow USERTYPEVERSION TABLEVERSION FIELD Integer Absolute AutoReport AutoLookup REFERENCETYPE NORMAL static Miscellaneous Delete Not specified String Memo Cascade PROJECTVERSION SHARED JOBVERSION NoYes private null count Map DictTable break ttsBegin ttsCommit Error Exception true sum server DictField Counter throw join abstract extends endif index continue false switch case Version Restricted InnerJoin Active Standard Display VERSION MNUVERSION<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Keywords<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Keywords</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;Words2&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>Text Int Name Table Index Company CounterField AllowCheck AllowEdit AllowCreate AllowDelete StartPosition AutoSearch AutoNotify AutoQuery OnlyFetchActive JoinSource LinkType DelayActive InsertAtEnd InsertIfEmpty Left Top Width Height Visible Caption TitleDatasource Frame WindowResize WindowType SaveSize SaveSize HideToolbar SetCompany ColorScheme CssClass ShowWebHelp BackgroundColor ImageName ImageResource Imagemode Mode SubmitMethod SupportReload LocalWebMenu AllowDocking Font FontSize Italic Underline Bold CharacterSet LabelFont LabelFontSize LabelItalic LabelUnderline LabelBold LabelCharacterSet DataSource TopMargin BottomMargin LeftMargin RightMargin ArrangeWhen ArrangeMethod Columns Columnspace ArrangeGuide HideIfEmpty AlignChildren AlignChild AllowUserSetup NeededAccessLevel AutoDeclaration VerticalSpacing Enabled Skip AlignControl HelpText ConfigurationKey SecurityKey DragDrop FrameType FramePosition BackStyle FrameOptionButton OptionValue DataGroup AutoDataGroup MultiSelect VisibleCols VisibleRows ShowColLabels ShowRowLabels HighlightActive ActiveBackColor ActiveForeColor GridLines LookupButton ReplaceOnLookup LimitText DisplayLength DisplayHeight Border Value Alignment SignDisplay RotateSign ShowZero DisplaceNegative AllowNegative ForegroundColor LabelForegroundColor ShowLabel Label LabelWidth LabelHeight LabelPosition LabelAlignment DataField Mandatory ArrayIndex SearchMode PasswordStyle ChangeCase MultiLine ExtendedDataType DataMethod ButtonDisplay NormalImage NormalResource DisabledImage DisabledResource ShowShortCut DefaultButton SaveRecord Tabs Tab TabAppearance ShowTabs TabPlacement TabLayout SelectControl TabAutoChange Extends RunOnFormHelp ArrayLength FormHelp ButtonImage StringSize Adjustment GroupPrompt SaveContents AliasFor AllowEditOnCreate FieldUpdate Type OldName AllowDuplicates Validate Field RelatedField TitleField1 TitleField2 Temporary TableContents Systemtable MaxAccessMode CreateRecIdIndex SaveDataPerCompany TableGroup PrimaryIndex ClusterIndex ModifiedDate ModifiedTime ModifiedBy ModifiedTransactionId CreatedDate CreatedTime CreatedBy CreatedTransactionId DeleteAction FormRef CacheLookup FILETYPE UTILTYPE UTILOBJECTID NODETYPE NAME EnumType Style RunOn AllowAdd Selection HideFirstEntry ComboType AppendNew SizeWidth SizeHeight MenuItemType MenuItemName DateValue DateFormat DateSeparator DateYear DateMonth DateDay RealValue ThousandSeparator DecimalSeparator NoOfDecimals AutoInsSeparator FormatMST Class Object Parameters EnumTypeParameter EnumParameter Web WebAccess WebSecureTransaction WebPage CountryConfigurationkey WebConfigurationkey WebTarget ProjectGroupType GroupMask PreventEditProperties<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Keywords<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Keywords</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;Words3&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>FRM GRID INTEDIT STRINGEDIT BUTTON TAB TABPAGE CLS CLSVERSION || <span style="color: #ddbb00;">&amp;amp;&amp;amp;</span> UTI INT UTS STRING DBT TABLE PRN PROJECT END \ JOB ENUM COMBOBOX CHECKBOX STATICTEXT BUTTONGROUP MENUITEMBUTTON MENUBUTTON WINDOW DATEEDIT REALEDIT SEPARATOR FTM MNU UTE<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Keywords<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Keywords</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;Words4&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>@<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Keywords<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/KeywordLists<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Styles<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;WordsStyle</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;DEFAULT&quot;</span> <span style="color: #000066;">styleID</span>=<span style="color: #ff0000;">&quot;11&quot;</span> <span style="color: #000066;">fgColor</span>=<span style="color: #ff0000;">&quot;000000&quot;</span> <span style="color: #000066;">bgColor</span>=<span style="color: #ff0000;">&quot;FFFFFF&quot;</span> <span style="color: #000066;">fontName</span>=<span style="color: #ff0000;">&quot;&quot;</span> <span style="color: #000066;">fontStyle</span>=<span style="color: #ff0000;">&quot;0&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;WordsStyle</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;FOLDEROPEN&quot;</span> <span style="color: #000066;">styleID</span>=<span style="color: #ff0000;">&quot;12&quot;</span> <span style="color: #000066;">fgColor</span>=<span style="color: #ff0000;">&quot;FF8040&quot;</span> <span style="color: #000066;">bgColor</span>=<span style="color: #ff0000;">&quot;FFFFFF&quot;</span> <span style="color: #000066;">fontName</span>=<span style="color: #ff0000;">&quot;&quot;</span> <span style="color: #000066;">fontStyle</span>=<span style="color: #ff0000;">&quot;0&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;WordsStyle</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;FOLDERCLOSE&quot;</span> <span style="color: #000066;">styleID</span>=<span style="color: #ff0000;">&quot;13&quot;</span> <span style="color: #000066;">fgColor</span>=<span style="color: #ff0000;">&quot;FF8040&quot;</span> <span style="color: #000066;">bgColor</span>=<span style="color: #ff0000;">&quot;FFFFFF&quot;</span> <span style="color: #000066;">fontName</span>=<span style="color: #ff0000;">&quot;&quot;</span> <span style="color: #000066;">fontStyle</span>=<span style="color: #ff0000;">&quot;0&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;WordsStyle</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;KEYWORD1&quot;</span> <span style="color: #000066;">styleID</span>=<span style="color: #ff0000;">&quot;5&quot;</span> <span style="color: #000066;">fgColor</span>=<span style="color: #ff0000;">&quot;0000FF&quot;</span> <span style="color: #000066;">bgColor</span>=<span style="color: #ff0000;">&quot;FFFFFF&quot;</span> <span style="color: #000066;">fontName</span>=<span style="color: #ff0000;">&quot;&quot;</span> <span style="color: #000066;">fontStyle</span>=<span style="color: #ff0000;">&quot;1&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;WordsStyle</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;KEYWORD2&quot;</span> <span style="color: #000066;">styleID</span>=<span style="color: #ff0000;">&quot;6&quot;</span> <span style="color: #000066;">fgColor</span>=<span style="color: #ff0000;">&quot;007F00&quot;</span> <span style="color: #000066;">bgColor</span>=<span style="color: #ff0000;">&quot;FFFFFF&quot;</span> <span style="color: #000066;">fontName</span>=<span style="color: #ff0000;">&quot;&quot;</span> <span style="color: #000066;">fontStyle</span>=<span style="color: #ff0000;">&quot;2&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;WordsStyle</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;KEYWORD3&quot;</span> <span style="color: #000066;">styleID</span>=<span style="color: #ff0000;">&quot;7&quot;</span> <span style="color: #000066;">fgColor</span>=<span style="color: #ff0000;">&quot;FF0000&quot;</span> <span style="color: #000066;">bgColor</span>=<span style="color: #ff0000;">&quot;FFFFFF&quot;</span> <span style="color: #000066;">fontName</span>=<span style="color: #ff0000;">&quot;&quot;</span> <span style="color: #000066;">fontStyle</span>=<span style="color: #ff0000;">&quot;1&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;WordsStyle</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;KEYWORD4&quot;</span> <span style="color: #000066;">styleID</span>=<span style="color: #ff0000;">&quot;8&quot;</span> <span style="color: #000066;">fgColor</span>=<span style="color: #ff0000;">&quot;FF0000&quot;</span> <span style="color: #000066;">bgColor</span>=<span style="color: #ff0000;">&quot;FFFFFF&quot;</span> <span style="color: #000066;">fontName</span>=<span style="color: #ff0000;">&quot;&quot;</span> <span style="color: #000066;">fontStyle</span>=<span style="color: #ff0000;">&quot;0&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;WordsStyle</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;COMMENT&quot;</span> <span style="color: #000066;">styleID</span>=<span style="color: #ff0000;">&quot;1&quot;</span> <span style="color: #000066;">fgColor</span>=<span style="color: #ff0000;">&quot;007F00&quot;</span> <span style="color: #000066;">bgColor</span>=<span style="color: #ff0000;">&quot;FFFFFF&quot;</span> <span style="color: #000066;">fontName</span>=<span style="color: #ff0000;">&quot;&quot;</span> <span style="color: #000066;">fontStyle</span>=<span style="color: #ff0000;">&quot;0&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;WordsStyle</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;COMMENT LINE&quot;</span> <span style="color: #000066;">styleID</span>=<span style="color: #ff0000;">&quot;2&quot;</span> <span style="color: #000066;">fgColor</span>=<span style="color: #ff0000;">&quot;007F00&quot;</span> <span style="color: #000066;">bgColor</span>=<span style="color: #ff0000;">&quot;FFFFFF&quot;</span> <span style="color: #000066;">fontName</span>=<span style="color: #ff0000;">&quot;&quot;</span> <span style="color: #000066;">fontStyle</span>=<span style="color: #ff0000;">&quot;0&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;WordsStyle</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;NUMBER&quot;</span> <span style="color: #000066;">styleID</span>=<span style="color: #ff0000;">&quot;4&quot;</span> <span style="color: #000066;">fgColor</span>=<span style="color: #ff0000;">&quot;000000&quot;</span> <span style="color: #000066;">bgColor</span>=<span style="color: #ff0000;">&quot;FFFFFF&quot;</span> <span style="color: #000066;">fontName</span>=<span style="color: #ff0000;">&quot;&quot;</span> <span style="color: #000066;">fontStyle</span>=<span style="color: #ff0000;">&quot;0&quot;</span> <span style="color: #000066;">fontSize</span>=<span style="color: #ff0000;">&quot;10&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;WordsStyle</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;OPERATOR&quot;</span> <span style="color: #000066;">styleID</span>=<span style="color: #ff0000;">&quot;10&quot;</span> <span style="color: #000066;">fgColor</span>=<span style="color: #ff0000;">&quot;FF0000&quot;</span> <span style="color: #000066;">bgColor</span>=<span style="color: #ff0000;">&quot;FFFFFF&quot;</span> <span style="color: #000066;">fontName</span>=<span style="color: #ff0000;">&quot;&quot;</span> <span style="color: #000066;">fontStyle</span>=<span style="color: #ff0000;">&quot;1&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;WordsStyle</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;DELIMINER1&quot;</span> <span style="color: #000066;">styleID</span>=<span style="color: #ff0000;">&quot;14&quot;</span> <span style="color: #000066;">fgColor</span>=<span style="color: #ff0000;">&quot;FF0000&quot;</span> <span style="color: #000066;">bgColor</span>=<span style="color: #ff0000;">&quot;FFFFFF&quot;</span> <span style="color: #000066;">fontName</span>=<span style="color: #ff0000;">&quot;&quot;</span> <span style="color: #000066;">fontStyle</span>=<span style="color: #ff0000;">&quot;0&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;WordsStyle</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;DELIMINER2&quot;</span> <span style="color: #000066;">styleID</span>=<span style="color: #ff0000;">&quot;15&quot;</span> <span style="color: #000066;">fgColor</span>=<span style="color: #ff0000;">&quot;FF0000&quot;</span> <span style="color: #000066;">bgColor</span>=<span style="color: #ff0000;">&quot;FFFFFF&quot;</span> <span style="color: #000066;">fontName</span>=<span style="color: #ff0000;">&quot;&quot;</span> <span style="color: #000066;">fontStyle</span>=<span style="color: #ff0000;">&quot;0&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;WordsStyle</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;DELIMINER3&quot;</span> <span style="color: #000066;">styleID</span>=<span style="color: #ff0000;">&quot;16&quot;</span> <span style="color: #000066;">fgColor</span>=<span style="color: #ff0000;">&quot;000000&quot;</span> <span style="color: #000066;">bgColor</span>=<span style="color: #ff0000;">&quot;FFFFFF&quot;</span> <span style="color: #000066;">fontName</span>=<span style="color: #ff0000;">&quot;&quot;</span> <span style="color: #000066;">fontStyle</span>=<span style="color: #ff0000;">&quot;0&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Styles<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/UserLang<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></div></div>
<p>This is how it looks in Notepad++:<br />
<div id="attachment_503" class="wp-caption aligncenter" style="width: 508px"><a href="http://www.artofcreation.be/wp-content/uploads/syntaxcoloring1.png"><img src="http://www.artofcreation.be/wp-content/uploads/syntaxcoloring1.png" alt="Syntax coloring X++ in Notepad++" title="Syntax coloring X++ in Notepad++" width="498" height="544" class="size-full wp-image-503" /></a><p class="wp-caption-text">Syntax coloring X++ in Notepad++</p></div></p>
<p>Links:<br />
<a href="http://notepad-plus.sourceforge.net/uk/site.htm">Notepad++ homepage</a><br />
<a href="http://www.axaptapedia.com/Notepad">Notepad++ on Axaptapedia</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.artofcreation.be/2010/02/18/x-and-notepad/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>

