Here’s what to
do:-
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
NumberSeqReference_PrePurchase that extends NumberSeqReferenceAdd 3 methods to that class
public class
NumberSeqReference_PrePurchase extends NumberSeqReference
{}
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
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);
}
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
static
NumberSeqModule numberSeqModule()
{return NumberSeqModule::PrePurchase;
}
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
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 begincase (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.
6. Calling a
number sequence
Add this code
into this TableParametersstatic client server NumberSequenceReference numRefSomeMethodID()
{
return NumberSeqReference::findReference(typeId2ExtendedTypeId(typeid(Your EDT)));
}
7. Add this
declaration in the form ClassDeclaration
public class FormRun extends ObjectRun
{
NumberSeqFormHandler numberSeqFormHandler;
}
8. 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;
}
9. Add Create, Write and Delete methods to the Data source in the Form:
Create:void create(boolean append = false)
// If created externally
{
;
element.numberSeqFormHandler().formMethodDataSourceCreatePre();
super(append);
element.numberSeqFormHandler().formMethodDataSourceCreate();
}
Write:
void write()
{
ttsbegin;
element.numberSeqFormHandler().formMethodDataSourceWrite();
super();
ttscommit;
}
Delete:
void delete(){
ttsbegin;
element.numberSeqFormHandler().formMethodDataSourceDelete();
super();
ttscommit;
}
10. Create a new Number Sequence in BASIC
module and Run Wizard
Basic -> Setup
-> NumberSequences -> Number Sequences
Create New Number
Sequence code and assign the format. Click "Wizard" button and choose
your number sequence in the next screen.
Now open your form
to see the Number Sequence you created.
No comments:
Post a Comment