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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 19.02.2009, 13:04   #1  
kalex_a is offline
kalex_a
Участник
Аватар для kalex_a
Самостоятельные клиенты AX
MCBMSS
 
160 / 19 (1) ++
Регистрация: 26.11.2007
Адрес: Казахстан
! Наименование журнала (JournalName)
Здравствуйте, у меня такой вопрос. Создаю новое наименование журанла (в LedgerJournalName), например "Наименование 1", в LedgerJournalTable создаю журнал с этим именем "Наименование 1", так вот при разноске журнала в зависимости от его наименования, мне необходимо вызывать разнае классы, как правильнее проверить наименование журнала. Мне кажется что если так:
X++:
if (ledgerJournalTable.JournalName == "Наименование 1")
    {
            // действия
    }
то как то это не правильно. Или я ошибаюсь?
__________________
Лучше сделать и жалеть, чем жалеть что не сделал
Старый 19.02.2009, 13:11   #2  
glibs is offline
glibs
Member
Сотрудники компании It Box
Most Valuable Professional
Лучший по профессии 2011
Лучший по профессии 2009
 
4,942 / 911 (40) +++++++
Регистрация: 10.06.2002
Адрес: I am from Kyiv, Ukraine. Now I am in Moscow. For private contacts: glibs@hotmail.com
Создать перечисление, добавить его в настройку журнала, заполнить уже созданные журналы корректными значениями этого перечисления, классам реагировать на перечисление.

Это кроме того, чтобы вникнуть, правильно ли поставлена задача.
__________________
С уважением,
glibs®
Старый 19.02.2009, 13:20   #3  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
На сколько я знаю, в параметрах склада (Управление запасами \ Настройки \ Параметры), на вкладке Журналы есть группа полей Код журнала по умолчанию. Там заполняются названия журналов по умолчанию.
Так вот. Можно в параметрах добавить поле с вашим новым названием журнала. Потом при вызове разноски сверять с параметрами Название журнала который разносить, и в зависимости от того с чем совпадает вызывать необходимый класс.
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
Старый 19.02.2009, 13:36   #4  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5798 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от kalex_a Посмотреть сообщение
Создаю новое наименование журанла (в LedgerJournalName), так вот при разноске журнала в зависимости от его наименования, мне необходимо вызывать разнае классы
Мне кажется, идеологически неправильно завязываться на названия журналов в данной постановке задачи - у них другое предназначение. Кроме того, классы разноски журналов ГК создаются еще до того, как станет известно, какой именно журнал (с каким кодом названия) надо разносить; тот или иной класс-наследник LedgerJournalCheckPost создается в зависимости от типа журнала, т.е. вам нужно:
  • создать дополнительное значение в enum'е LedgerJournalType (выберите значение где-нить в районе 200, чтобы снизить вероятность пересечения с локализаторскими и прочими доработками);
  • создать наследника класса LedgerJournalCheckPost, реализовав в нем нужные дополнительные действия, скажем, за счет перегрузки метода postTrans();
  • модифицировать метод LedgerJournalCheckPost::construct(), добавив в switch ваше значение LedgerJournalType и создание экземпляра вашего класса разноски;
  • в названиях журналов (LedgerJournalName) указывать ваше значение типа журнала и затем использовать соотв. коды при создании журналов, которые вам нужно разносить с помощью вашего класса разноски.
Старый 19.02.2009, 13:43   #5  
kalex_a is offline
kalex_a
Участник
Аватар для kalex_a
Самостоятельные клиенты AX
MCBMSS
 
