0
Голосовать

Выделение цветом полей "только для чтения"

В карточке редактирования wnd_...Edit предлагается выделять Caption визуальных контролов для полей Dataset-а с признаком "Только для чтения" цветом, отличающимся от цвета остальных полей, например, зеленым, или выставлять IsEnabled = false.

Комментарии

Петя Бучнев

Если заголовки (Caption) визуальных контролов для полей с признаком "Только для чтения" и для других полей имеют один и тот же цвет, то пользователь постоянно путается при вводе данных.
Вот пример решения:

//Модуль scr_BaseDBEditUtils

function ProcessBaseDBEditOnPrepare(Window, BaseDBEdit) {
...
    /* Добавляем строчку в функцию... */
    SetCaptionColorForIsReadOnlyFields(Window); //Устанавливает цвет для полей с признаком "Только чтение"
}

//Устанавливает цвет для полей с признаком "Только чтение"
function SetCaptionColorForIsReadOnlyFields(Window) {
        for (var i = 0; i < Window.ComponentCount; i++) {
                if (!IsUndefined(Window.Components(i).DataField)) {
                        if (Window.Components(i).DataField.IsReadOnly) {
                                //Можно включить выделение цветом --> Window.Components(i).CaptionColor = clReadOnlyCaptionColor;
                                Window.Components(i).IsEnabled = false;
                        }
                }
        }
}

Ключник Алексей

Добрый день, Петр.
В карточках редактирования элементы, поля которых имеют признак ReadOnly, отображаются серым цветом.
Если Вашим пользователям недостаточно базового отображения ReadOnly полей, то можно пойти и тем путем, который Вы описали. Действительно хороший вариант!