|  01.04.2009, 13:31 | #1 | 
| MCTS | Номерная серия без нулей 
			
			Вот стало надо нумеровать серии без нулей. То есть вместо ППП_009 написать ППП_9. Максимум = 999 Как задать формат такой номерной серии? Не хочется заниматься постобработкой полученной строки. | 
|  | 
|  01.04.2009, 13:40 | #2 | 
| Участник | Цитата: 2. формат с нулями нужен для правильной сортировки "как числа". В вашем варианте номера будут сортироваться "как строки" (ППП_1, ППП_11, ППП_12, ... ППП_19, ППП_2, ППП_21...) См. http://axapta.mazzy.ru/lib/adjustment/ | 
|  | |
| За это сообщение автора поблагодарили: Eldar9x (1). | |
|  01.04.2009, 15:07 | #3 | 
| Участник | 
			
			Если все же хотите сделать по-своему, невзирая на замечание №2 от mazzy (очень существенное замечание, хочу заметить), то смотреть нужно в сторону метод NumberSeq::numInsertFormatInternal(). В нем надо сделать следующее изменение X++: case #SymbolNumerals: //tmpTxt = strpoke(tmpTxt,'0',x); tmpTxt = strDel(tmpTxt, x, 1); break; Это только для ситуации, когда используются числовые подстановки, а не буквенные Если уже были использованы номера, и серия непрерывная, то значения будут браться из списка, а не формироваться новые - тогда этот код, опять же, не отработает. | 
|  | 
|  01.04.2009, 15:31 | #4 | 
| Member | 
			
			Тогда придется править еще как минимум ::numRemoveFormat(), насколько я помню. Желательно отказаться от хотелки. 
				__________________ С уважением, glibs® | 
|  | 
|  01.04.2009, 15:40 | #5 | 
| Axapta | 
			
			Зачем и кому это надо? Не зная ответа на этот вопрос можно много "вредных" советов надавать. А то ведь получится как у Джоэля. Цитата: 
		
			Хороший кандидат попытается вытянуть из вас побольше информации. Для кого нужен дом? Я принципиально не приму на работу кого-то, занимающегося проектированием и не спрашивающего, для чего. Однажды меня это так возмутило, что я прервал кандидата и сказал: «Вы забыли об этом спросить, но это дом для семейства слепых жирафов.»
		
	 | 
|  | 
|  01.04.2009, 16:09 | #6 | 
| Участник | 
			
			У нас одна из серий имеет формат - КЛ9-#######, номера сейчас такие - КЛ9-0029921, максимум -9999999 Так что впрде все нормально работает | 
|  | 
|  01.04.2009, 16:12 | #7 | 
| Участник | Цитата: чтобы при таком формате, как у Вас, вместо КЛ9-0029921 получилось КЛ9-29921 | 
|  | 
|  01.04.2009, 16:14 | #8 | 
| Модератор | 
			
			Давайте разделять реальный используемый номер и вывод на экран-на печать. Напишите дисплей-метод, и все дела! С Уважением, Георгий | 
|  | 
|  01.04.2009, 22:29 | #9 | 
| Участник | 
			
			А поиск? а переход к основной таблице? имхо, предложение имеет смысл только при отображении номера в печатных документах. Возможно, автору вопроса стоит подумать над изменением постановки задачи как раз в эту сторону. | 
|  | 
|  02.04.2009, 07:12 | #10 | 
| MCTS | Цитата: 
		
			Зачем и кому это надо?
		
	 Вот мне и нужно, запретить ввод кода, оставив при этом формат предыдущей системы, который идет с префиксом и не имеет ведущих нулей. Цитата: 
		
			Напишите дисплей-метод, и все дела!
		
	 Да, жаль, конечно, что нельзя. Если оставить формат номерной серии пустым, то нумеруется именно так как мне и надо, но без префикса. Вот и подумалось, что можно задать то же самое но с префиксом. Но ради такой малой задачи, вряд ли буду модифицировать эти классы. Всем спасибо! | 