160 / 19 (1) ++
Регистрация: 26.11.2007
Адрес: Казахстан
2 glibs: Не хотелось бы делать лишних примочек в LedgerJournalTable ((

2 lev: А при чем тут журнал запасов? Или вы имеете ввиду сделать то же самое в Журнале ГК??
__________________
Лучше сделать и жалеть, чем жалеть что не сделал
Старый 19.02.2009, 13:47   #6  
kalex_a is offline
kalex_a
Участник
Аватар для kalex_a
Самостоятельные клиенты AX
MCBMSS
 
160 / 19 (1) ++
Регистрация: 26.11.2007
Адрес: Казахстан
Цитата:
Сообщение от gl00mie Посмотреть сообщение
  • создать дополнительное значение в enum'е LedgerJournalType (выберите значение где-нить в районе 200, чтобы снизить вероятность пересечения с локализаторскими и прочими доработками);
  • создать наследника класса LedgerJournalCheckPost, реализовав в нем нужные дополнительные действия, скажем, за счет перегрузки метода postTrans();
  • модифицировать метод LedgerJournalCheckPost::construct(), добавив в switch ваше значение LedgerJournalType и создание экземпляра вашего класса разноски;
  • в названиях журналов (LedgerJournalName) указывать ваше значение типа журнала и затем использовать соотв. коды при создании журналов, которые вам нужно разносить с помощью вашего класса разноски.
Это я сделал, дело в том что 2 наименования относятся к 1-му LedgerJournalType
__________________
Лучше сделать и жалеть, чем жалеть что не сделал
Старый 19.02.2009, 13:49   #7  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
Цитата:
Сообщение от kalex_a Посмотреть сообщение
2 glibs: Не хотелось бы делать лишних примочек в LedgerJournalTable ((

2 lev: А при чем тут журнал запасов? Или вы имеете ввиду сделать то же самое в Журнале ГК??
Ой Дико извиняюсь! Что то меня заклинило на складском журнале тогда беру свои слова обратно
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
Старый 19.02.2009, 13:54   #8  
glibs is offline
glibs
Member
Сотрудники компании It Box
Most Valuable Professional
Лучший по профессии 2011
Лучший по профессии 2009
 
4,942 / 911 (40) +++++++
Регистрация: 10.06.2002
Адрес: I am from Kyiv, Ukraine. Now I am in Moscow. For private contacts: glibs@hotmail.com
Цитата:
Сообщение от kalex_a
...
Не хотелось бы делать лишних примочек в LedgerJournalTable ((
...
Нужно работать над собой, искоренять такие неправильные хотелки.
__________________
С уважением,
glibs®
За это сообщение автора поблагодарили: kalex_a (1).
Старый 19.02.2009, 14:23   #9  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5798 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от lev Посмотреть сообщение
в параметрах склада (Управление запасами \ Настройки \ Параметры), на вкладке Журналы есть группа полей Код журнала по умолчанию. Там заполняются названия журналов по умолчанию.
Так вот. Можно в параметрах добавить поле с вашим новым названием журнала. Потом при вызове разноски сверять с параметрами Название журнала который разносить, и в зависимости от того с чем совпадает вызывать необходимый класс.
Мне кажется, этот вариант не будет корректно работать в общем случае, поскольку в тех же УЗ настройки кодов журналов по умолчанию и указанные в них коды журналов относятся как n:m, n ≥ m, т.е. если указать для разных настроек одинаковые коды журналов, то по коду журнала уже нельзя будет однозначно сказать, к какой именно настройке он относится.
Цитата:
Сообщение от kalex_a Посмотреть сообщение
Это я сделал, дело в том что 2 наименования относятся к 1-му LedgerJournalType
"А вы так не делайте" (с) анек Введите дополнительный тип журнала, укажите его во втором названии журнала и job'ом пропишите его в неразнесенные журналы со вторым кодом названия. Вообще, названия журналов - это ведь просто строковые данные, которые пользователи руками вводят, на них нельзя в коде закладываться. Можно закладываться на значения enum'ов, либо на (не)совпадение данных в одной таблице и в другой, либо на отношения между значениями (больше, меньше), но никак не на строковые всякие данные, которые вводятся пользователями. Ведь у вас так семантика того, что делает код, теряется. Вот удалят названия журналов, коды которых вы в код прописали, - и все, уже непонятно, почему вы какое-то ветвление в коде делаете на основе несуществующих кодов журналов. Или захотят сделать другие названия журналов, чтобы для них было такое же поведение, - что, полезете в код дополнительные строковые литералы прописывать?..
Старый 19.02.2009, 14:37   #10  
kalex_a is offline
kalex_a
Участник
Аватар для kalex_a
Самостоятельные клиенты AX
MCBMSS
 
160 / 19 (1) ++
Регистрация: 26.11.2007
Адрес: Казахстан
Цитата:
Введите дополнительный тип журнала, укажите его во втором названии журнала и job'ом пропишите его в неразнесенные журналы со вторым кодом названия.
Да но, при открытии фомы LedgerJournalTable выводятся журналы только одного типа, а как тогда быть с двумя??

Цитата:
Вообще, названия журналов - это ведь просто строковые данные, которые пользователи руками вводят, на них нельзя в коде закладываться. Можно закладываться на значения enum'ов, либо на (не)совпадение данных в одной таблице и в другой, либо на отношения между значениями (больше, меньше), но никак не на строковые всякие данные, которые вводятся пользователями. Ведь у вас так семантика того, что делает код, теряется. Вот удалят названия журналов, коды которых вы в код прописали, - и все, уже непонятно, почему вы какое-то ветвление в коде делаете на основе несуществующих кодов журналов. Или захотят сделать другие названия журналов, чтобы для них было такое же поведение, - что, полезете в код дополнительные строковые литералы прописывать?..
Согласен, это я и имел ввиду в первом посте,
Цитата:
то как то это не правильно
__________________
Лучше сделать и жалеть, чем жалеть что не сделал

Последний раз редактировалось kalex_a; 19.02.2009 в 14:39.
Старый 19.02.2009, 14:47   #11  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5798 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от kalex_a Посмотреть сообщение
Да но, при открытии фомы LedgerJournalTable выводятся журналы только одного типа, а как тогда быть с двумя??
Сделайте отдельный пункт меню для второго типа. Как вариант, пользователи, если им сильно приспичит видеть в одной форме шапки журналов разных типов, могут после открытия формы поменять фильтры в запросе, используемом для отбора шапок журналов. Это, конечно, в том случае, если у вас такая возможность в шапках пока не отключена Да, еще при введении своего типа журналов надо не забыть поправить метод класса LedgerJournalStatic.menuItemStrLines(), чтобы использовалась нужная форма для строк журналов, а также добавить ваш новый тип журналов в метод формы LedgerJournalTable.setButtonVisible(), чтобы кнопка открытия строк была вообще видна на форме журналов.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Ошибка при создании журнала ega DAX: Администрирование 8 14.04.2008 09:06
Получение номера журнала из пункта меню Arahnid DAX: Программирование 15 13.05.2007 11:44
Нужен запрет на изменения данных журнала переноса после его распечатки ATimTim DAX: Программирование 4 19.01.2005 12:16
Ошибка при разноске журнала инвентаризации ATimTim DAX: Функционал 3 22.11.2004 17:27
3.0, Модуль: ОС, операция: Разноска строк журнала ОС (с предварит просм проводок) MagisterLudi DAX: Функционал 2 07.10.2003 18:55

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

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

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