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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 21.03.2012, 08:58   #1  
Eldar9x is offline
Eldar9x
MCTS
Аватар для Eldar9x
Oracle
MCBMSS
 
1,064 / 166 (8) ++++++
Регистрация: 29.09.2006
Адрес: Казань
Создание нового журнала
Здравствуйте. Необходимо создать новый журнал в аксапте. Так же, как и обычные с Названием, с Шапкой, Строками, проверкой/разноской итд. Причем он не завязан ни к модулю номенклатур, ни к модулю ГК. Проводок там создаваться не будет. Tutorial-ы в 2009 аксапте сделаны по одному из этих модулей. Подскажите, пожалуйста, с чего начать, куда смотреть в этом вопросе?
Старый 21.03.2012, 09:01   #2  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
Цитата:
Сообщение от Eldar9x Посмотреть сообщение
Здравствуйте. Необходимо создать новый журнал в аксапте. Так же, как и обычные с Названием, с Шапкой, Строками, проверкой/разноской итд. Причем он не завязан ни к модулю номенклатур, ни к модулю ГК. Проводок там создаваться не будет. Tutorial-ы в 2009 аксапте сделаны по одному из этих модулей. Подскажите, пожалуйста, с чего начать, куда смотреть в этом вопросе?
Ну куда смотреть, зависит от бизнес задачи.
Вообще все журналы сделаны примерно по одному виду. Я бы сделал по аналогии с InventJournalTable (хотя конечно, повторюсь, все зависит от бизнес назначения журнала).
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
Старый 21.03.2012, 09:05   #3  
Eldar9x is offline
Eldar9x
MCTS
Аватар для Eldar9x
Oracle
MCBMSS
 
1,064 / 166 (8) ++++++
Регистрация: 29.09.2006
Адрес: Казань
Цитата:
Сообщение от lev Посмотреть сообщение
Ну куда смотреть, зависит от бизнес задачи.
Вообще все журналы сделаны примерно по одному виду. Я бы сделал по аналогии с InventJournalTable (хотя конечно, повторюсь, все зависит от бизнес назначения журнала).
Это для отдельно живущего самодельного транспортного модуля. Там есть свои таблицы, в которых при разноске и будут происходить изменения. Вот в том то и дело, я сейчас ума не приложу, с чего хотя бы начать сейчас...
Старый 21.03.2012, 09:13   #4  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,440 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
— А у вас нет такой же, но с пелра… перламутровыми пуговицами?
— К сожалению, нет.
— Нет? Будем искать.
Цитата:
Сообщение от Eldar9x Посмотреть сообщение
Подскажите, пожалуйста, с чего начать, куда смотреть в этом вопросе?
Конечно странная постановка задачи, ну да ладно. Первое что приходит в голову. Это следовать Tutorial-ам, но только наследовать свои классы не от модульных классов, а от базовых.
X++:
//class TutorialJournalCheckPost extends JournalCheckPostLedger
class myTutorialJournalCheckPost extends JournalCheckPost
{
}
Старый 21.03.2012, 09:18   #5  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
Цитата:
Сообщение от Eldar9x Посмотреть сообщение
Это для отдельно живущего самодельного транспортного модуля. Там есть свои таблицы, в которых при разноске и будут происходить изменения. Вот в том то и дело, я сейчас ума не приложу, с чего хотя бы начать сейчас...
Ну так начните с малого, "распутывайте клубок" постепенно.
Во первых, для начала, я бы описал архитектуру и функционал ваших журналов. Что как должно отображаться, как и с чем они будут взаимодействовать, что как должно разноситься, где и на что будут влиять эти журналы. Пусть Вы потратите немного больше времени, чем хотелось бы, но описав (причем достаточно подробно) функционал и архитектуру, как мне кажется, Вам станет понятно в каком направлении двигаться, и что брать за пример.

З.Ы. ну и как уже сказал S.Kuskov наследоваться Вам нужно будет от базовых классов.
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
Старый 21.03.2012, 09:24   #6  
Eldar9x is offline
Eldar9x
MCTS
Аватар для Eldar9x
Oracle
MCBMSS
 
1,064 / 166 (8) ++++++
Регистрация: 29.09.2006
Адрес: Казань
Спасибо. Я еще где-то видел статью по созданию новых журналов. Как раз по ней очень давно создавал какой-то новый журнал УЗ. Но вот сейчас что-то не могу найти. Помню только, что там по порядку очень хорошо были разжеваны все моменты этого вопроса...
Старый 21.03.2012, 09:48   #8  
Eldar9x is offline
Eldar9x
MCTS
Аватар для Eldar9x
Oracle
MCBMSS
 
1,064 / 166 (8) ++++++
Регистрация: 29.09.2006
Адрес: Казань
Цитата:
Эх, там ссылка битая
Старый 21.03.2012, 11:18   #9  
egorych is offline
egorych
Участник
Самостоятельные клиенты AX
Oracle
 
