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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 12.02.2007, 17:23   #1  
Jony is offline
Jony
Участник
 
99 / 22 (1) +++
Регистрация: 25.06.2003
Адрес: г. Барнаул
на форме:
в мектоде Инит формы:
public void init()
{
caller = new Erg_changeStorage();// удалите строку эту

super();
caller = this.args().caller();//строку поставте перед супер (на сколько помню - super формы вызывает super ДСов => а к этому времени caller у вас еще ни на что не указывает (т.е. без строки caller = new Erg_changeStorage() у вас форма по идее не должна открываться
}

на ДС формы: (сорри - поправил - смотрел еще в старый проект)
так, торопился,сейчас все переписал :
метод ДС
public void init()
{
super();
// ERG_TableChangeStorage.setTmpData(caller.parmTmpTable(TmpTable)); // не так!
ERG_TableChangeStorage.setTmpData(caller.parmTmpTable()); // вот так надо


}
public void executeQuery()
{
;
ERG_TableChangeStorage_DS.setRecord(ERG_TableChangeStorage); // эта строка тут ненужна, удалите ее (вобщем и весь метод можно удалить)

super();
}

Последний раз редактировалось Jony; 12.02.2007 в 17:31.
Старый 12.02.2007, 17:38   #2  
fialka is offline
fialka
Участник
 
347 / 16 (1) ++
Регистрация: 05.10.2006
Адрес: Екатеринбург
Цитата:
Сообщение от Jony Посмотреть сообщение
на форме:

на ДС формы: (сорри - поправил - смотрел еще в старый проект)
так, торопился,сейчас все переписал :
метод ДС
public void init()
{
super();
// ERG_TableChangeStorage.setTmpData(caller.parmTmpTable(TmpTable)); // не так!
ERG_TableChangeStorage.setTmpData(caller.parmTmpTable()); // вот так надо


}

}
А почему parmTmpTable() , а не parmTmpTable(TmpTable)); ? будет же ошибка, что неправильное кол-во аргументов...

Последний раз редактировалось fialka; 12.02.2007 в 17:39. Причина: не полное сообщение
Старый 12.02.2007, 17:45   #3  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Цитата:
Сообщение от fialka Посмотреть сообщение
А почему parmTmpTable() , а не parmTmpTable(TmpTable)); ? будет же ошибка, что неправильное кол-во аргументов...
мы же хотим считать значение, а не установить.

а ошибки не будет, потому что метод parm... имеет спец. структуру.
X++:
TmpTable parmTmpTable(TmpTable _tmpTable = existingTmpTable)
{
    existingTmpTable = _tmpTable;
    return existingTmpTable;
}
Старый 12.02.2007, 17:58   #4  
fialka is offline
fialka
Участник
 
347 / 16 (1) ++
Регистрация: 05.10.2006
Адрес: Екатеринбург
Цитата:
Сообщение от kashperuk Посмотреть сообщение
мы же хотим считать значение, а не установить.

а ошибки не будет, потому что метод parm... имеет спец. структуру.

X++:
</p><p>TmpTable parmTmpTable(TmpTable _tmpTable = existingTmpTable)</p><p>{</p><p> existingTmpTable = _tmpTable;</p><p> return existingTmpTable;</p><p>}</p><p>

неа, не съел... на синтаксич. ошибку ругается, а я по- моему совсем запуталась
Старый 12.02.2007, 17:50   #5  
DreamCreator is offline
DreamCreator
Moderator
Аватар для DreamCreator
Axapta Retail User
 
553 / 45 (3) +++
Регистрация: 04.11.2004
Адрес: Казань
Цитата:
Сообщение от fialka Посмотреть сообщение
А почему parmTmpTable() , а не parmTmpTable(TmpTable)); ? будет же ошибка, что неправильное кол-во аргументов...
Цитата:
parm<same name as member variable>Runbase way
Special methods used for setting and getting the value of a member variable as a part of an object initialization should be given the same name as the set member variable, prefixed parm, see static new...
This method name can change the method.
Так вот в Вашем случае parm метод работает с целью получить (Get) объект, а не установить (Set) его значение. Объект в данном случае временная таблица.

Пример parm метода:
X++:
public InventJournalTable parmInventJournalTable(InventJournalTable _inventJournalTable = inventJournalTable)
{
    ;
    inventJournalTable = _inventJournalTable;
    return inventJournalTable;
}
Старый 12.02.2007, 17:52   #6  
Jony is offline
Jony
Участник
 
99 / 22 (1) +++
Регистрация: 25.06.2003
Адрес: г. Барнаул
Цитата:
Сообщение от fialka Посмотреть сообщение
А почему parmTmpTable() , а не parmTmpTable(TmpTable)); ? будет же ошибка, что неправильное кол-во аргументов...

по смыслу: нам надо получить указатель(курсор) временной таблицы, т.е. то что нам сделал класс. а у Вас получается, что из формы передаем в класс пустой указатель и им(пустым) затераем то, что в классе, ну и соответственно ворачивает в форму только что переданый из нее же пустой курсор.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
axaptapedia: Filter-by-Grid Blog bot DAX Blogs 2 30.05.2012 13:39
Dynamics AX: DAX 4.0 Filter by Grid [Update] Blog bot DAX Blogs 0 27.04.2007 17:10
Advanced programming: Grid data and view manipulations batiskaf_new DAX: Программирование 15 21.06.2006 11:44
Сохранение настроек GRID (ширина и порядок колонок) liza DAX: Программирование 1 25.07.2003 22:20
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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