There is a verry simple trick to loop through some companies and execute some code in them. Just write: DataArea dataArea; ; while select dataArea where !dataArea.isVirtual { changecompany(dataArea.id) { // Do Something… } }DataArea dataArea; ; while select dataArea where !dataArea.isVirtual { changecompany(dataArea.id) { // Do Something… } } Note! Make sure that you … Continue Reading
Archives
Batch job performance boost
Did you ever have trouble with the performance of your batch-job? Well maybe this small trick can shorten the time your batch runs. The big idea: Try to split up your gigantic batch in smaller pieces. Launch a batchjob that produces many smaller batchjobs (tasks) that can handle a subset of the data you need to … Continue Reading
Test if a configuration key is enabled in X++ code
How do you execute code when a Configuration key is enabled? It is pritty easy. Ax x++ has a build-in function ‘isConfigurationKeyEnabled’, witch you can use to check a configuration key. Small example: if (isConfigurationKeyEnabled(configurationkeynum(AIF))) { // Do something… }if (isConfigurationKeyEnabled(configurationkeynum(AIF))) { // Do something… }
Setting propperties on a FormControl without AutoDeclaration
When you want to set a property of a control on a form without setting the property AutoDeclaration = yes. You can address the control trough the following code, knowing that element is a FormRun-object: element.design().controlName("btnOk").visible(false);element.design().controlName("btnOk").visible(false);
Create class from code
Did you know that you can build/modify classes from code? It is actually not so hard, just use the ClassBuild-class. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 static void JeDoe_testClassBuild(Args _args) { ClassBuild classBuild; ClassNode classNode; Str myCode; ; myCode … Continue Reading
Catching a key-press
When you want to catch a key-stroke on a form, you can override the method task() The default method will look like this: public int task(int _taskId) { int ret; ret = super(_taskId); // write you’re code here return ret; }public int task(int _taskId) { int ret; ret = super(_taskId); // write you’re code here … Continue Reading
Counting the number of records in a QueryRun
When you want to count the number of records that are currently displayed on a form, and you have only one data source, just call the static method countTotal() from the SysQuery-class. public void executeQuery() { ; super(); info(int2str(SysQuery::countTotal(EmplTable_ds.queryRun()))); }public void executeQuery() { ; super(); info(int2str(SysQuery::countTotal(EmplTable_ds.queryRun()))); } But when you want to do the same … Continue Reading
strrep vs. strreplace
In Ax the name of Methods are sometimes (by my opinion) not so clear chosen. For example, when I try to replace a string in ax by typing strrep(..) instead of strreplace(..). strrep –> repeat a certain string for X times. strreplace –> replace a certain string. So please chose clear names for your methods…
About classes
In this post I will talk about classes and what you can do with them. Abstract class When you create a abstract class, you want to ensure that this class can not be instantiated. You wil have to create a sub-class that wil actually use the functionality. Example: abstract class MyClass { }abstract class MyClass … Continue Reading
List of mandatory fields on a table
When you want a list of all the mandatory field on table X, yould check all the properties on the table fields, or you could be lazy and write a small job that does the trick for you. Just replace TableId with your tablenum. 1 2 3 4 5 6 7 8 9 10 11 … Continue Reading