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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 30.05.2017, 08:01   #1  
Karlygash is offline
Karlygash
Участник
 
51 / 12 (1) ++
Регистрация: 13.03.2017
Map
Здравствуйте. Можете помочь?!
Есть временная таблица Ledgerbalances. В эту временную таблицу входит таблицы LedgerTrans и LedgerBalancesDimTrans. И она их определяет через Map. Например: LedgerBalances = <recid =0, map = LedgerBalancesDimTrans>.
Мне нужно условия, когда в Ledgerbalances будет таблица LedgerBalancesDimTrans то необходимо заполнить одно поле.
Старый 30.05.2017, 08:08   #2  
demianimp is offline
demianimp
Участник
 
202 / 104 (4) +++++
Регистрация: 10.10.2013
Цитата:
Сообщение от Karlygash Посмотреть сообщение
Здравствуйте. Можете помочь?!
Есть временная таблица Ledgerbalances. В эту временную таблицу входит таблицы LedgerTrans и LedgerBalancesDimTrans. И она их определяет через Map. Например: LedgerBalances = <recid =0, map = LedgerBalancesDimTrans>.
Мне нужно условия, когда в Ledgerbalances будет таблица LedgerBalancesDimTrans то необходимо заполнить одно поле.
Есть Map с Fields1, Fields2, Fields3.
Есть Table1 и Table2, с полями Fields11, Fields12 и Fields21, Fields22 соответственно.
Тебе нужно чтобы в Map было Fields11 = Fields1 и Fields12 = Fields2 для Table1 и Fields21 = Fields1 для Table2 ?
Старый 30.05.2017, 18:55   #3  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,651 / 1158 (42) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
X++:
if (Ledgerbalances.TableId == tablenum(LedgerBalancesDimTrans))
{
    // Заполнить одно поле
}
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...
За это сообщение автора поблагодарили: S.Kuskov (2).
Старый 31.05.2017, 06:29   #4  
Karlygash is offline
Karlygash
Участник
 
51 / 12 (1) ++
Регистрация: 13.03.2017
Цитата:
Сообщение от demianimp Посмотреть сообщение
Есть Map с Fields1, Fields2, Fields3.
Есть Table1 и Table2, с полями Fields11, Fields12 и Fields21, Fields22 соответственно.
Тебе нужно чтобы в Map было Fields11 = Fields1 и Fields12 = Fields2 для Table1 и Fields21 = Fields1 для Table2 ?
Спасибо))) теперь буду знать
Старый 31.05.2017, 06:31   #5  
Karlygash is offline
Karlygash
Участник
 
51 / 12 (1) ++
Регистрация: 13.03.2017
Цитата:
Сообщение от Владимир Максимов Посмотреть сообщение
X++:
if (Ledgerbalances.TableId == tablenum(LedgerBalancesDimTrans))
{
    // Заполнить одно поле
}
Спасибо, получилась
Старый 31.05.2017, 07:42   #6  
Karlygash is offline
Karlygash
Участник
 
51 / 12 (1) ++
Регистрация: 13.03.2017
Цитата:
Сообщение от Karlygash Посмотреть сообщение
Спасибо, получилась
И ещё вопрос. Если необходимо заполнить поле то:
X++:
if (Ledgerbalances.TableId == tablenum(LedgerBalancesDimTrans))
{
    LedgerBalances.DebitMSTTest =+ amountDebitMST; 
}
так будет да?
Старый 31.05.2017, 07:46   #7  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,427 / 1771 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
правильно пишется += а не =+
Старый 31.05.2017, 08:01   #8  
Pandasama is offline
Pandasama
Участник
 
448 / 133 (5) +++++
Регистрация: 11.08.2014
Адрес: Барнаул
+= - добавит к текущему значению LedgerBalances.DebitMSTTest значение amountDebitMST
= - заменит текущее значение LedgerBalances.DebitMSTTest на значение amountDebitMST
Старый 31.05.2017, 08:11   #9  
Karlygash is offline
Karlygash
Участник
 
