Страница 1 из 1

Запрет доступа к элементам анкетной формы

Добавлено: 10 апр 2007, 13:21
Vik
Вопрос такой. Как можно управлять доступностью элементов анкетной формы? То есть в зависимости от каких-то условий делать так, чтобы элементы не были доступны и закрашивались в серый цвет. По типу как в Delphi, к примеру, свойство Enabled :=false. Спасибо.

Добавлено: 10 апр 2007, 13:45
Алексей
в своём интерфейсе можно.
а вот чтобы конфигуратор по условию работал, вроде не получится.

Добавлено: 10 апр 2007, 13:50
Vik
Я имею ввиду свой интерфейс :) Так как это сделать?

Добавлено: 10 апр 2007, 14:38
m0p3e
если я правильно понял вопрос, то:
8.8.17. Процедура SetFieldOption (Integer, Word)
Назначение
Установить option-флаги поля.
Описание
procedure SetFieldOption (Поле : Integer; iOption : Word);
Параметры
Поле : Integer - номер поля в логической таблице.
iOption : Word - флаг:
- ofSelectable - поле можно позиционировать;
- ofProtected - поле нельзя менять.

Procedure ClearFieldOption (Integer, Word)
Назначение
Сбросить option-флаги поля.
Описание
procedure ClearFieldOption (Поле : Integer; iOption : Word);
Параметры
Поле : Integer - номер поля в логической таблице.
iOption : Word - флаг:
- ofSelectable - поле можно позиционировать;
- ofProtected - поле нельзя менять.

Добавлено: 10 апр 2007, 16:40
Vik
Чтобы вопрос был понятен, приведу пример из Галактики. Выбираем при настройке ТХО, например, алгоритм NP. Выбираем фильтры. Появляется интерфейс - слева много-много CheckButton-ов (или как они правильно называются тут), а справа - PickButton-ы. Пока не поставлена галочка, PickButton неактивен, имеет цвет основного окна и вид обычного анкетного поля для ввода без кнопки.. Ставим галку, соответствующий PickButton становится активным, имеет белый цвет и справа у него появляется кнопка (...) .

То есть, допустим создана такая логическая таблица:
......
create view
var a : string
ch : boolean
as select * from x$files;
......

Далее в секци скрин описано:

screen s1;
fields
ch : NoProtect;
a: PickButton,Protect;// {Font = {BackColor = if (not Ch,8,0) }};
<< 'xxxxxxx'
[.] - Разрешить выбор `
Выберите файл:
.@@@@@@@@@@@@@@@@@@
>>

Нужно, чтобы при ch = false, Pickbutton был недоступным полностью (кнопка выбора отсутствовала, а само поле имело цвет фона). При использовании вышеописанных функции эффект другой, то есть при попытке изменить запись будет выдаваться сообщение об ошибке- Запись защищена от модификации. А хотелось бы, чтобы вообще ни на что нажимать возможности не было :) Конечно, можно в соответствии с флагом ch изменять и цвет (закомментированная строка). Но все это как-то искуственно, ведь есть же судя по-всему стандартный способ..

Добавлено: 10 апр 2007, 17:53
Den
Так что ли ?

Interface test;

create view
var a : word
ch : word
ch1 : boolean
as select * from systdate;

screen s1;

fields

ch : NoProtect;
a: NoProtect ;

<<

[.] по подразделениям...`

.@@@

>>
end;

HandleEvent
CmInit : {


}
CmCheckfield : {
case a of
1 :{
cfsSetCurrentContainer('test');
cfsSetProp('ci_S1_CH_по_подразделениям...', 'Skip', false);
}
2 :{

cfsSetCurrentContainer('test');
cfsSetProp('ci_S1_CH_по_подразделениям...', 'Skip', true);
}
end;
}
end;
end.

Добавлено: 10 апр 2007, 18:48
Vik
Да!!! Именно так :) Спасибо!