AXForum  
Zurück   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Kennwort vergessen?
Registrieren Forum Rules Hilfe Benutzerliste Heutige Beiträge Suchen

 
 
Themen-Optionen Thema durchsuchen Ansicht
Alt 13.01.2011, 11:13   #1  
AngelDominantes ist offline
AngelDominantes
Участник
 
76 / 9 (1) +
Registriert seit: 30.12.2010
Номерные Серии
Доброго времени суток. Вопрос про номерные серии:
Создаем класс наследник от NumberSeqReference, переопределяем там метод loadModule, кстати обязательно ли переопределять NumberSeqModule? далее каким образом можно использовать номерную серию в другом классе, как я понимаю просто создать элемент класса не прокатит? Выполнение следующего кода в необходимом классе вызывает ошибку.
X++:
// Получение объекта "Номерная серия"
NumberSeq sequence = NumberSeq::newGetNum(
    NumberSequenceReference::find(
        typeId2extendedTypeId(typeID(< EDT>))));
;
// получение нового значения из номерной серии
<>.<> = sequence.num();
Заранее Благодарен.
Alt 13.01.2011, 11:21   #2  
pitersky ist offline
pitersky
северный Будда
Benutzerbild von pitersky
Ex AND Project
Соотечественники
 
1.518 / 435 (18) +++++++
Registriert seit: 26.09.2007
Ort: Солнечная система
Вы бы хоть написали, что за ошибка. Ну и версия АХ совсем не помешает
А вообще - зря вы новый класс-наследник создавали. Такое надо делать только под новый и большой самописный модуль. Если речь идёт о двух-трёх новых номерных, то лучше дописать уже существующий loanModule какого-нибудь потомка.
__________________
С уважением,
Вячеслав
Alt 13.01.2011, 11:33   #3  
AngelDominantes ist offline
AngelDominantes
Участник
 
76 / 9 (1) +
Registriert seit: 30.12.2010
Zitat:
Zitat von pitersky Beitrag anzeigen
Вы бы хоть написали, что за ошибка. Ну и версия АХ совсем не помешает
А вообще - зря вы новый класс-наследник создавали. Такое надо делать только под новый и большой самописный модуль. Если речь идёт о двух-трёх новых номерных, то лучше дописать уже существующий 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
Alt 13.01.2011, 11:43   #4  
Raven Melancholic ist offline
Raven Melancholic
Участник
Benutzerbild von Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
2.164 / 1296 (48) ++++++++
Registriert seit: 21.03.2005
Ort: Москва-Петушки
Если посмотреть использование номерных серий в стандартной Аксе, то можно заметить, что общий подход следующий:
В таблице параметров модуля создается метод получения ссылки, что-то вроде того:
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;
}
Опс. Заметил:
Zitat:
В ClassDeclaration своего класса пишу
Как это в ClassDeclaration может быть код?
Alt 13.01.2011, 11:55   #5  
pitersky ist offline
pitersky
северный Будда
Benutzerbild von pitersky
Ex AND Project
Соотечественники
 
1.518 / 435 (18) +++++++
Registriert seit: 26.09.2007
Ort: Солнечная система
Zitat:
Zitat von Raven Melancholic Beitrag anzeigen
Как это в ClassDeclaration может быть код?
Вот вам и ошибка. ClassDeclaration должен содержать только объявления глобальных для класса переменных. И всё. Система ругнулась не на проблему с номерной серией, а на ошибку программирования.
__________________
С уважением,
Вячеслав
Alt 13.01.2011, 12:04   #6  
AngelDominantes ist offline
AngelDominantes
Участник
 
76 / 9 (1) +
Registriert seit: 30.12.2010
Zitat:
Zitat von pitersky Beitrag anzeigen
Вот вам и ошибка. ClassDeclaration должен содержать только объявления глобальных для класса переменных. И всё. Система ругнулась не на проблему с номерной серией, а на ошибку программирования.
Спасибо, но только вот вопрос, почему я не могу сделать переменную sequence
глобальной для класса, просто что бы понять и не наступать далее на эти же грабли.
Alt 13.01.2011, 12:12   #7  
Raven Melancholic ist offline
Raven Melancholic
Участник
Benutzerbild von Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
2.164 / 1296 (48) ++++++++
Registriert seit: 21.03.2005
Ort: Москва-Петушки
Zitat:
Zitat von AngelDominantes Beitrag anzeigen
Спасибо, но только вот вопрос, почему я не могу сделать переменную sequence глобальной для класса.
Почему же не можете? Вы можете её объявить в ClassDeclaration. А инициализировать её нужно в другом месте. Например, в new (что не очень красиво) или при первом использовании.
Alt 13.01.2011, 14:52   #8  
AngelDominantes ist offline
AngelDominantes
Участник
 
