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

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

Нравится

2 комментария

Если заголовки (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 полей, то можно пойти и тем путем, который Вы описали. Действительно хороший вариант!

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