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