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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 23.02.2020, 17:32   #1  
oleggy is offline
oleggy
Участник
 
38 / 13 (1) ++
Регистрация: 03.12.2019
DAX2009: динамическое изменение св-ва label у StringEdit
Привет. Подскажите как реализовать.
Кратко:
Есть форма и таблица, которая связанна с данной формой через DataSources.
На форме на вкладке Основное присутствует Grid представляющий данную таблицу.
На вкладке Разное присутствует StringEdit который отображает содержимое поля 1 выбранной записи на Grid.

Что хочу:
В зависимости от выбранной записи Grid менялось ЕЩЕ значение Label у StringEdit (во вкладке Разное).
Значение Label берется из соответствующего поля 2 таблицы из DataSources.

Как я думаю реализовать:
Я так понял надо в классе формы создать табличную переменную данной таблицы.
А потом переопределить метод pageActivated для вкладки Разное. И в данном методе через метод find данной таблицы находить выбранную запись (которая была выбрана на Grid).
Вопрос только как найти значение RecId запись который пользователь выбрал на Grid?

Или можно как то проще реализовать? Подскажите.

Последний раз редактировалось oleggy; 23.02.2020 в 19:12.
Старый 23.02.2020, 19:29   #2  
Pandasama is offline
Pandasama
Участник
 
199 / 57 (2) ++++
Регистрация: 11.08.2014
Адрес: Барнаул
текущая выбранная запись уже доступна в переменной курсора с названием, соответствующим названием Data source на форме - искать её отдельно через find вам не надо
привязываться вам надо, на мой взгляд, не к pageActivated, а к active датасорса - то есть к смене выбранной записи (т.к. именно при этом судя по описанной задаче надо менять label у контрола)
За это сообщение автора поблагодарили: S.Kuskov (2).
Старый 23.02.2020, 20:30   #3  
oleggy is offline
oleggy
Участник
 
38 / 13 (1) ++
Регистрация: 03.12.2019
Спасибо.
Допустим имя таблицы из DataSources - "MyTable", имя формы - "MyForm", имя StringEdit на этой форме - "MyTable_Field".
Не совсем понял как правильно реализовать дальше:
X++:
public int active()
{
    int ret;

    ret = super();

    MyForm::find().MyTable_Field.Label = MyTable; // выдает ошибку 'Для функции было указано неверное число аргументов'

    return ret;
}
Я что-то упустил.

Последний раз редактировалось oleggy; 23.02.2020 в 20:51.
Старый 23.02.2020, 21:21   #4  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,216 / 1593 (60) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Вы же сами пишете, что менять нужно свойство Label у элемента управления StringEdit, а в примере делаете что-то совершенно другое.
Чтобы из кода получить доступ к элементу управления, нужно в дизайнере включить у этого StringEdit свойство AutoDeclaration. Тогда нужный код будет выглядеть как-то так:
X++:
public int active()
{
    int ret;

    ret = super();

    StringEdit.Label(MyTable.Field2);

    return ret;
}
Старый 24.02.2020, 16:03   #5  
oleggy is offline
oleggy
Участник
 
38 / 13 (1) ++
Регистрация: 03.12.2019
Спасибо за советы. Все сработало.
Дополнительный вопрос еще в продолжении данной темы:

В таблице MyTable (из DataSources) есть поле Field3.
Вопрос как мне из кода прочитать данные из Label у поля Field3 таблицы MyTable?
(просто понадобилось описание поля для красивого оформления отчета в Report)
Старый 24.02.2020, 17:07   #6  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,216 / 1593 (60) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
SysDictField вам в помощь
Старый 24.02.2020, 17:10   #7  
SuperStar88 is offline
SuperStar88
Участник
 
66 / 10 (1) +
Регистрация: 11.08.2017
Цитата:
Сообщение от oleggy Посмотреть сообщение
Спасибо за советы. Все сработало.
Дополнительный вопрос еще в продолжении данной темы:

В таблице MyTable (из DataSources) есть поле Field3.
Вопрос как мне из кода прочитать данные из Label у поля Field3 таблицы MyTable?
(просто понадобилось описание поля для красивого оформления отчета в Report)
X++:
    DictTable dt;
    DictField df;
    ;
    dt = new DictTable(tableNum(MyTable));
    df = new DictField(dt.id(), dt.fieldCnt2Id(3));
    df.label();
Старый 24.02.2020, 18:43   #8  
oleggy is offline
oleggy
Участник
 
38 / 13 (1) ++
Регистрация: 03.12.2019
...

Последний раз редактировалось oleggy; 24.02.2020 в 20:02.
Старый 25.02.2020, 12:35   #9  
ice is offline
ice
Участник
Аватар для ice
Лучший по профессии 2014
 
1,445 / 330 (14) ++++++
Регистрация: 23.03.2006
fieldpname(MyTable , Field3)
За это сообщение автора поблагодарили: S.Kuskov (5), SuperStar88 (1).
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Динамическое изменение контролов Group на форме Bohdan DAX: Программирование 3 15.09.2015 08:07
emeadaxsupport: How label flushing works under the hood Blog bot DAX Blogs 0 17.08.2010 16:05
Динамическое изменение query для отчета Peppi DAX: Программирование 1 25.11.2008 06:59
Динамическое Изменение ExtendedDataType Jolly DAX: Программирование 2 06.08.2007 17:29
Изменение Label поля группы neys DAX: Программирование 2 24.03.2006 09:24
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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