Generate number Sequence

Suppose we want create number sequence for Test field on form in General ledger module

Consideration: EDT-Test, Table-TestTable and Form- TestTable

  1. Create new EDT with name Test

Step 2. Modify load module() method on NumberSeqModuleLedger class at end with below code:

{

  1. parmDatatypeId(extendedTypeNum(Test));

     datatype.parmReferenceHelp(literalStr(“Test”));

     datatype.parmWizardIsManual(NoYes::No);

     datatype.parmWizardIsChangeDownAllowed(NoYes::No);

     datatype.parmWizardIsChangeUpAllowed(NoYes::No);

     datatype.parmWizardHighest(999);

     datatype.parmSortField(30);

  1. addParameterType(NumberSeqParameterType::DataArea, true, false);

     this.create(datatype);

}

Step 3.Create a method on LedgerParameters Table

     client server static NumberSequenceReference numRefTest()

{

     return NumberSeqReference::findReference(extendedTypeNum(Test));

}

Step 4.Write and run following job

static void NumberSeqLoadAll(Args _args)

{

   NumberSeqApplicationModule::loadAll();

}

Step 5.Then run the wizard

Organization Administration -> CommonForms -> Numbersequences->Numbersequences-> Number Sequence->Generate   run the wizard.

Create your own Number Sequence by using the above wizard.

Step 6.Now we have to check the number sequence  is correctly working  for that write a job:

static void NumSeq(Args _args)

{

   NumberSeq numberSeq;

   Test num;

   ;

   numberSeq = NumberSeq::newGetNum(ProjParameters:: numRefTest ());

   num = numberSeq.num();

   info(num);

}

Step 7.Now we want that Number Sequence in form level(Test Table):

Write below code in class declaration  

public class FormRun extends ObjectRun

{

   NumberSeqFormHandler numberSeqFormHandler;

}

Step 8.Write the NumberSeqFormHandler() in form methods node.

NumberSeqFormHandler numberSeqFormHandler()

{

   if (!numberSeqFormHandler)

   {

       numberSeqFormHandler = NumberSeqFormHandler::newForm(LedgerParameters:: numRefTest ().NumberSequenceId,

                                                             element,

                                                             TestTable_DS,

                                                             fieldNum(TestTable, Test)

                                                            );

   }

   return numberSeqFormHandler;

}

Step 9.Write the Create(),Delete(),Write() , Validate Write(),Link Active() on the Data source methods node.

Create() Method

void create(boolean append = false,

           boolean extern = false)

{

   element.numberSeqFormHandler().formMethodDataSourceCreatePre();

   super(append);

   if (!extern)

   {

       element.numberSeqFormHandler().formMethodDataSourceCreate(true);

   }

}

Delete() Method

public void delete()

{

   element.numberSeqFormHandler().formMethodDataSourceDelete();

   super();

}

Write()Method

public void write()

{

   super();

   element.numberSeqFormHandler().formMethodDataSourceWrite();

}

Validate Write() Method

public boolean validateWrite()

{

   boolean         ret;

   ret = super();

   ret = element.numberSeqFormHandler().formMethodDataSourceValidateWrite(ret) && ret;

   if (ret)

   {

       TestTable.validateWrite();

   }

   return ret;

}

Link Active() Method

public void linkActive()

{

   ;

   element.numberSeqFormHandler().formMethodDataSourceLinkActive();

   super();

}

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s