AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 13.01.2011, 11:13   #1  
AngelDominantes is offline
AngelDominantes
Участник
 
76 / 9 (1) +
Регистрация: 30.12.2010
Номерные Серии
Доброго времени суток. Вопрос про номерные серии:
Создаем класс наследник от NumberSeqReference, переопределяем там метод loadModule, кстати обязательно ли переопределять NumberSeqModule? далее каким образом можно использовать номерную серию в другом классе, как я понимаю просто создать элемент класса не прокатит? Выполнение следующего кода в необходимом классе вызывает ошибку.
X++:
// Получение объекта "Номерная серия"
NumberSeq sequence = NumberSeq::newGetNum(
    NumberSequenceReference::find(
        typeId2extendedTypeId(typeID(< EDT>))));
;
// получение нового значения из номерной серии
<>.<> = sequence.num();
Заранее Благодарен.
Старый 13.01.2011, 11:21   #2  
pitersky is offline
pitersky
северный Будда
Аватар для pitersky
Ex AND Project
Соотечественники
 
1,510 / 435 (18) +++++++
Регистрация: 26.09.2007
Адрес: Солнечная система
Вы бы хоть написали, что за ошибка. Ну и версия АХ совсем не помешает
А вообще - зря вы новый класс-наследник создавали. Такое надо делать только под новый и большой самописный модуль. Если речь идёт о двух-трёх новых номерных, то лучше дописать уже существующий loanModule какого-нибудь потомка.
__________________
С уважением,
Вячеслав
Старый 13.01.2011, 11:33   #3  
AngelDominantes is offline
AngelDominantes
Участник
 
76 / 9 (1) +
Регистрация: 30.12.2010
Цитата:
Сообщение от pitersky Посмотреть сообщение
Вы бы хоть написали, что за ошибка. Ну и версия АХ совсем не помешает
А вообще - зря вы новый класс-наследник создавали. Такое надо делать только под новый и большой самописный модуль. Если речь идёт о двух-трёх новых номерных, то лучше дописать уже существующий loanModule какого-нибудь потомка.
Переопределил в потомке NumberSeqReference_Asset:
X++:
    numRef.DataTypeId = typeid2extendedtypeid(typeid(NumberSeq_TransCode));
    numRef.ReferenceHelp = literalStr("Hello");
    numRef.ReferenceLabel = literalStr("Hello");
    numRef.WizardContinuous = false;
    numRef.WizardManual = NoYes::No;
    numRef.WizardAllowChangeDown = NoYes::No;
    numRef.WizardAllowChangeUp = NoYes::No;
    numRef.WizardHighest = 9999;
    this.create( numRef);
В ClassDeclaration своего класса пишу:
X++:
NumberSeq sequence = NumberSeq::newGetNum(
    NumberSequenceReference::find(
        typeId2extendedTypeId(typeID(NumberSeq_TransCode))));
Выдает ошибку:
Ошибка:Переменная класса не может быть использована в данном контексте(используйте метод NEW)
AX 2009
Старый 13.01.2011, 11:43   #4  
Raven Melancholic is offline
Raven Melancholic
Участник
Аватар для Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
2,164 / 1296 (48) ++++++++
Регистрация: 21.03.2005
Адрес: Москва-Петушки
Если посмотреть использование номерных серий в стандартной Аксе, то можно заметить, что общий подход следующий:
В таблице параметров модуля создается метод получения ссылки, что-то вроде того:
X++:
// ААК: МФД40_09_01_0008_004 10.01.2009 [Управление транспортом] -->
server static NumberSequenceReference numRefDriverId_OVK()
// ААК: МФД40_09_01_0008_004 10.01.2009 [Управление транспортом] <--
{
    ;
    return NumberSeqReference::findReference(typeId2ExtendedTypeId(typeId(DriverId_OVK)));
}
А затем используется уже этот метод в зависимости от потребностей. Например, для получения из кода:
X++:
public static DriverId_OVK nextNum()
{
    DriverId_OVK    driverId;
    ;

    ttsBegin;

    driverId    = NumberSeq::newGetNumFromCode(InventParameters::numRefDriverId_OVK().NumberSequence).num();

    ttsCommit;


    return driverId;
}
Опс. Заметил:
Цитата:
В ClassDeclaration своего класса пишу
Как это в ClassDeclaration может быть код?
Старый 13.01.2011, 11:55   #5  
pitersky is offline
pitersky
северный Будда
Аватар для pitersky
Ex AND Project
Соотечественники
 
