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