Текстовое поле в настраиваемом окне редактирования БП.

Возникла задача изменить настраиваемое окно редактирования в БП таким образом, чтобы при допустимом количестве символов, превышающем 250, в окне формировался не 'TextDataControl' (как реализовано в базовой версии), а 'MemoDataControl'.
Решается задача модификацией логики function BuildDataControl(Window, ParentComponent, DatasetLink, DataField) сервиса wnd_CustomEditWindowScript.
Данная функция динамически создает и отрисовывает компоненты в настраиваемом окне редактирования.
Для решения задачи необходимо заменить функцию function BuildDataControl на приведенную ниже:

function BuildDataControl(Window, ParentComponent, DatasetLink, DataField) {
        var ComponentType = GetComponentTypeByDataField(DataField);
        if (IsEmptyStr(ComponentType)) {
                return;
        }
        var DataFieldName = DataField.Name;
        var ComponentName = GetControlName(Window, DataFieldName);
                if ((ComponentType == 'TextDataControl')&& (DataField.TextLength > 250)){
                 var Component = Window.CreateComponent('MemoDataControl', ComponentName);
                 Component.Height = 45;
                } else{
                var Component = Window.CreateComponent(ComponentType, ComponentName);
                }
        Component.DataFieldName = DataFieldName;
        Component.DatasetLink = DatasetLink;
        ParentComponent.Add(Component);
        Component.AlignHorizontal = alhClient;
        return Component;
}

Результат будет иметь вид:

/system/files/2_61.png

Нравится

Поделиться

0 комментариев
Показать все комментарии