51 / 12 (1) ++
Регистрация: 13.03.2017
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
правильно пишется += а не =+
не заметила, += - да, я так и написала в коде
Старый 31.05.2017, 08:13   #10  
Karlygash is offline
Karlygash
Участник
 
51 / 12 (1) ++
Регистрация: 13.03.2017
Цитата:
Сообщение от Karlygash Посмотреть сообщение
И ещё вопрос. Если необходимо заполнить поле то:
X++:
if (Ledgerbalances.TableId == tablenum(LedgerBalancesDimTrans))
{
    LedgerBalances.DebitMSTTest += amountDebitMST; 
}
так будет да?
я так и написала, но когда компилирую, выводит ошибку "Таблица не содержит это поле"
Старый 31.05.2017, 09:08   #11  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,273 / 3466 (122) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
X++:
public void myMethod(LedgerBalances _ledgerBalances, AmountMST _amountDebitMST)
{
    LedgerBalancesDimTrans ledgerBalancesDimTrans;
;
    if (_ledgerbalances.TableId == tablenum(LedgerBalancesDimTrans))
    {
        ledgerBalancesDimTrans = _ledgerBalances;
        ledgerBalancesDimTrans.DebitMSTTest += _amountDebitMST; // Поле amountDebitMST должно существовать в таблице LedgerBalancesDimTrans 
    }
}
__________________
Возможно сделать все. Вопрос времени

Последний раз редактировалось sukhanchik; 31.05.2017 в 09:11.
Старый 31.05.2017, 09:38   #12  
Karlygash is offline
Karlygash
Участник
 
51 / 12 (1) ++
Регистрация: 13.03.2017
Цитата:
Сообщение от sukhanchik Посмотреть сообщение
X++:
public void myMethod(LedgerBalances _ledgerBalances, AmountMST _amountDebitMST)
{
    LedgerBalancesDimTrans ledgerBalancesDimTrans;
;
    if (_ledgerbalances.TableId == tablenum(LedgerBalancesDimTrans))
    {
        ledgerBalancesDimTrans = _ledgerBalances;
        ledgerBalancesDimTrans.DebitMSTTest += _amountDebitMST; // Поле amountDebitMST должно существовать в таблице LedgerBalancesDimTrans 
    }
}
В таблице LedgerBalancesDimTrans существует поле DebitMSTTest. Но не amountDebitMST.
amountDebitMST- это переменная.
За это сообщение автора поблагодарили: sukhanchik (2).
Старый 31.05.2017, 10:53   #13  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,273 / 3466 (122) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Да, спасибо за замечание - я опечатался
__________________
Возможно сделать все. Вопрос времени
Старый 31.05.2017, 14:04   #14  
Karlygash is offline
Karlygash
Участник
 
51 / 12 (1) ++
Регистрация: 13.03.2017
Цитата:
Сообщение от sukhanchik Посмотреть сообщение
Да, спасибо за замечание - я опечатался
Это вам спасибо)))
Старый 31.05.2017, 14:07   #15  
Karlygash is offline
Karlygash
Участник
 
