|
|
#21 |
|
Участник
|
Все нижеследующее можно считать в некоторой степени оффтопом относительно номерных серий в контексте данной темы. Не затрагивая вопрос практической необходимости такого поведения номерных серий (аргументы изложены участниками выше по теме), в качестве одного из вариантов решения такой задачи можно рассматривать расширение числа спец.символов формата(шаблона) с которыми работает номерная серия. В штатной функциональности класса NumberSeq использованы 2 символа:
Можно расширить набор специальных символов формата(шаблона) 'необязательными' знаками, к примеру:
'$'=='#'? )) - в этом случае длина полученной строки с номером будет короче (либо равна) длины строки формата(шаблона) номерной серии. (число 123 преобразованное по формату 'DMO_$$$$$$' будет выглядеть как номер 'DMO_123'). Вот тут то и возможны проблемы с сортировкой полученных номеров о которых упоминалось выше по теме из-за разных длин строк. Это следует иметь в виду при принятии решения об использовании необязательных спец. символов в формате(шаблоне) номерной серии.Как уже упоминалось выше по теме нужно будет внести некоторые модификации в код ряда методов класса NumberSeq. на вскидку это:
Для упрощения обработки в классе NumberSeq можно допустить некоторую условность: необязательные символы шаблона должны находиться левее обязательных в шаблоне номерной серии ('PREFIX_$$$$$#') - проверку пользовательского ввода можно организовать на NumberSequenceTable.validateField() или NumberSequenceTable.validateWrite() В целях тестового примера подобной реализации набросал в первом приближении небольшой проект по описанным выше пунктам. В проект выгружены только изменения на USR слое с приложения Axapta 3.0 SP5 (адаптировать для Dynamics Ax 4.0, если кому-то потребуется, думаю не составит труда - изменений не много, помечены комментариями 'NumberSeqOptional'). P.S. Проект НЕ претендует на 'готовое' решение. |
|
|
|
| За это сообщение автора поблагодарили: petr (3), aidsua (1), in.dc (1). | |
|
|
#22 |
|
MCTS
|
Импортировал, не компилируется. Возможно забыто объявление макросов.
Но именно из-за Цитата:
...возможно еще что-то
|
|
|
|
|
#23 |
|
Axapta
|
X++: str 4 prefx = "ПОС."; |
|
|
|
|
#24 |
|
MCTS
|
Цитата:
Гм... Вы вот прям так и сделали? А что помешало даже при данном выборе решения вынести этот префикс куда-нибудь в параметры?
|
|
|
|
|
#25 |
|
Участник
|
Не пишите ерунды, все нормально компилируется.
Импортировал проект на Dynamics Ax 4.0 SP2 - макросы объявлены в NumberSeq\classDeclaration(): X++: public class NumberSeq { ... #DEFINE.SymbolNumerals('#') #DEFINE.SymbolLetters('&') #DEFINE.NoOfLetters(26) #DEFINE.FirstLetter('A') // --> petergunn, NumberSeqOptional, 14.04.2009 #define.SymbolNumOptional('$') #define.SymbolAlphaOptional('?') // <-- petergunn, NumberSeqOptional } X++: ...
case fieldnum(NumberSequenceTable, Format):
ret = this.checkFormat();
// in.dc -->
ret = ret && NumberSeqOptional::validateFormat( this.Format ) ;
// in.dc <--
break;
...Цитата:
), тем более что вроде автор сообщения и не агитирует ни кого за свое решение:Цитата:
Все нижеследующее можно считать в некоторой степени оффтопом
... следует иметь в виду при принятии решения об использовании необязательных спец. символов в формате(шаблоне) номерной серии. ... P.S. Проект НЕ претендует на 'готовое' решение.
__________________
Dynamics AX 4.0 SP2 |
|
|
|
|
#26 |
|
MCTS
|
Цитата:
Не пишите ерунды, все нормально компилируется.
Цитата:
вы несколько категоричны в рекламе своего варианта
). Вы задали вопрос Цитата:
Eldar9x как в итоге решили вопрос с 'удалением' ведущих нулей?
Мне это решение и самому не нравится. Но поскольку в стандартной аксапте не реализован вышеуказанный формат номерной серии, пришлось выбирать вариант, который окажет наименьшее влияние на систему целиком. По поводу изменения NumberSeq... У меня на данный момент недостаточно знаний, чтоб гарантировать, что вышеописанное изменение класса NumberSeq не выплывет в каких-либо багах. Да и petergunn по сути это также озвучил. Об этом говорилось и выше. Но, если вы хотите рискнуть и готовы внести подобные модификации в рабочее приложение, то флаг в руки. Последний раз редактировалось Eldar9x; 14.04.2009 в 13:06. |
|
|
| Теги |
| download, faq, законченный пример, номерная серия, нули, нумерация, полезное, пример |
|
|
Похожие темы
|
||||
| Тема | Ответов | |||
| Номерная серия,,, превышена. | 28 | |||
| Номерная серия | 11 | |||
| Номерная серия общая для всех компаний! | 13 | |||
| Номерная серия в виртуальной компании | 2 | |||
| Номерная серия требование-накладная | 2 | |||
|