1,510 / 435 (18) +++++++
Регистрация: 26.09.2007
Адрес: Солнечная система
Цитата:
Сообщение от Raven Melancholic Посмотреть сообщение
Как это в ClassDeclaration может быть код?
Вот вам и ошибка. ClassDeclaration должен содержать только объявления глобальных для класса переменных. И всё. Система ругнулась не на проблему с номерной серией, а на ошибку программирования.
__________________
С уважением,
Вячеслав
Старый 13.01.2011, 12:04   #6  
AngelDominantes is offline
AngelDominantes
Участник
 
76 / 9 (1) +
Регистрация: 30.12.2010
Цитата:
Сообщение от pitersky Посмотреть сообщение
Вот вам и ошибка. ClassDeclaration должен содержать только объявления глобальных для класса переменных. И всё. Система ругнулась не на проблему с номерной серией, а на ошибку программирования.
Спасибо, но только вот вопрос, почему я не могу сделать переменную sequence
глобальной для класса, просто что бы понять и не наступать далее на эти же грабли.
Старый 13.01.2011, 12:12   #7  
Raven Melancholic is offline
Raven Melancholic
Участник
Аватар для Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
2,164 / 1296 (48) ++++++++
Регистрация: 21.03.2005
Адрес: Москва-Петушки
Цитата:
Сообщение от AngelDominantes Посмотреть сообщение
Спасибо, но только вот вопрос, почему я не могу сделать переменную sequence глобальной для класса.
Почему же не можете? Вы можете её объявить в ClassDeclaration. А инициализировать её нужно в другом месте. Например, в new (что не очень красиво) или при первом использовании.
Старый 13.01.2011, 14:52   #8  
AngelDominantes is offline
AngelDominantes
Участник
 
76 / 9 (1) +
Регистрация: 30.12.2010
Цитата:
Сообщение от Raven Melancholic Посмотреть сообщение
Почему же не можете? Вы можете её объявить в ClassDeclaration. А инициализировать её нужно в другом месте. Например, в new (что не очень красиво) или при первом использовании.
Создал в другом методе класса, но при прогонке в отладчике выдает ошибку: Не указана ссылка для вызова номерных серий, как ее настроить?
Старый 13.01.2011, 14:59   #9  
pitersky is offline
pitersky
северный Будда
Аватар для pitersky
Ex AND Project
Соотечественники
 
1,510 / 435 (18) +++++++
Регистрация: 26.09.2007
Адрес: Солнечная система
Так вы это... сначала задайте её в настройках. Руками.
__________________
С уважением,
Вячеслав
Старый 13.01.2011, 15:05   #10  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,479 / 1250 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
Для начала рекомендую почитать:
Герань и нумераторы: http://axapta.mazzy.ru/lib/numbersequence/
Обсуждение данной статьи: http://forum.mazzy.ru/index.php?showtopic=1722
Еще немного: Еще раз про номерные серии

Возможно, станет ясен сам механизм, для чего нужен, как настраивается и как программировать.

С Уважением,
Георгий
Старый 14.01.2011, 09:56   #11  
AngelDominantes is offline
AngelDominantes
Участник
 
76 / 9 (1) +
Регистрация: 30.12.2010
Вопросов много а форум не резиновый, дабы не плодить снова тему задам его тут:
Как можно из класса обновить запись расположенную в гриде на форме, метод Reread получается считывает заново данные из базы, а вот как саму форме обновить при этом, что бы изменения отобразились?
За это сообщение автора поблагодарили: S.Kuskov (-1).
Старый 14.01.2011, 10:03   #12  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,440 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от AngelDominantes Посмотреть сообщение
Вопросов много а форум не резиновый, дабы не плодить снова тему задам его тут
Это вы зря. У нас сейчас с этим строго (Пожалуйста, создавайте отдельные ветки для обсуждения отдельных тем.) Могут даже ветку закрыть (без иронии).
Старый 14.01.2011, 10:29   #13  
AngelDominantes is offline
AngelDominantes
Участник
 
76 / 9 (1) +
Регистрация: 30.12.2010
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
Это вы зря. У нас сейчас с этим строго (Пожалуйста, создавайте отдельные ветки для обсуждения отдельных тем.) Могут даже ветку закрыть (без иронии).
Вопрос снят.