51 / 12 (1) ++
Регистрация: 13.03.2017
Еще вопрос теперь еще одно ledgerBalancesLocal временаая таблица, берет данные из временной таблицы ledgerBalances. A тут как правильно написать?
X++:
 if (ledgerbalancesLocal.TableId == tablenum(LedgerBalancesDimTrans))
  {
   ledgerBalancesDimTrans = ledgerBalancesLocal;
   ledgerBalancesDimTrans.DebitMSTTest   +=  ledgerBalances.DebitMSTTest;
Выводит ошибку. Таблица не содержит это поле.
Старый 31.05.2017, 14:26   #16  
Dumfag is offline
Dumfag
Участник
 
8 / 10 (1) +
Регистрация: 20.03.2015
Во временной таблице ledgerBalances.DebitMSTTest есть такое поле?
Старый 31.05.2017, 14:41   #17  
Karlygash is offline
Karlygash
Участник
 
51 / 12 (1) ++
Регистрация: 13.03.2017
Цитата:
Сообщение от Dumfag Посмотреть сообщение
Во временной таблице ledgerBalances.DebitMSTTest есть такое поле?
там нету такое поле. Но в таблице LedgerBalancesDimTrans, которое входит в ledgerBalances такое поле существует.
Старый 31.05.2017, 14:42   #18  
Karlygash is offline
Karlygash
Участник
 
51 / 12 (1) ++
Регистрация: 13.03.2017
Цитата:
Сообщение от Dumfag Посмотреть сообщение
Во временной таблице ledgerBalances.DebitMSTTest есть такое поле?
И в данный момент заполнен
Старый 31.05.2017, 19:26   #19  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,651 / 1158 (42) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Цитата:
Сообщение от Karlygash Посмотреть сообщение
там нету такое поле. Но в таблице LedgerBalancesDimTrans, которое входит в ledgerBalances такое поле существует.
А что же Вы тогда прибавляете-то? Откуда Вы взяли синтаксис для правой части присвоения?

ledgerBalancesDimTrans.DebitMSTTest += ledgerBalances.DebitMSTTest;

У Вас же, вроде, дополнительная сумма в переменной содержалась? Вот эту переменную в правой части присвоения и указывайте

ledgerBalancesDimTrans.DebitMSTTest += _amountDebitMST;

-----------------

ledgerBalances - это НЕ временная таблица. Это объект MAP, который можно сравнить с неким "трафаретом" (лист с дырками) через который Вы смотрите на ту или иную таблицу. Если "дырки" напротив поля нет, то и значение этого поля увидеть невозможно

Если, тем не менее, нужно обратится к этому "невидимому" полю таблицы, то просто отбрасываете "трафарет" (Map) в сторону и начинаете работать напрямую с нужной таблицей

Так что, либо "вырезайте" дополнительные "дырки" (дополнительные поля в Map), либо работайте напрямую с таблицей. А пытаться рассмотреть что-то через плотный лист бумаги все-равно невозможно
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...
Старый 01.06.2017, 06:04   #20  
Karlygash is offline
Karlygash
Участник
 
51 / 12 (1) ++
Регистрация: 13.03.2017
Цитата:
Сообщение от Владимир Максимов Посмотреть сообщение
А что же Вы тогда прибавляете-то? Откуда Вы взяли синтаксис для правой части присвоения?

ledgerBalancesDimTrans.DebitMSTTest += ledgerBalances.DebitMSTTest;

У Вас же, вроде, дополнительная сумма в переменной содержалась? Вот эту переменную в правой части присвоения и указывайте

ledgerBalancesDimTrans.DebitMSTTest += _amountDebitMST;

-----------------

ledgerBalances - это НЕ временная таблица. Это объект MAP, который можно сравнить с неким "трафаретом" (лист с дырками) через который Вы смотрите на ту или иную таблицу. Если "дырки" напротив поля нет, то и значение этого поля увидеть невозможно

Если, тем не менее, нужно обратится к этому "невидимому" полю таблицы, то просто отбрасываете "трафарет" (Map) в сторону и начинаете работать напрямую с нужной таблицей

Так что, либо "вырезайте" дополнительные "дырки" (дополнительные поля в Map), либо работайте напрямую с таблицей. А пытаться рассмотреть что-то через плотный лист бумаги все-равно невозможно
Спасибо, вы мне очень помогли.Посто я DAX недавно начала программировать.
Тоже думала может стоит "вырезать" (дополнительные поля в Map), но незнаю как. Поэтому наверное буду работать напрямую с таблицей
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Классы коллекций (инициализация, сериализация): List, Set, Map. petergunn DAX: База знаний и проекты 10 04.06.2018 18:45
Не корректная сортировка в Map-e и Set-е. AX2009 RU5 Pustik DAX: Программирование 12 03.05.2016 21:28
emeadaxsupport: Map the Full Product name from Dynamics AX for the CRM Connector Blog bot DAX Blogs 0 22.02.2015 14:11
Хранение массива в Map McArrow DAX: Программирование 7 11.10.2012 13:05
Dynamics AX: Map Object Sorting - a real issue Blog bot DAX Blogs 7 15.10.2008 12:02
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 07:45.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.