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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 01.08.2005, 15:57   #1  
sev is offline
sev
Участник
 
151 / 8 (1) +
Регистрация: 01.08.2005
передача массива
подскажите, пожалуйста, как передать заполненный массив из класса в метод датасурса формы? Заранее спасибо.
Старый 01.08.2005, 16:23   #2  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
Форма вызывается из этого класса? Тогда передать в форму ссылку на экземпляр класса, а в классе реализовать метод, возвращающий этот заполненный массив.
В общем, одно из практических следствий ООП - мы не передаем кучу параметров, мы передаем сущность(объект), у которой впоследствии можем спросить все что нам надо.
Старый 01.08.2005, 17:02   #3  
sev is offline
sev
Участник
 
151 / 8 (1) +
Регистрация: 01.08.2005
нет, форма вызывается не из класса, а просто открывается. Наоборот, при открытии формы вызывается метод класса, который заполняет массив, а потом при проведении действий на форме срабатывает метод, в который и надо передать этот массив
Старый 01.08.2005, 17:05   #4  
Tays is offline
Tays
Участник
 
165 / 17 (1) ++
Регистрация: 18.07.2003
ну так тоже самое.. есть экземпляр класса... в нем написать метод, который возврящает объект типа массив...
Старый 01.08.2005, 17:14   #5  
sev is offline
sev
Участник
 
151 / 8 (1) +
Регистрация: 01.08.2005
какого типа должен быть метод ( в смысле -тип возвращаемого результата)
Старый 01.08.2005, 17:15   #6  
sev is offline
sev
Участник
 
151 / 8 (1) +
Регистрация: 01.08.2005
вернее, как правильно написать -int[ ] method или как?
Старый 01.08.2005, 17:23   #7  
Tays is offline
Tays
Участник
 
165 / 17 (1) ++
Регистрация: 18.07.2003
тип возвращаемого объекта, должем быть таким же как и тип принимаемого))

может повторюсь, но "В общем, одно из практических следствий ООП " и нетолько
Старый 01.08.2005, 17:29   #8  
sev is offline
sev
Участник
 
151 / 8 (1) +
Регистрация: 01.08.2005
принимаем мы массив. Например int ItemId[ ]. Тип возвращаемого значения соотвтественно -массив. Если написать int[ ] method , то выдает ошибку, как правильно написать в методе тип возвращаемого результата? Может быть, расширенный какой-нибудь тип создать?
Старый 01.08.2005, 17:30   #9  
BVN is offline
BVN
Участник
 
88 / 13 (1) ++
Регистрация: 07.04.2005
Адрес: г. Королёв МО
Ну напиши например как внаписано в классе winapi
PHP код:
client static container chooseFont(int _hwndSysFontType _fonttype SysFontType::ScreenFontfontName _fontName ''int _fontsize 8
Примеров - в AOT - море.
Старый 01.08.2005, 17:36   #10  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Если посмотреть в грамматику X++, то видно, то
метод/функция не может возвращать массив. Впрочем, принимать массив как параметр тоже не может.
Но если тип является массивом, то можно.

Лучше посмотрите на класс array или на контейнер.
__________________
полезное на axForum, github, vk, coub.
Старый 01.08.2005, 17:38   #11  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Изначально опубликовано sev
Например int ItemId[ ].
Дело в следующем.
В Аксапте ввели примитивный тип контейнер и переопределили (overload) квадратные скобки.
В Аксапте конструкция [x,y,z] означает не массив, а контейнер.
Что здорово сбивает с толку поначалу.
__________________
полезное на axForum, github, vk, coub.
Старый 01.08.2005, 17:47   #12  
sev is offline
sev
Участник
 
151 / 8 (1) +
Регистрация: 01.08.2005
вот! Я об этом же. Спасибо, что поняли меня ).
Старый 01.08.2005, 18:01   #13  
sev is offline
sev
Участник
 
151 / 8 (1) +
Регистрация: 01.08.2005
только все равно не понятно до конца, как это всё оформить...(
Старый 01.08.2005, 18:06   #14  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,479 / 1250 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
Что именно надо передать?

Используй класс Array. Если таблица - юзай RecordSortedList.

С Уважением,
Георгий.
Старый 01.08.2005, 18:12   #15  
Tays is offline
Tays
Участник
 
165 / 17 (1) ++
Регистрация: 18.07.2003
ну или так


container getContainer ()
{
container c; //можно заполнить в другом месте))
c=[Id1,Id2...Idn];

return c;
}
Старый 01.08.2005, 18:14   #16  
Tays is offline
Tays
Участник
 
165 / 17 (1) ++
Регистрация: 18.07.2003
Но в случае с container нада обрать на строгость порядка элементов в контенере для корректного примема данных из него..
Старый 01.08.2005, 18:33   #17  
sev is offline
sev
Участник
 
151 / 8 (1) +
Регистрация: 01.08.2005
при этом Id1, Id2, ID3 - могут быть int ? Ругается на несовместимость типов
Старый 01.08.2005, 19:17   #18  
Tays is offline
Tays
Участник
 
165 / 17 (1) ++
Регистрация: 18.07.2003
Цитата:
Изначально опубликовано sev
при этом Id1, Id2, ID3 - могут быть int ? Ругается на несовместимость типов
даже хоть риал..
что вы именно пишете?
Старый 01.08.2005, 19:33   #19  
Tays is offline
Tays
Участник
 
165 / 17 (1) ++
Регистрация: 18.07.2003
Цитата:
Изначально опубликовано sev
при этом Id1, Id2, ID3 - могут быть int ? Ругается на несовместимость типов
в контейнер можно записывать одновременно данные разных типов
например, с = [3.25, Руб, КТ000017]. главное, когда вы принимаете из контейнера данные... чтобы переменные совпадали с типом данных соответствующих значений
real price = 3.25,
CurrencyCode сurrencyCode = "руб"
Voucher voucher = "КТ000017"
Старый 02.08.2005, 10:07   #20  
DreamCreator is offline
DreamCreator
Moderator
Аватар для DreamCreator
Axapta Retail User
 
553 / 45 (3) +++
Регистрация: 04.11.2004
Адрес: Казань
К сведению, может map поможет.
Думаю, что можно рассматривать решение с map как вариант

PHP код:
server static void updateCountry()
{
    
QueryText   sSql;
    
Connection  conn = new Connection();
    
Statement   stmt conn.createStatement();
    
Map         map = new map(Types::String,Types::String);
    
MapIterator mapIterator;
    
DictEnum    dictEnum;
    
int         i;
    
QueryText   queryText;
    ;

    
map.insert('Белорусия','Белорусcия');
    
map.insert('коре','Корея');
    
map.insert('Корея(респуб)','Корея');

    
mapIterator = new mapIterator(map);

    
dictEnum = new DictEnum(enumnum(KindOfTable));
    while(
mapIterator.more())
    {
        for(
0dictEnum.values(); i++)
        {
            
queryText CountryManager::getQueryTextForUpdate(
                
dictEnum.index2Value(i),mapIterator.value(),mapIterator.key());
            
stmt.executeUpdate(queryText);
        }
        
mapIterator.next();
    }

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Передача массива в .Net monk DAX: Программирование 1 02.09.2008 13:55
Передача массива как параметра DreamCreator DAX: Программирование 1 26.01.2005 16:58
Передача массива в метод COM-объекта Вадим DAX: Программирование 6 24.01.2005 12:31
Безвозмездная передача собственности Sea DAX: Функционал 10 23.07.2004 15:05
Передача массива VARIANTов в Automation метод Maximin DAX: Программирование 0 09.10.2002 19:31
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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