Number Sequence - New module
New Number Sequence for new AX Module
1. Edit the baseEnum NumberSeqModule, adding a reference for your new module (Pre Purchase)
2. Create a new EDT say PurchaseRequisitionId which will be used in the module
3. Create new class say NumberSeqReference_PrePurchase that extends NumberSeqReference
The 3 methods in that class are:
//Class Declaration
public class NumberSeqReference_PrePurchase extends NumberSeqReference
{
}
//First method
protected void loadModule()
{
NumberSequenceReference numRef;
;
/* Setup PurchaseRequisitionId */
numRef.dataTypeId = typeid2extendedtypeid(typeid(PwC_PurchaseRequisitionId));
numRef.referenceHelp = literalStr("Unique key for Purchase Requisition identification. The key is used when creating new Purchase Requisitions."); // Use Labels here
numRef.wizardContinuous = true;
numRef.wizardManual = NoYes::No;
numRef.wizardAllowChangeDown = NoYes::No;
numRef.wizardAllowChangeUp = NoYes::No;
numRef.sortField = 1;
this.create(numRef);
}
//Second Method
static NumberSeqModule numberSeqModule()
{
return NumberSeqModule::PrePurchase; // Your Base Enum
}
4.Modify the NumberSeqReference Class for the following methods
Classes\NumberSeqReference\moduleList
Add the following code
// PrePurchase Begin
moduleList += NumberSeqReference_PrePurchase::numberSeqModule();
// PrePurchase End
Classes\NumberSeqReference\construct
Add the following code
// Pre Purchase addition begin
case (NumberSeqReference_PrePurchase::numberSeqModule()):
return new NumberSeqReference_PrePurchase(_module);
// Pre Purchase addition end
5. Create a parameters table and form
You should create a parameters table and form for your new module. The easiest way is generally to duplicate an existing Parameters table and modify it as required.
The important elements on the new parameter table are the numberSeqModule() and numberSeqReference() methods.
client server static NumberSeqModule numberSeqModule()
{
return NumberSeqReference_ PrePurchase::numberSeqModule();
}
client server static NumberSeqReference numberSeqReference()
{
return NumberSeqReference::construct(NSParameters::numberSeqModule());
}
In the parameters form, you must ensure that the code in the numberSeqPreInit(), numberSeqPostInit() and NumberSequenceType.executeQuery() methods correctly reflect your new number sequence elements.
And also add this code into this TableParameters
static client server NumberSequenceReference numRefSomeMethodID()
{
return NumberSeqReference::findReference(typeId2ExtendedTypeId(typeid(Your EDT)));
}
6.Add this declaration in the form ClassDeclaration
public class FormRun extends ObjectRun
{
NumberSeqFormHandler numberSeqFormHandler;
}
7.Add this method to the form where you want Number sequences
NumberSeqFormHandler numberSeqFormHandler()
{
if (!numberSeqFormHandler)
{
numberSeqFormHandler=
NumberSeqFormHandler::newForm(YourTableParameters::numRefSomeMethodID().NumberSequence,
element,
YourTable_DS,
fieldnum(YourTable,YourField));
}
return numberSeqFormHandler;
}
Create a new Number Sequence in BASIC module
Path : Basic / Setup / Numbersequnces / Numbersequnces
After Creating that , run the wizard.
Now open Your form to see the Number sequence.
1. Edit the baseEnum NumberSeqModule, adding a reference for your new module (Pre Purchase)
2. Create a new EDT say PurchaseRequisitionId which will be used in the module
3. Create new class say NumberSeqReference_PrePurchase that extends NumberSeqReference
The 3 methods in that class are:
//Class Declaration
public class NumberSeqReference_PrePurchase extends NumberSeqReference
{
}
//First method
protected void loadModule()
{
NumberSequenceReference numRef;
;
/* Setup PurchaseRequisitionId */
numRef.dataTypeId = typeid2extendedtypeid(typeid(PwC_PurchaseRequisitionId));
numRef.referenceHelp = literalStr("Unique key for Purchase Requisition identification. The key is used when creating new Purchase Requisitions."); // Use Labels here
numRef.wizardContinuous = true;
numRef.wizardManual = NoYes::No;
numRef.wizardAllowChangeDown = NoYes::No;
numRef.wizardAllowChangeUp = NoYes::No;
numRef.sortField = 1;
this.create(numRef);
}
//Second Method
static NumberSeqModule numberSeqModule()
{
return NumberSeqModule::PrePurchase; // Your Base Enum
}
4.Modify the NumberSeqReference Class for the following methods
Classes\NumberSeqReference\moduleList
Add the following code
// PrePurchase Begin
moduleList += NumberSeqReference_PrePurchase::numberSeqModule();
// PrePurchase End
Classes\NumberSeqReference\construct
Add the following code
// Pre Purchase addition begin
case (NumberSeqReference_PrePurchase::numberSeqModule()):
return new NumberSeqReference_PrePurchase(_module);
// Pre Purchase addition end
5. Create a parameters table and form
You should create a parameters table and form for your new module. The easiest way is generally to duplicate an existing Parameters table and modify it as required.
The important elements on the new parameter table are the numberSeqModule() and numberSeqReference() methods.
client server static NumberSeqModule numberSeqModule()
{
return NumberSeqReference_ PrePurchase::numberSeqModule();
}
client server static NumberSeqReference numberSeqReference()
{
return NumberSeqReference::construct(NSParameters::numberSeqModule());
}
In the parameters form, you must ensure that the code in the numberSeqPreInit(), numberSeqPostInit() and NumberSequenceType.executeQuery() methods correctly reflect your new number sequence elements.
And also add this code into this TableParameters
static client server NumberSequenceReference numRefSomeMethodID()
{
return NumberSeqReference::findReference(typeId2ExtendedTypeId(typeid(Your EDT)));
}
6.Add this declaration in the form ClassDeclaration
public class FormRun extends ObjectRun
{
NumberSeqFormHandler numberSeqFormHandler;
}
7.Add this method to the form where you want Number sequences
NumberSeqFormHandler numberSeqFormHandler()
{
if (!numberSeqFormHandler)
{
numberSeqFormHandler=
NumberSeqFormHandler::newForm(YourTableParameters::numRefSomeMethodID().NumberSequence,
element,
YourTable_DS,
fieldnum(YourTable,YourField));
}
return numberSeqFormHandler;
}
Create a new Number Sequence in BASIC module
Path : Basic / Setup / Numbersequnces / Numbersequnces
After Creating that , run the wizard.
Now open Your form to see the Number sequence.
No comments:
Post a Comment