|  | 
|  02.04.2009, 12:23 | #11 | 
| Участник | 
			
			Если данные заливаются из другой системы, то нельзя ли влезть в процесс заливки и добавить "не достающие" нули? Ну или поправить после заливки?
		 | 
|  | 
|  02.04.2009, 12:30 | #12 | 
| MCTS | Цитата: 
		
			Если данные заливаются из другой системы, то нельзя ли влезть в процесс заливки и добавить "не достающие" нули?
		
	 К тому же, если добавлять нули, формат исходной системы теряется. И еще получаем проблему: в аксапте, ППП_0001 и ППП_1 это разные значения, в другой системе - одинаковые  . | 
|  | 
|  02.04.2009, 14:59 | #13 | 
| Участник | 
			
			Смысл есть. И не маленький. 1. Значение ключа формируется в формате "естесственном" с точки зрения идеологии построения номерных серий. Не надо будет никуда влезать и ничего править в "родной" системе. 2. Опыт перекачки данных из других систем научил тому, что нельзя использовать идентификатор другой системы в качестве идентификатора данной системы. По разным соображениям. Идентификатор "чужой" системы должен хранится в отдельном поле. Как служебная (справочная) информация. | 
|  | |
| За это сообщение автора поблагодарили: oip (1). | |
|  02.04.2009, 15:22 | #14 | 
| MCTS | Цитата: 
		
			Идентификатор "чужой" системы должен хранится в отдельном поле.
		
	 | 
|  | 
|  03.04.2009, 00:40 | #15 | 
| Участник | |
|  | 
|  03.04.2009, 07:04 | #16 | 
| MCTS | Цитата: 
		
			Какое у пользвателей обоснование
		
	 | 
|  | 
|  10.04.2009, 15:25 | #17 | 
| Участник |  результат 
			
			Eldar9x как в итоге решили вопрос с 'удалением' ведущих нулей?
		 
				__________________ Dynamics AX 4.0 SP2 | 
|  | 
|  10.04.2009, 15:48 | #18 | 
| MCTS | Цитата: 
		
			Eldar9x как в итоге решили вопрос с 'удалением' ведущих нулей?
		
	 X++: BrendId genBrendId()
{
    NumberSeq       NumberSeq;
    str 4           prefx = "ПОС.";
    Num             num;
    ;
    do
    {
        numberSeq = NumberSeq::newGetNum(CompanyInfo::tmn_numRefBrendId(), true);
        if (!numberSeq)
            throw checkFailed("Не задана номерная серия для Бренда в параметрах УЗ.");
        num = numberSeq.num();
        numberSeq.used();
    }
    while (BrendTable::exist(prefx + num));
    return prefx + num;
}Формат номерной серии - пустой. | 
|  | 
|  11.04.2009, 09:02 | #19 | 
| Участник | Цитата: Как-то не совсем красиво, если только нет твердой уверенности что ничего не поменяется в политике формирования номеров. Может есть еще какие-то варианты? 
				__________________ Dynamics AX 4.0 SP2 | 
|  | 
|  13.04.2009, 07:21 | #20 | 
| MCTS | Цитата: 
		
			Может есть еще какие-то варианты?
		
	 Но попробовав, поиск по классу на эти макросы, вы получите, что придется модифицировать еще несколько методов. Разбираться в них не было необходимости, так как текущая модификация меня вполне устраивает. По поводу компаний, они в виртуальной, так что - нет проблем. Плюсы: заполняются промежутки для данного кода, так как количество их ограничено (9999); после отказа от старой системы, номерная серия продолжает функционировать (после некоторых изменений, конечно); обнуление номерной серии никак не сказывается на работе. | 
|  | 
| Теги | 
| download, faq, законченный пример, номерная серия, нули, нумерация, полезное, пример | 
|  | 
|  Похожие темы | ||||
| Тема | Ответов | |||
| Номерная серия,,, превышена. | 28 | |||
| Номерная серия | 11 | |||
| Номерная серия общая для всех компаний! | 13 | |||
| Номерная серия в виртуальной компании | 2 | |||
| Номерная серия требование-накладная | 2 | |||
| 
 |