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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 10.06.2008, 14:34   #1  
Eldar9x is offline
Eldar9x
MCTS
Аватар для Eldar9x
Oracle
MCBMSS
 
1,064 / 166 (8) ++++++
Регистрация: 29.09.2006
Адрес: Казань
Поле SalesId из SalesLine
Привет всем. Возник следующий вопрос. Есть новая таблица. В ней должно быть поле, указывающее на строку заказу SalesLine. Создал поле RefRecId ccылающееся на строку заказа. Теперь каким образом сделать так, чтобы на новой форме, было поле Заказ на продажу, в котором бы отображалось значение SalesId, найденное по RefRecId моей таблицы, и была возможность модифицировать это поле, а при модификации прописывалось бы новое значение RefRecId?
Старый 10.06.2008, 14:42   #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
А каким образом при указании нового номера заказа система должна определить строку заказа, на которую она пропишет ссылку?

И правильнее было бы ссылку на строку заказа делать по полю Номер лота. Так... для единообразия. Он именно для этого и задуман был. Более того, уже существующие связи в системе по нему прописаны.

Технически "в лоб" задача решается edit-методом. Но с учетом описанного выше.
__________________
С уважением,
glibs®
Старый 10.06.2008, 14:52   #3  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
А что должно происходить если в заказе несколько строк?Какую из SalesLine для данного salesID надо выбрать?
Старый 10.06.2008, 14:56   #4  
Eldar9x is offline
Eldar9x
MCTS
Аватар для Eldar9x
Oracle
MCBMSS
 
1,064 / 166 (8) ++++++
Регистрация: 29.09.2006
Адрес: Казань
Хорошо. Создаем поле SmmWorks.InventTransId. Делаем в Works релейшен на SaleLine по этому полю. А дальше то как? Если создать на SmmWorks_DS метод:
X++:
//BP Deviation documented
edit SalesId editSalesId(
    boolean         _set,
    SmmWorks   _smmWorks,
    SalesId         _salesId
    )
{
    ;
    if (_set)
    {
        // здесь надо бы как-то установить SmmWorks.InventTransId    =  ...;  - как?

    }

    return SalesLine::findInventTransId(_smmWorks.InventTransId).SalesId;
}
Старый 10.06.2008, 14:57   #5  
Eldar9x is offline
Eldar9x
MCTS
Аватар для Eldar9x
Oracle
MCBMSS
 
1,064 / 166 (8) ++++++
Регистрация: 29.09.2006
Адрес: Казань
Цитата:
А что должно происходить если в заказе несколько строк?
так вот для этого и создавал RefRecId. Теперь вместо него InventTransId.
Цитата:
Какую из SalesLine для данного salesID надо выбрать?
Собственно, в этом основная проблема и заключается. В edit методе тоже не ясно как быть...
Старый 10.06.2008, 14:57   #6  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
либо надо выбирать и лот тоже. Либо надо эти поля не редактировать а просто вызывать форму из SalesTable (добавить в нижней части кнопочку) а там поле само заполнится по relation
Старый 10.06.2008, 15:00   #7  
oip is offline
oip
Axapta
Лучший по профессии 2014
 
2,564 / 1416 (53) ++++++++
Регистрация: 28.11.2005
Записей в блоге: 1
Цитата:
Сообщение от Eldar9x Посмотреть сообщение
Собственно, в этом основная проблема и заключается.
Это вы у нас спрашиваете, какая SalesLine вам исходя из вашей бизнес-логики нужна?
Старый 10.06.2008, 15:00   #8  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Посмотрите как редактируются другие вещи, связанные с SalesLine - например то, что по кнопке \Forms\SalesTable\Designs\Design\[Group:Line]\[ButtonGroup:ButtonLine]\[MenuButton:ButtonLineSetup]\MenuItemButton:ButtonMarkupTransLine (Настройка\Накл. расходы в нижней части)
Старый 10.06.2008, 15:04   #9  
Eldar9x is offline
Eldar9x
MCTS
Аватар для Eldar9x
Oracle
MCBMSS
 
1,064 / 166 (8) ++++++
Регистрация: 29.09.2006
Адрес: Казань
Цитата:
Это вы у нас спрашиваете, какая SalesLine вам исходя из вашей бизнес-логики нужна?
нужна та, которая будет выбрана в лукапе. Плюс ко всему поле дожно быть в гриде и без создания дополнительных кнопок.
Может лукап как-то переделать - передавать туда, текущую строку, потом возвращать SalesLine. Но это уже как-то совсемкоряво выходит. Должно же быть стандартное решение...
Старый 10.06.2008, 15:07   #10  
oip is offline
oip
Axapta
Лучший по профессии 2014
 
2,564 / 1416 (53) ++++++++
Регистрация: 28.11.2005
Записей в блоге: 1
Э... Так вы в лукапе выбираете что? Строку заказа или заказ (salesId)? Ничего не понимаю.
Старый 10.06.2008, 15:09   #11  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
можно сделать вспомогательное поле на форме: SalesID и сначала выбирать его, а потом SalesLine, только те, которые входят в выбранный salesTable.
Старый 10.06.2008, 15:09   #12  
Eldar9x is offline
Eldar9x
MCTS
Аватар для Eldar9x
Oracle
MCBMSS
 
