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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 16.01.2006, 10:21   #1  
DreamCreator is offline
DreamCreator
Moderator
Аватар для DreamCreator
Axapta Retail User
 
553 / 45 (3) +++
Регистрация: 04.11.2004
Адрес: Казань
? DeleteAction
Доброе утро! С переходом на Добрый день!

Изначально вопрос -- как программно понять что сработал DeleteAction?

И сама задача: при попытке удалить складские журналы, они теперь не удаляются а меняют свой статус и их можно видеть в своей форме (стандартная таблица, стандарттная форма для складских журналов). Как перегрузить delete у inventJournalTable понятно, непонятно как перекрыть deleteAction на inventJournalTrans!?

Почему не перекрыть метод delete на inventJournalTrans -- потому что он может вызываться из многих других мест, а при этом запрещать удаление я думаю неправильно.

Почему в delete InventJournalTrans не оперировать статусом InventJournalTable (InventJournalType:eleted) -- потому что сначала удаляются строки а потом удаляется шапка (вызывается delete у InventJournalTable, т.е. статус еще какой угодно только не InventJournalType::deleted)..

Вот на этом остановился..
Старый 16.01.2006, 10:35   #2  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
а разве delete action вызывается если не вызывать super в delete? раз вы хотите отменить удаление в журнале надо просто
X++:
void delete()
{
   //вместо super();
   this.markAsDeleted();
}
Старый 16.01.2006, 10:37   #3  
DreamCreator is offline
DreamCreator
Moderator
Аватар для DreamCreator
Axapta Retail User
 
553 / 45 (3) +++
Регистрация: 04.11.2004
Адрес: Казань
Даа, действительно! ) Об этом я не подумал! )
Спасибо!
Старый 16.01.2006, 14:35   #4  
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
Странная постановка задачи. Похожа на анекдот про студента, пальму и обезьяну.

По-моему, вам просто нужно уничтожить delete action. А то какая-то фигня получается. Delete action есть, а данные не удаляются. Для чего вы хотите оставить delete action?
__________________
С уважением,
glibs®
Старый 16.01.2006, 14:40   #5  
DreamCreator is offline
DreamCreator
Moderator
Аватар для DreamCreator
Axapta Retail User
 
553 / 45 (3) +++
Регистрация: 04.11.2004
Адрес: Казань
!
Спасибо! Действительно.

Причины, две:
1. Сейчас тестирую, и если придется откатывать назад, то хотелось бы иметь минимум изменений.

2. Будет одна форма на которой хотелось бы стандартным способом удалять журналы (форма с журналами помеченными на удаление).

А вцелом согласен, хорошо бы удалить.
Старый 17.01.2006, 10:16   #6  
Maxim Gorbunov is offline
Maxim Gorbunov
Administrator
Соотечественники
Лучший по профессии 2009
 
2,483 / 645 (26) +++++++
Регистрация: 27.11.2001
Адрес: Dubai, UAE
Смотрите как сделано стандартное аннулирование заказов.

Впрочем, вам уже и рассказали как.
__________________
Not registered yet? Register here!
Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me
Старый 17.01.2006, 10:26   #7  
DreamCreator is offline
DreamCreator
Moderator
Аватар для DreamCreator
Axapta Retail User
 
553 / 45 (3) +++
Регистрация: 04.11.2004
Адрес: Казань
Стандартное анулирование заказов -- это переписывание заказа в новую таблицы (SalesTableDelete и SalesLineDelete, возможно еще куда). Но при анулировании складских журналов можно поступить хитрее, с минимальным программированием и получением максимально удобного функционала -- изменить статус журнала.

Написать надо: новый статус, перекрыть delete в заголовке журнала, и menuItem который вызывает стандартную форму, в которой будут отображаться анулированные журналы. В этой форме добавим кнопочку восстановить, которая возвращает прежний статус и кнопочку для удаления журнала. И все. Подвоха пока не вижу. Разве что периоически удалять ненужные анулированные журналы.
Старый 17.01.2006, 10:31   #8  
Maxim Gorbunov is offline
Maxim Gorbunov
Administrator
Соотечественники
Лучший по профессии 2009
 
2,483 / 645 (26) +++++++
Регистрация: 27.11.2001
Адрес: Dubai, UAE
В контексте данной задачи разницы нет. Я Вам предложил посмотреть, как работают с Delete Action между заказом и его строчками.
__________________
Not registered yet? Register here!
Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me
Старый 17.01.2006, 10:40   #9  
DreamCreator is offline
DreamCreator
Moderator
Аватар для DreamCreator
Axapta Retail User
 
553 / 45 (3) +++
Регистрация: 04.11.2004
Адрес: Казань
Да, интересно. Спасибо!

При удалении заголовка, в цикле удаляются строки, перед удалением создаются в SalesTableDelete.

PHP код:
    if (SalesParameters::find().cancelSales  == NoYes::Yes)
        
SalesLineDelete::createFromSalesLine(salesLine); 
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
unknown deleteaction kitty DAX: Программирование 1 14.07.2006 20:45
Снова вопрос по DeleteAction Mila DAX: Программирование 13 28.04.2006 21:36
про DeleteAction Хилари DAX: Программирование 1 16.04.2004 09:29

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

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

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