Создать функцию, которая проверяет, соответствует ли идентификационный номер критериям
Я новичок в 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;
Дайте мне знать, если это не сработает для вас.