Показать сообщение отдельно
Старый 19.08.2021, 13:59   #11  
SRF is offline
SRF
Участник
MCBMSS
Axapta Retail User
 
365 / 542 (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).