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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 19.08.2021, 13:59   #1  
SRF is offline
SRF
Участник
MCBMSS
Axapta Retail User
 
376 / 562 (19) +++++++
Регистрация: 08.08.2007
Записей в блоге: 1
Например, можно так, модификация метода task формы SysTableBrowser, делаем контрол перед вставкой многострочным, а затем возвращаем обратно.

X++:
    FormStringControl   stringControl;
    Common              cursor;
    str                 value;
....

    else if (p1 == 772)
    {
        if (cur is FormStringControl)
        {
            this.lock();
            
            stringControl = cur;
            stringControl.multiLine(true);
            
            ret = super(p1);
            
            value = stringControl.text();
            stringControl.multiLine(false);
            
            cursor = ds_Ds.cursor();
            cursor.(stringControl.dataField()) = value;
            
            stringControl.update();
            
            this.unLock();
        }
        else
        {
            ret = super(p1);
        }
    }
В целом альтернатива - многострочный контрол, если задача не частая, можно использовать функционал - Поля списком, это не коробка, поищите по форуму, а может быть он у вас уже есть в приложении, там суть в том, что значение изменяется через кнопку, которая и показывает контрол со всеми св-вами.

Цитата:
браузер таблиц - это грид.
грид по умолчанию показывает DisplayHeight = 1.
Это не совсем так, грид по умолчанию показывает скорее всего maximum из всех displayheight контролов в него входящих(я не проверял, но кажется что норм), т.к. если вы просто поместите на грид в обычной форме контрол с displayHeight скажем 2 строки, то грид будет двустрочным, просто для браузера табличек это отключается, посмотрите код в классе SysTableBrowser\addField

X++:
            if (dictField.baseType() == Types::String ||
                dictField.baseType() == Types::RString ||
                dictField.baseType() == Types::VarString)
            {
                formBuildStringControl = formBuildGridControl.addDataField(formBuildDataSource.id(), fieldId, j);
                formBuildStringControl.displayHeightMode(0);
                formBuildStringControl.displayHeightValue(1);
                formBuildStringControl.label(dictField.name());
                formBuildStringControl.helpText(dictField.label());
                formBuildStringControl.allowEdit(allowControlEdit);
            }
__________________
Sergey Nefedov

Последний раз редактировалось SRF; 19.08.2021 в 14:02.
За это сообщение автора поблагодарили: mazzy (2), alex55 (1).
Старый 19.08.2021, 14:22   #2  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от SRF Посмотреть сообщение
В целом альтернатива - многострочный контрол
угу.

Цитата:
Сообщение от SRF Посмотреть сообщение
Это не совсем так, грид по умолчанию показывает скорее всего maximum из всех displayheight контролов в него входящих(я не проверял, но кажется что норм), т.к.
угу. снова возвращаемся к displayheight = 1/Auto у контрола и содержащего его контрола.

Цитата:
Сообщение от SRF Посмотреть сообщение
просто для браузера табличек это отключается, посмотрите код в классе SysTableBrowser\addField
угу.
хоть в вопросе и написан "обозреватель таблиц", но я сильно сомневаюсь, что автору нужно сделать именно в обозревателе.

впрочем, каков вопрос, таков и ответ. согласен.
__________________
полезное на axForum, github, vk, coub.
Старый 23.08.2021, 07:08   #3  
oleggy is offline
oleggy
Участник
 
282 / 36 (2) +++
Регистрация: 03.12.2019
Адрес: Россия
Выходит через обозреватель никак.
Данные правки делаются не часто соответственно проще сделать вне аксапты. Да, делаются IT специалистом не пользователем.
Через тот же SQL можно сделать.

Последний раз редактировалось oleggy; 23.08.2021 в 07:10.
Старый 23.08.2021, 09:51   #4  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,712 / 1201 (44) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Цитата:
Сообщение от oleggy Посмотреть сообщение
Выходит через обозреватель никак.
Данные правки делаются не часто соответственно проще сделать вне аксапты. Да, делаются IT специалистом не пользователем.
Через тот же SQL можно сделать.
Для таких случаев делают джобы в Axapta.
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
В дебагере не виден символ переноса строки Atani DAX: Программирование 0 14.03.2006 14:18
Строки журнала другого типа DreamCreator DAX: Программирование 0 16.03.2005 12:36
Перебор всех таблиц, имеющих поле определенного типа AKIS-Falcon DAX: Программирование 8 11.02.2005 17:07
Почему в InventJournalTrans поле linenum вещественного типа?! ATimTim DAX: Программирование 7 17.06.2004 17:35
Поле в Grid типа Window Андре DAX: Программирование 13 18.12.2003 18:22
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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