В карточке редактирования 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 полей, то можно пойти и тем путем, который Вы описали. Действительно хороший вариант!
Комментарии
Если заголовки (Caption) визуальных контролов для полей с признаком "Только для чтения" и для других полей имеют один и тот же цвет, то пользователь постоянно путается при вводе данных.
Вот пример решения:
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 полей, то можно пойти и тем путем, который Вы описали. Действительно хороший вариант!