761 / 154 (7) ++++++
Регистрация: 09.11.2006
Адрес: Краснодарский край
Цитата:
Сообщение от Eldar9x Посмотреть сообщение
Здравствуйте. Необходимо создать новый журнал ... Причем он не завязан ни к модулю номенклатур, ни к модулю ГК. Проводок там создаваться не будет.
Цитата:
Сообщение от lev Посмотреть сообщение
З.Ы. ну и как уже сказал S.Kuskov наследоваться Вам нужно будет от базовых классов.
Можно спросить - а задлянафига? Потренироваться в наследовании? Или охота поковыряться в базовых классах?
Если журнал ни с чем не связан - сделайте 2 таблички и 2 кнопки - проверить/разнести. Пропишите действия хоть на форме хоть в своем-же классе и радуйтесь стабильной и ПОНЯТНОЙ работе!
зы Вообще не понимаю наличия ООП в управленческих системах! Ну, например, семейство классов SalesPurch - нафига они нужны вместе? Зачем их объединили, чтоб потом в поте лица определять что это - салес или же пурч, ёперный балет!
__________________
Axapta 3.0 sp - хз какой, kr2
За это сообщение автора поблагодарили: denny (1).
Старый 21.03.2012, 11:28   #10  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
Цитата:
Сообщение от egorych Посмотреть сообщение
Можно спросить - а задлянафига? Потренироваться в наследовании? Или охота поковыряться в базовых классах?
Если журнал ни с чем не связан - сделайте 2 таблички и 2 кнопки - проверить/разнести. Пропишите действия хоть на форме хоть в своем-же классе и радуйтесь стабильной и ПОНЯТНОЙ работе!
зы Вообще не понимаю наличия ООП в управленческих системах! Ну, например, семейство классов SalesPurch - нафига они нужны вместе? Зачем их объединили, чтоб потом в поте лица определять что это - салес или же пурч, ёперный балет!
как я уже говорил:
Цитата:
Ну так начните с малого, "распутывайте клубок" постепенно.
Во первых, для начала, я бы описал архитектуру и функционал ваших журналов. Что как должно отображаться, как и с чем они будут взаимодействовать, что как должно разноситься, где и на что будут влиять эти журналы. Пусть Вы потратите немного больше времени, чем хотелось бы, но описав (причем достаточно подробно) функционал и архитектуру, как мне кажется, Вам станет понятно в каком направлении двигаться, и что брать за пример.
и если уже после этого человек поймет, что ему нужно что то, что уже есть в базовых классах и можно использовать уже существующее, тогда:
Цитата:
З.Ы. ну и как уже сказал S.Kuskov наследоваться Вам нужно будет от базовых классов.
в другом случае, напишет свое.
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
Старый 21.03.2012, 11:47   #11  
Starling is offline
Starling
Участник
Дети Юза
 
530 / 76 (4) ++++
Регистрация: 20.10.2005
Адрес: Kiev
Цитата:
Сообщение от egorych Посмотреть сообщение
Можно спросить - а задлянафига?
Согласен.
Из личного опыта - на проекте тоже была необходимость создать новый журнал – для принципиально новых сущностей. Разработчик оценил эту задачу в довольно большое количество часов – уж не помню какое, но мне оно не понравилось.
Тогда было предложено не использовать стандартный подход, а сделать просто отдельные формочки. Все это было «слизано» со стандартных журналов коммерческих соглашений. Оценки уменьшилась в разы. Результатом все довольны.
Но это частный случай, функциональность таки получилось урезанной. Такие фичи, как блокировка журнала открытого другим пользователем, настройки журналов для групп не реализовывались. Для нас это было не критично.
Тут уже вам решать.
Старый 21.03.2012, 12:04   #12  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,440 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Post
Цитата:
Сообщение от egorych Посмотреть сообщение
Можно спросить - а задлянафига?
Дьявол, как всегда, в деталях. Сделать что-то своё сбоку - оно конечно много проще.
Работать оно будет, Но вам прийдётся придумать объяснение для пользователей и консультантов, почему те функции к которым они привыкли при работе с стандартными журналами не реализованы у вас.

О чём я говорю. На вскидку:
  1. Журнализация ошибок при проверке/Отображение строк с ошибками
  2. Система прав доступа журналам (Типы журналов) и к отдельным журналам (атрибуты: Частный, группа пользователей)
  3. Разграничение нескольких пользователей при работе с одним журналом (болкировка журнала)
  4. Отображение числа строк в шапке журнала
  5. ... и т.д. и т.п.

Итого. Если вы хотите что бы для пользователя работа в системе со стандартными журналами не отличалась от работы с вашими журналами, то наследование базовой логики - это просто само-собой разумеющееся. Если не хотите - ваш выбор.
За это сообщение автора поблагодарили: lev (5).
Старый 21.03.2012, 12:43   #13  
Eldar9x is offline
Eldar9x
MCTS
Аватар для Eldar9x
Oracle
MCBMSS
 
