1.Create a new EDT string: StudentID
2. Create
a new Table : MK_Seq
3. Add
EDT and fields into the Table: MK_Seq
4.Create
Form MK_Seq
5.Create a new method (numberSeq) for Table MK_Seq
Write the below code in that method
public class MK_NumSeq extends common
{
/// <summary>
///
/// </summary>
static NumberSequenceReference numberSeq()
{
return NumberSeqReference::findReference(extendedTypeNum(StudentID));
}
}
6.Create a new class (numseqStudent) and make extends with NumberSeqApplicationModule
class numseqStudent extends NumberSeqApplicationModule
{
public void initializeReference(NumberSequenceReference _reference,
NumberSeqDatatype _datatype, NumberSeqScope _scope)
{
#ISOCountryRegionCodes
super(_reference, _datatype, _scope);
switch (_datatype.parmDatatypeId())
{
case extendedTypeNum(StudentID):
if("USA")
{
_reference.AllowSameAs = true;
}
}
}
protected void loadModule()
{
NumberSeqDatatype datatype = NumberSeqDatatype::construct();
datatype.parmDatatypeId(extendedTypeNum(StudentID));
datatype.parmReferenceHelp(literalStr("@studentlable:StudentID"));
datatype.parmWizardIsManual(NoYes::No);
datatype.parmWizardIsChangeDownAllowed(NoYes::No);
datatype.parmWizardIsChangeUpAllowed(NoYes::No);
datatype.parmWizardHighest(999999);
datatype.parmSortField(1);
datatype.addParameterType(NumberSeqParameterType::DataArea, true, false);
this.create(datatype);
}
public NumberSeqModule numberSeqModule()
{
return NumberSeqModule::Vend;
}
[SubscribesTo(classstr(NumberSeqGlobal),delegatestr(NumberSeqGlobal,buildModulesMapDelegate))]
static void buildModulesMapSubsciber(Map numberSeqModuleNamesMap)
{
NumberSeqGlobal::addModuleToMap(classnum(numseqStudent), numberSeqModuleNamesMap);
}
}
7.Write a job and run that
class Studentjob
{
public static void main(Args _args)
{
numseqStudent numberSeqModuleRisk = new numseqStudent ();
numberSeqModuleRisk .load();
}
}
8.Then run the wizard Organization
Administration -> CommonForms -> Numbersequences -> Numbersequences
-> Generate -> run the wizard.
9.Go to Account Payable-> setup -> Account
Payable parameters form -> Num Seq.
10. Now create methods as shown on Form below
11.Write
below code in form method code
[Form]
public class MK_Seq extends FormRun
{
NumberSeqFormHandler numberSeqFormHandler;
NumberSeqFormHandler numberSeqFormHandler()
{
if (!numberSeqFormHandler)
{
numberSeqFormHandler=NumberSeqFormHandler::newForm(MK_NumSeq::numberSeq().NumberSequenceId, element,MK_NumSeq_ds , fieldNum(MK_NumSeq, StudentID));
}
return numberSeqFormHandler;
}
public void close()
{
if (numberSeqFormHandler)
{
numberSeqFormHandler.formMethodClose();
}
super();
}
12.Write below code in form datasource method code.
class MK_NumSeq
{
public void create(boolean _append = false, boolean _extern = false)
{
element.numberSeqFormHandler().formMethodDataSourceCreatePre();
super(_append);
if (!_extern)
{
element.numberSeqFormHandler().formMethodDataSourceCreate(true);
}
}
public void write()
{
super();
element.numberSeqFormHandler().formMethodDataSourceWrite();
}
public boolean validateWrite()
{
boolean ret;
ret = super();
ret =
element.numberSeqFormHandler().formMethodDataSourceValidateWrite(ret)
&& ret;
if (ret)
{
MK_NumSeq.validateWrite();
}
return ret;
}
public void linkActive()
{
element.numberSeqFormHandler().formMethodDataSourceLinkActive();
super();
}
public void delete()
{
element.numberSeqFormHandler().formMethodDataSourceDelete();
super();
}
}
13.Now our
custom number sequence is generated. Open your Form and check Num Seq by
creating new record on your filed.
No comments:
Post a Comment