Display methods must be written at the table level
However, developers often write display or edit methods to perform some calculations and then bind them on form's controls to allow user to display or edit values in those bounded controls.
Display/Edit methods create excessive client-server round trips and impact on product performance. And if there are display methods added on the form it will make 5 client-server round trips, one for each method.
Options 1: CacheAddMethod
This issue can be addressed by using the CacheAddMethod on the FormDataSource. This method enables the form to calculate all of the display methods in single round trip to the server rather making individual calls.
Let's assume you have added edit method on ProjTable form to show some calcuated dates. Override init() method under ProjTable datasource and write following code;
AX 2012 introduces a new feature called the Declarative Display caching. This allows you to enable caching by setting the form control property CacheDataMethod with either of three values; Yes, No and Auto
A lot more on this topic is here https://msdn.microsoft.com/en-us/library/aa596691.aspx
Happy Daxure!ing
However, developers often write display or edit methods to perform some calculations and then bind them on form's controls to allow user to display or edit values in those bounded controls.
Display/Edit methods create excessive client-server round trips and impact on product performance. And if there are display methods added on the form it will make 5 client-server round trips, one for each method.
Options 1: CacheAddMethod
This issue can be addressed by using the CacheAddMethod on the FormDataSource. This method enables the form to calculate all of the display methods in single round trip to the server rather making individual calls.
Let's assume you have added edit method on ProjTable form to show some calcuated dates. Override init() method under ProjTable datasource and write following code;
publicvoid init()
{
super();
ProjTable_ds.cacheAddMethod(tableMethodStr(ProjTable, projectCompletedDate), false);
}
Options 2: SysClientCacheDataMethodAttributeAX2012 also allows to use SysClientCacheDataMethodAttribute attribute in the display method declaration. Then, forms should cache such methods automatically.
Attribute's constructor accept one optional parameter (_updateOnWrite), which corresponds to the second parameter of cacheAddMethod().
Example:
Options 3: CacheDataMethod peoperty on Form's controlAttribute's constructor accept one optional parameter (_updateOnWrite), which corresponds to the second parameter of cacheAddMethod().
Example:
[SysClientCacheDataMethodAttribute(true)]
display DirPartyType type()
{...}
[SysClientCacheDataMethodAttribute]
publicdisplay EcoResProductTitle title()
{
return inventTable.product().title();
}
AX 2012 introduces a new feature called the Declarative Display caching. This allows you to enable caching by setting the form control property CacheDataMethod with either of three values; Yes, No and Auto
A lot more on this topic is here https://msdn.microsoft.com/en-us/library/aa596691.aspx
Happy Daxure!ing