1,064 / 166 (8) ++++++
Регистрация: 29.09.2006
Адрес: Казань
выбираю строку заказа, конечно. Если бы там SalesTable был, проблем бы не было...
Старый 10.06.2008, 15:11   #13  
Eldar9x is offline
Eldar9x
MCTS
Аватар для Eldar9x
Oracle
MCBMSS
 
1,064 / 166 (8) ++++++
Регистрация: 29.09.2006
Адрес: Казань
Цитата:
можно сделать вспомогательное поле на форме
как тоже не очень красиво, два поля на одной таблице...
Старый 10.06.2008, 15:17   #14  
oip is offline
oip
Axapta
Лучший по профессии 2014
 
2,564 / 1416 (53) ++++++++
Регистрация: 28.11.2005
Записей в блоге: 1
Цитата:
Сообщение от Eldar9x Посмотреть сообщение
выбираю строку заказа, конечно.
Тогда при чем тут модифицировать поле SalesId? может вы все же задачу опишите, а не ваш метод решения? или я тут один не понимаю о чем речь. Вам надо выбирать строки, сохранять в таблице ссылку на строку, но отображать просто SalesId?
Как правильно задать вопрос, что бы быть услышанным?
Старый 10.06.2008, 15:17   #15  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
либо два поля либо своя лукап форма либо без лукапа а
Старый 10.06.2008, 15:23   #16  
Eldar9x is offline
Eldar9x
MCTS
Аватар для Eldar9x
Oracle
MCBMSS
 
1,064 / 166 (8) ++++++
Регистрация: 29.09.2006
Адрес: Казань
Хорошо. Задача:
есть новая таблица SmmWorks. К каждой строке этой таблицы по полю RefRecId (InventTransId, оказывается, не пойдет, так как не уникально) привязывается строка заказа (SalesLine).
Нужно на форме отображать ОДНО поле в выпадающем списке, которого будут строки SalesLine. Отображаться будет SalesId
X++:
 SalesLine::findRecId(smmWorks.RefRecId).SalesId
После выбора в лукап-форме новой SalesLine в SmmWorks.RefRecId прописывается SalesLine.RecId.
Старый 10.06.2008, 15:27   #17  
oip is offline
oip
Axapta
Лучший по профессии 2014
 
2,564 / 1416 (53) ++++++++
Регистрация: 28.11.2005
Записей в блоге: 1
Цитата:
Сообщение от Eldar9x Посмотреть сообщение
InventTransId, оказывается, не пойдет, так как не уникально
Там даже индекс по нему уникальный есть...
Старый 10.06.2008, 15:28   #18  
Eldar9x is offline
Eldar9x
MCTS
Аватар для Eldar9x
Oracle
MCBMSS
 
1,064 / 166 (8) ++++++
Регистрация: 29.09.2006
Адрес: Казань
Цитата:
Там даже индекс по нему уникальный есть...
о, тогда прошу прощения, консультанты гонят
Старый 10.06.2008, 15:28   #19  
miklenew is offline
miklenew
Участник
Аватар для miklenew
MCBMSS
1C
Лучший по профессии 2009
 
1,688 / 433 (18) +++++++
Регистрация: 10.07.2006
Адрес: г. Ликино-Дулёво
Лучше посмотрите внимательно на таблицу InventTrans.
В ней есть всё и лот и к какому типу документа относится лот и номер самого документа.
В лукапе у вас как раз отображается эта таблица.
Так что если edit метод делать так в InventTrans файндить.
А вообще я бы не стал это делать лучше бы поле сделал, а в лукапе достал бы целиком строку(InventTrans), а из неё код документа.
Что-то типа вот этой конструкции. Свои формы и таблицы поставите.
X++:
public void lookup(FormControl _formControl, str _filterStr)
{
    InventSum   inventSum;
    FormRun     fr;
    Args        args;
;
    args = new Args(formStr(InventSumForSerial));
    args.caller(this);
    fr = new FormRun(args);
    fr.init();
    this.performFormLookup(fr, _formControl);
    fr.wait();

    inventSum                      = fr.dataSource(1).cursor();
}
За это сообщение автора поблагодарили: Eldar9x (1).
Старый 10.06.2008, 15:58   #20  
Eldar9x is offline
Eldar9x
MCTS
Аватар для Eldar9x
Oracle
MCBMSS
 
1,064 / 166 (8) ++++++
Регистрация: 29.09.2006
Адрес: Казань
miklenew, вполне подходит. Создал новую форму в которой SalesLine. В lookup отображаю ее. Всем большое спасибо!
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Добавление новых строк в SalesLine Qaz Qwerty DAX: База знаний и проекты 6 04.02.2009 17:23
сопоставление оплат клиента, переносов сальдо-поле накладная в общем журнале? Aquarius DAX: Функционал 3 28.01.2009 12:51
Поле "Оплатить до" в строке общего журнала longson DAX: Функционал 7 29.03.2008 14:38
SalesLine.initFromSalesTable() - кроме журналов, никогда корректно не отрабатывает? gl00mie DAX: Программирование 2 23.01.2008 11:48
SalesIdBase & SalesId mit DAX: Программирование 5 16.11.2005 13:22

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

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

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