76 / 9 (1) +
Registriert seit: 30.12.2010
Zitat:
Zitat von Raven Melancholic Beitrag anzeigen
Почему же не можете? Вы можете её объявить в ClassDeclaration. А инициализировать её нужно в другом месте. Например, в new (что не очень красиво) или при первом использовании.
Создал в другом методе класса, но при прогонке в отладчике выдает ошибку: Не указана ссылка для вызова номерных серий, как ее настроить?
Alt 13.01.2011, 14:59   #9  
pitersky ist offline
pitersky
северный Будда
Benutzerbild von pitersky
Ex AND Project
Соотечественники
 
1.518 / 435 (18) +++++++
Registriert seit: 26.09.2007
Ort: Солнечная система
Так вы это... сначала задайте её в настройках. Руками.
__________________
С уважением,
Вячеслав
Alt 13.01.2011, 15:05   #10  
George Nordic ist offline
George Nordic
Модератор
Benutzerbild von George Nordic
Злыдни
 
4.480 / 1255 (50) ++++++++
Registriert seit: 17.12.2003
Ort: Moscow
Blog-Einträge: 9
Для начала рекомендую почитать:
Герань и нумераторы: http://axapta.mazzy.ru/lib/numbersequence/
Обсуждение данной статьи: http://forum.mazzy.ru/index.php?showtopic=1722
Еще немного: Еще раз про номерные серии

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

С Уважением,
Георгий
Alt 14.01.2011, 09:56   #11  
AngelDominantes ist offline
AngelDominantes
Участник
 
76 / 9 (1) +
Registriert seit: 30.12.2010
Вопросов много а форум не резиновый, дабы не плодить снова тему задам его тут:
Как можно из класса обновить запись расположенную в гриде на форме, метод Reread получается считывает заново данные из базы, а вот как саму форме обновить при этом, что бы изменения отобразились?
This post has been rated by: S.Kuskov (-1).
Alt 14.01.2011, 10:03   #12  
S.Kuskov ist offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3.450 / 1792 (66) ++++++++
Registriert seit: 28.04.2007
Ort: Калуга
Zitat:
Zitat von AngelDominantes Beitrag anzeigen
Вопросов много а форум не резиновый, дабы не плодить снова тему задам его тут
Это вы зря. У нас сейчас с этим строго (Пожалуйста, создавайте отдельные ветки для обсуждения отдельных тем.) Могут даже ветку закрыть (без иронии).
Alt 14.01.2011, 10:29   #13  
AngelDominantes ist offline
AngelDominantes
Участник
 
76 / 9 (1) +
Registriert seit: 30.12.2010
Zitat:
Zitat von S.Kuskov Beitrag anzeigen
Это вы зря. У нас сейчас с этим строго (Пожалуйста, создавайте отдельные ветки для обсуждения отдельных тем.) Могут даже ветку закрыть (без иронии).
Вопрос снят.

Geändert von AngelDominantes (14.01.2011 um 11:01 Uhr)
Alt 14.01.2011, 11:01   #14  
S.Kuskov ist offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3.450 / 1792 (66) ++++++++
Registriert seit: 28.04.2007
Ort: Калуга
Zitat:
Zitat von AngelDominantes Beitrag anzeigen
Все еще жду ответа
Поверьте вам ответят гораздо быстрее если заголовок темы будет соответствовать вашему вопросу
Alt 26.03.2013, 18:25   #15  
user_ax ist offline
user_ax
Участник
Benutzerbild von user_ax
 
599 / 39 (3) +++
Registriert seit: 07.10.2012
Ort: ZP
Не буду создавать темы, так как заголовок данной соответствует в некой мере моему вопросу.

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

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

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

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

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

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

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

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

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

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

Geändert von Sada (26.03.2013 um 21:44 Uhr)
Stichworte
номерная серия

 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Номерные серии в новом учетном периоде 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

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Gehe zu

Рейтинг@Mail.ru
Alle Zeitangaben in WEZ +3. Es ist jetzt 21:03 Uhr.
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.