05.09.2012, 15:11
|
#1
|
Участник
|
axaptacorner: Generate number Sequence
Источник: http://axaptacorner.blogspot.com/201...ence_8531.html
==============
Suppose we want create number sequence for Test field on form in General ledger module
Consideration: EDT-Test, Table-TestTable and Form- TestTable
Step1. Create new EDT with name Test
Step 2. Modify load module() method on NumberSeqModuleLedger class
{
datatype.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);
datatype.addParameterType(NumberSeqParameterType::DataArea, true, false);
this.create(datatype);
}
Step 3.Create a method on LedgerParameters Table
clientserverstatic NumberSequenceReference numRefTest()
{
return NumberSeqReference::findReference(extendedTypeNum(Test));
}
Step 4.Write and run following job
staticvoid NumberSeqLoadAll(Args _args)
{
NumberSeqApplicationModule::loadAll();
}
Step 5.Then run the wizard
Organization Administration -> CommonForms -> Numbersequences->Numbersequences-> Generate -> run the wizard.
Step 6.Now we have to check the number sequence is correctly working for that write a job:
staticvoid 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
publicclass 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
publicvoid delete()
{
element.numberSeqFormHandler().formMethodDataSourceDelete();
super();
}
Write()Method
publicvoid write()
{
super();
element.numberSeqFormHandler().formMethodDataSourceWrite();
}
Validate Write() Method
publicboolean validateWrite()
{
boolean ret;
ret = super();
ret = element.numberSeqFormHandler().formMethodDataSourceValidateWrite(ret) && ret;
if (ret)
{
TestTable.validateWrite();
}
return ret;
}
Link Active() Method
publicvoid linkActive()
{
;
element.numberSeqFormHandler().formMethodDataSourceLinkActive();
super();
}
Step 10.Finally add Close() method on form
void close()
{
if (numberSeqFormHandler)
{
numberSeqFormHandler.formMethodClose();
}
super();
}
Источник: http://axaptacorner.blogspot.com/201...ence_8531.html
__________________
Расскажите о новых и интересных блогах по Microsoft Dynamics, напишите личное сообщение администратору.
|
|