Последний раз редактировалось AngelDominantes; 14.01.2011 в 11:01.
Старый 14.01.2011, 11:01   #14  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,440 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от AngelDominantes Посмотреть сообщение
Все еще жду ответа
Поверьте вам ответят гораздо быстрее если заголовок темы будет соответствовать вашему вопросу
Старый 26.03.2013, 18:25   #15  
user_ax is offline
user_ax
Участник
Аватар для user_ax
 
599 / 39 (3) +++
Регистрация: 07.10.2012
Адрес: ZP
Не буду создавать темы, так как заголовок данной соответствует в некой мере моему вопросу.

Итак, мне необходимо создать новую номерную серию для созданного модуля.

Прочитал много обсуждений здесь на форуме, номерную серию делал по инструкциям:
http://axapta.mazzy.ru/lib/numbersequence/
http://erpkb.com/Axapta/NomernyeSerii#h18438-1

Если зайти в Основное - Настройки - Номерные серии - Ссылки , то там моя ссылка отображается, но ещё без номерной серии, так как она не настроена, я так понимаю.

Теперь собственно, вопрос, а точнее, несколько вопросов:

Методы на моём ds, в который я буду вставлять номерную серию, переопределил, всё замечательно. Но у меня на форме 2 датасоурса, один - моя таблица, второй - numbersequencereference.
Так вот, как их нужно связать, чтобы было правильно?

И ещё, по поводу кодов, которые написаны в статьях.

Метод numberseqformhandler в статьях отличается. В одной он используется с параметрами, во второй - без. Как лучше и как правильнее?
Старый 26.03.2013, 20:42   #16  
user_ax is offline
user_ax
Участник
Аватар для user_ax
 
599 / 39 (3) +++
Регистрация: 07.10.2012
Адрес: ZP
И ещё пару моментов: если зайти в ссылки номерных серий на Основной - там моя номерная серия отображается, хотя не должна, а должна отображаться в моей параметрической форме моего модуля.

Эти статьи ведь предназначаются для AX 3.0, а я в девятке работаю. Может быть что-то нужно дополнить?

И ещё такой момент: у меня пока что нет конфигурационных ключей, посмотрел в других наследниках numbersequence - там в loadmodule идёт ещё запись параметра configurationkey, это важно для отображения модуля?
Старый 26.03.2013, 20:55   #17  
Sada is offline
Sada
Программатор
Аватар для Sada
 
1,450 / 153 (8) ++++++
Регистрация: 29.03.2005
Адрес: Толи Барнаул, толи Москва
Создание новой номерной серии "шаг за шагом"
Старый 26.03.2013, 21:30   #18  
user_ax is offline
user_ax
Участник
Аватар для user_ax
 
599 / 39 (3) +++
Регистрация: 07.10.2012
Адрес: ZP
Это для 3.0, я написал, что эти шаги проделал.
Старый 26.03.2013, 21:35   #19  
Sada is offline
Sada
Программатор
Аватар для Sada
 
1,450 / 153 (8) ++++++
Регистрация: 29.03.2005
Адрес: Толи Барнаул, толи Москва
ой... там на английском даже я не понял Вы где нор\мерную серию хотите создать? в сущ-ем модуле или нет?
Старый 26.03.2013, 21:41   #20  
Sada is offline
Sada
Программатор
Аватар для Sada
 
1,450 / 153 (8) ++++++
Регистрация: 29.03.2005
Адрес: Толи Барнаул, толи Москва
Смотрите ка сделано а заказах на продажу
\Classes\NumberSeqReference_Customer

\Data Dictionary\Tables\SalesParameters\Methods\numRefSalesId
\Forms\CustParameters

Последний раз редактировалось Sada; 26.03.2013 в 21:44.
Теги
номерная серия

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Номерные серии в новом учетном периоде sda_1978 DAX: Функционал 4 21.12.2006 10:55
Номерные серии для Контактных лиц в Axapta CRM Alex-bs DAX: Функционал 2 10.02.2006 11:29
За и против использования суфикс/префикс в номерной серии dreshkov DAX: Функционал 18 12.11.2004 16:13
Толстый - Тонкий и номерные серии renat DAX: Администрирование 9 22.05.2003 11:20
Про номерные серии andreynikolai DAX: Программирование 1 13.03.2003 14:00

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 14:38.