How to Setup number sequence in form In D365FO X++.
Create number sequence for new field : Link
- After creation of new number sequence we need to setup in one form. I got a requirement to setup new number sequence in standard from.
- For this I have used the extensions(COC). Please check.
- If you need for custom form just copy the below methods and pasted in you'r form.
- The below code is for both custom and standard forms.
On Form data source.
[ExtensionOf(formDataSourceStr(MyForm, MyTable))]
final class MyFormDataSource_Extension { void write() { next write();//COC //super(_append); element.numberSeqFormHandler().formMethodDataSourceWrite(); } void delete() { element.numberSeqFormHandler().formMethodDataSourceDelete(); next delete();//COC //super(_append); } void create(boolean _append) // If created externally { element.numberSeqFormHandler().formMethodDataSourceCreatePre(); next create(_append);//COC //super(_append); element.numberSeqFormHandler().formMethodDataSourceCreate(); // this.object(fieldNum(MyTable, Field1)).modified(); // If any modified method is written in data source field level // By the above line we can call, } // In standard they are added below 2 methods. public void linkActive() { element.numberSeqFormHandler().formMethodDataSourceLinkActive(); next linkActive();//COC //super(); } public boolean validateWrite() { boolean ret; MyTable myTable;//COC myTable = this.cursor();//COC if (!myTable.Field1) { element.numberSeqFormHandler().formMethodDataSourceCreate(true); } ret = next validateWrite();//COC //ret = super(); ret = element.numberSeqFormHandler().formMethodDataSourceValidateWrite(true) && ret; return ret; } } On Form.[ExtensionOf(formStr(MyForm))]
final class MyFormDataSource_Extension
{
public NumberSeqFormHandler numberSeqFormHandler;// global variable
public NumberSeqFormHandler numberSeqFormHandler()
{
if(!numberSeqFormHandler)
{
numberSeqFormHandler = NumberSeqFormHandler::newForm(
myParameters::numRefMyID().NumberSequenceId,
this, this.MyTable_ds, fieldNum(MyTable, Field1));
}
return numberSeqFormHandler;
}
void close()
{
if (numberSeqFormHandler)
{
numberSeqFormHandler.formMethodClose();
}
next Close();//COC
//super();
}
}
Reference:
Keep Daxing!!
No comments:
Post a Comment