1,064 / 166 (8) ++++++
Регистрация: 29.09.2006
Адрес: Казань
Цитата:
Сообщение от egorych Посмотреть сообщение
Можно спросить - а задлянафига? Потренироваться в наследовании? Или охота поковыряться в базовых классах?
Если журнал ни с чем не связан - сделайте 2 таблички и 2 кнопки - проверить/разнести. Пропишите действия хоть на форме хоть в своем-же классе и радуйтесь стабильной и ПОНЯТНОЙ работе!
Такое требование тз: использовать стандартный функционал журналов . В частности, потребовалось то самое блокирование. Хотя изначально в тз это вообще была одна простенькая форма с вполне понятной логикой.
Старый 21.03.2012, 13:24   #14  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Eldar9x Посмотреть сообщение
Хотя изначально в тз это вообще была одна простенькая форма с вполне понятной логикой.
не-не-не, Девид Блейн.
простенькая она пока полностью не осознаешь что от нее требуется

делайте по туториалу.
__________________
полезное на axForum, github, vk, coub.
За это сообщение автора поблагодарили: lev (1).
Старый 21.03.2012, 13:39   #15  
_scorp_ is offline
_scorp_
Участник
Аватар для _scorp_
MCBMSS
 
488 / 369 (13) ++++++
Регистрация: 25.07.2007
Адрес: Москва
Цитата:
Сообщение от Eldar9x Посмотреть сообщение
Подскажите, пожалуйста, с чего начать, куда смотреть в этом вопросе?
Нужно будет прописать свои таблицы в Map:
JournalNameMap
JournalTableMap
JournalTransMap
Не претендую на 100% правильность, но я при создании журналов создал наследников от перечисленных классов и перекрыл следующие методы:
JournalFormTable
- dataSourceCreatePost
- dataSourceCreatePre
- datasourceExecuteQueryPre
- datasourceValidateDeletePost
- enableButtonsActive
- initAllOpenPostedFromCaller
- initDatasourceAllow
- queryAddRange
- valueAllOpenPosted
JournalFormTrans
- dataSourceInitValuePost
- dataSourceInitValuePre
- dataSourceWritePre
- initButtons
- initDataSourceAllow
JournalStatic
- journalName
- journalTable
- journalTrans
- journalTypeIdToEnum
- menuItemStrLines //эта реализация мне не нравиться. В зависимости от типа журнала подменятся MenuItem для кнопки строк. Из-за этого неудобно настраивать права.
- nameFieldIdJournalNameId
- newJournalTransData
- newJournalVoucherNum
- numRefJournalId
- standardJournalNameId
JournalTableData
- canBeAutoUnlocked
- checkOpen
- initFromJournalName
- updateTable
JournalTransData
- findVoucher
- isVoucherObjectKeyValid
- voucherObjectKey
Реализовать формы по примеру:
InventJournalTable
InventJournalMovement
За это сообщение автора поблагодарили: mazzy (5), Ruff (2), Eldar9x (3), AP-1055D (1).
Старый 21.03.2012, 13:47   #16  
Raven Melancholic is offline
Raven Melancholic
Участник
Аватар для Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
2,164 / 1296 (48) ++++++++
Регистрация: 21.03.2005
Адрес: Москва-Петушки
Цитата:
Сообщение от Eldar9x Посмотреть сообщение
Такое требование тз: использовать стандартный функционал журналов
В принципе, там особых сложностей нет:
  • Создаем таблицы для заголовков, для строк и для наименований журналов.
  • Включаем их в Map JournalNameMap, JournalTableMap, JournalTransMap.
  • В настройках подходящего модуля добавляем поля, в которых будут указываться стандартные наименования журналов.
  • Создаем формы для заголовков, строк, наименований журналов.
  • Реализуем наследников от JournalFormTable, JournalFormTrans, JournalStatic, JournalTableData, JournalTransData. Если нужно, то еще и JournalCheckPost.
  • В классе JournalStatic модифицируем методы construct, findJournalTableFromTrans, findJournalTableId
  • В классе JournalTableData модифицируем construct
Вроде бы все. Ну а какие методы реализовывать и как все это использовать, смотрим по туториалу, по другим существующим журналам ну и по логике, указанной в задании.
За это сообщение автора поблагодарили: mazzy (5), Ruff (2), Eldar9x (3), alex55 (1), demoded (2).
Теги
создание журнала

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Снова программное создание журнала платежей -xXx- DAX: Программирование 2 29.09.2009 14:26
Создание нового журнала Brute DAX: Программирование 8 30.06.2006 17:30
Создание нового типа журнала в Управлении запасами vasiliy DAX: Программирование 2 03.11.2005 14:46
Создание журнала инвентаризации Sanya DAX: Функционал 6 19.08.2005 17:06
Создание нового пакета журнала gam DAX: Функционал 4 01.03.2005 10:10
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

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