Создать функцию, которая проверяет, соответствует ли идентификационный номер критериям

Я новичок в NAV, так что, возможно, мой вопрос покажется немного нубом, но здесь все сказано. Я создал таблицу, в которой есть поле под названием "Идентификационный номер", в котором пользователю необходимо ввести 10-значный Biginteger (или код, IDK, что лучше), который представляет его / ее идентификатор. Я должен создать функцию, которая будет проверять правильность этого числа, проверяя, удовлетворяет ли оно следующим критериям:

Если номер ABCDEFGHIJтогда цифра J (которая называется контрольной цифрой) должна быть равна:J=13-( 7*(A+G) + 6*(B+H) + 5*(C+I) + 4*(D+J)) MOD 13

а также, должен соответствовать критериям ниже:

J <= 9 -> X = J
J > 9 -> X = 0

Я думал, используя функцию FORMAT сначала для преобразования целого числа в строку, а затем COPYSTR для каждой из локальных переменных A,B,C,D... но это не работает:(Может кто-нибудь помочь мне с правильным кодом?

2 ответа

Решение

Str:= format("Id"); А: = ул [1]; Б: = ул [2];

Так далее...

Или, если вы хотите A,B,C как целые числа, тогда.

Str:= format("Id"); Оценить (A, Str[1]); Оценить (B, Str[2]);

Вы можете попробовать этот код, как он работал для меня:

Num : BigInteger;
Digits : Array of Byte;
I : Integer;

FOR i := 10 DOWNTO 1 DO BEGIN
  Digits[i] := Num MOD 10;
  Num := Num DIV 10;
END;

Дайте мне знать, если это не сработает для вас.