1. Dodajemy typ rozszerzony (string) i dziedziczymy po typie Num (właściwość Extends):
2. Do tabeli, gdzie chcemy użyć numeratora dodajemy pole o typie utworzonym w pkt. 1:
4. Następnie w jednej z klas dziedziczących po klasie NumSeqReference należy w metodzie loadModule wstawić kawałek kodu rejestrującego numerator nie zapominając zmienić nazwy na swój numerator i etykiety:
numRef.DataTypeId = typeId2ExtendedTypeId(typeid(DevIndexId)); // tutaj nazwa rozszerzonego typu
numRef.ReferenceHelp = literalstr("@etykieta"); // należy wybrać etykietę dla numeratora
numRef.WizardContinuous = false;
numRef.WizardManual = NoYes::No;
numRef.WizardAllowChangeDown = NoYes::No;
numRef.WizardAllowChangeUp = NoYes::No;
numRef.WizardHighest = 99999999;
numRef.SortField = 1;
this.create(numRef);
Klasę dziedziczącą po NumSeqReference należy wybrać wg swojego zastosowania. Np. numerator dotyczący klientów znajdzie się w klasie NumberSeqReference_Customer. Można też oczywiście stworzyć swoją klasę dla swojego modułu.
5. W tabeli parametrów modułu (np. CustParameters), w którym wstawiamy numerator należy zdefiniować nową metodę:
server static NumberSequenceReference numRefDevIndexId)
{
;
return NumberSeqReference::findReference(typeId2ExtendedTypeId(typeid(DevIndexId)));
}
6. W formularzu Podstawowe => Ustawienia => Sekwencje numerów (identyfikatorów) => Sekwencje numerów (lub w AX2009 identyfikatorów) - należy dodać nowy numerator:
7. W Podstawowe => Ustawienia => Sekwencje numerów (identyfikatorów) => Odwołania - należy znaleźć nowo dodane odwołanie i przypisać numerator stworzony w poprzednim punkcie. W moim przypadku numerator będzie się znajdował w module "Rozrachunki z odbiorcami" i będzie posiadał etykietę "@etykieta":
8. Jeśli powyższy krok wykonamy bez żadnych problemów numerator powinien być prawidłowo stworzony i skonfigurowany. Teraz wystarczy go użyć np. w metodzie insert na tabeli głównej:
NumberSeq numberSeq;
;
ttsbegin;
numberSeq = NumberSeq::newGetNum(CustParameters::numRefDevIndexId());
this.DevIndexId = numberSeq.num();
super();
numberSeq.used();
ttscommit;
9. Teraz powinniśmy cieszyć się nowym numeratorem, po wstawieniu rekordu do tabeli i zapisaniu go, system powinien przydzielić nowy numer:
Życzę miłego tworzenia numeratorów :)
Brak komentarzy:
Prześlij komentarz