![]() |
#1 |
Участник
|
Номерные Серии
Доброго времени суток. Вопрос про номерные серии:
Создаем класс наследник от NumberSeqReference, переопределяем там метод loadModule, кстати обязательно ли переопределять NumberSeqModule? далее каким образом можно использовать номерную серию в другом классе, как я понимаю просто создать элемент класса не прокатит? Выполнение следующего кода в необходимом классе вызывает ошибку. X++: // Получение объекта "Номерная серия" NumberSeq sequence = NumberSeq::newGetNum( NumberSequenceReference::find( typeId2extendedTypeId(typeID(< EDT>)))); ; // получение нового значения из номерной серии <>.<> = sequence.num(); |
|
![]() |
#2 |
северный Будда
|
Вы бы хоть написали, что за ошибка. Ну и версия АХ совсем не помешает
А вообще - зря вы новый класс-наследник создавали. Такое надо делать только под новый и большой самописный модуль. Если речь идёт о двух-трёх новых номерных, то лучше дописать уже существующий loanModule какого-нибудь потомка.
__________________
С уважением, Вячеслав |
|
![]() |
#3 |
Участник
|
Цитата:
Сообщение от pitersky
![]() Вы бы хоть написали, что за ошибка. Ну и версия АХ совсем не помешает
А вообще - зря вы новый класс-наследник создавали. Такое надо делать только под новый и большой самописный модуль. Если речь идёт о двух-трёх новых номерных, то лучше дописать уже существующий loanModule какого-нибудь потомка. 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); X++: NumberSeq sequence = NumberSeq::newGetNum(
NumberSequenceReference::find(
typeId2extendedTypeId(typeID(NumberSeq_TransCode)))); Ошибка:Переменная класса не может быть использована в данном контексте(используйте метод NEW) AX 2009 |
|
![]() |
#4 |
Участник
|
Если посмотреть использование номерных серий в стандартной Аксе, то можно заметить, что общий подход следующий:
В таблице параметров модуля создается метод получения ссылки, что-то вроде того: 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 своего класса пишу
|
|
![]() |
#5 |
северный Будда
|
Вот вам и ошибка. ClassDeclaration должен содержать только объявления глобальных для класса переменных. И всё. Система ругнулась не на проблему с номерной серией, а на ошибку программирования.
__________________
С уважением, Вячеслав |
|
![]() |
#6 |
Участник
|
Цитата:
глобальной для класса, просто что бы понять и не наступать далее на эти же грабли. |
|
![]() |
#7 |
Участник
|
Почему же не можете? Вы можете её объявить в ClassDeclaration. А инициализировать её нужно в другом месте. Например, в new (что не очень красиво) или при первом использовании.
|
|
![]() |
#8 |
Участник
|
Создал в другом методе класса, но при прогонке в отладчике выдает ошибку: Не указана ссылка для вызова номерных серий, как ее настроить?
|
|
![]() |
#9 |
северный Будда
|
Так вы это... сначала задайте её в настройках. Руками.
__________________
С уважением, Вячеслав |
|
![]() |
#10 |
Модератор
|
Для начала рекомендую почитать:
Герань и нумераторы: http://axapta.mazzy.ru/lib/numbersequence/ Обсуждение данной статьи: http://forum.mazzy.ru/index.php?showtopic=1722 Еще немного: Еще раз про номерные серии Возможно, станет ясен сам механизм, для чего нужен, как настраивается и как программировать. С Уважением, Георгий |
|
![]() |
#11 |
Участник
|
Вопросов много а форум не резиновый, дабы не плодить снова тему задам его тут:
Как можно из класса обновить запись расположенную в гриде на форме, метод Reread получается считывает заново данные из базы, а вот как саму форме обновить при этом, что бы изменения отобразились? |
|
|
За это сообщение автора поблагодарили: S.Kuskov (-1). |
![]() |
#12 |
Участник
|
Цитата:
|
|
![]() |
#13 |
Участник
|
Цитата:
Сообщение от S.Kuskov
![]() Это вы зря. У нас сейчас с этим строго (Пожалуйста, создавайте отдельные ветки для обсуждения отдельных тем.) Могут даже ветку закрыть (без иронии).
Последний раз редактировалось AngelDominantes; 14.01.2011 в 11:01. |
|
![]() |
#14 |
Участник
|
|
|
![]() |
#15 |
Участник
|
Не буду создавать темы, так как заголовок данной соответствует в некой мере моему вопросу.
Итак, мне необходимо создать новую номерную серию для созданного модуля. Прочитал много обсуждений здесь на форуме, номерную серию делал по инструкциям: http://axapta.mazzy.ru/lib/numbersequence/ http://erpkb.com/Axapta/NomernyeSerii#h18438-1 Если зайти в Основное - Настройки - Номерные серии - Ссылки , то там моя ссылка отображается, но ещё без номерной серии, так как она не настроена, я так понимаю. Теперь собственно, вопрос, а точнее, несколько вопросов: Методы на моём ds, в который я буду вставлять номерную серию, переопределил, всё замечательно. Но у меня на форме 2 датасоурса, один - моя таблица, второй - numbersequencereference. Так вот, как их нужно связать, чтобы было правильно? И ещё, по поводу кодов, которые написаны в статьях. Метод numberseqformhandler в статьях отличается. В одной он используется с параметрами, во второй - без. Как лучше и как правильнее? |
|
![]() |
#16 |
Участник
|
И ещё пару моментов: если зайти в ссылки номерных серий на Основной - там моя номерная серия отображается, хотя не должна, а должна отображаться в моей параметрической форме моего модуля.
Эти статьи ведь предназначаются для AX 3.0, а я в девятке работаю. Может быть что-то нужно дополнить? И ещё такой момент: у меня пока что нет конфигурационных ключей, посмотрел в других наследниках numbersequence - там в loadmodule идёт ещё запись параметра configurationkey, это важно для отображения модуля? |
|
![]() |
#17 |
Программатор
|
|
|
![]() |
#18 |
Участник
|
|
|
![]() |
#19 |
Программатор
|
ой... там на английском
![]() ![]() |
|
![]() |
#20 |
Программатор
|
Смотрите ка сделано а заказах на продажу
\Classes\NumberSeqReference_Customer \Data Dictionary\Tables\SalesParameters\Methods\numRefSalesId \Forms\CustParameters Последний раз редактировалось Sada; 26.03.2013 в 21:44. |
|