Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
.СергейПанин Участник - экстремал
Вступление в Клуб: 24.06.2008
|
Пт Июл 23, 2010 08:56  Контролы на форме |
|
Полезность: Нет оценки
|
коллеги время суток доброе, подстажите советом.
можно ли обнулить значения определенных элементов на форме не перечисляя из по имени, что то типа
Код: |
For Each Ctrl in FORM1.Controls
Ctrl.Enabled = False
Next
|
только вместо Ctrl.Enabled = False
вбабахать что то типа Ctrl.Value = null |
|
 |
prog Эксперт
Вступление в Клуб: 03.03.2008
|
Пт Июл 23, 2010 11:06   |
|
Полезность: Нет оценки
|
Код: |
Form1.Caption = "Режим просмотра"
Form1.ScriptDisableForm(Form1)
CANCEL.Enabled = true
|
|
|
 |
prog Эксперт
Вступление в Клуб: 03.03.2008
|
Пт Июл 23, 2010 11:24   |
|
Полезность: Нет оценки
|
не внимательно вопрос прочитал
Можно попробовать собирать скрипт запросом типа Код: | select VALIDATE_NAME||'.Value = null' from CONTROLS where METH_ID = '785083369' and control = 'TEXT' |
а затем его выполнять
Последний раз редактировалось: prog (Пт Июл 23, 2010 12:06), всего редактировалось 1 раз |
|
 |
ГлСП Профи
Вступление в Клуб: 20.09.2007
|
Пт Июл 23, 2010 11:58   |
|
Полезность: Нет оценки
|
Посмотри библиотеку CSMD, конкретно процедуру fill_tbl, там расписано как добыть все контролы на форме, а потом уже традиционным методом генерируешь VBScript и потом в форме запускаешь его. Хотя, самой библиотеки должно быть достаточно, чтобы велосипед не изобретать .
Код: |
/*--------------------------------------------------------------------------------------*/
-- Заполнение таблицы контролов экранной формы tbl для метода с id=form_id
procedure fill_tbl is
i integer;
val_n varchar2(64);
par_n varchar2(64);
-- cont_n varchar2(64);
type ctl is
select c(c.Validate_name : v,
c.Qualifier : q,
c.control : c)
in controls%rowtype where c.meth_id=Form_id;
begin
i:=0;
for v in cursor ctl
loop val_n :=v.v; par_n :=v.q;
/* loop
i:=utils.hash_value(par_n);
if not tbl.exists(i) then exit;
end if;
end if;*/
tbl(i).v_name:=val_n; tbl(i).p_name:=par_n;
-- debug_pipe(i||' '||tbl(i).v_name||' '||tbl(i).p_name);
i:=i+1;
end loop;
end;
|
Вот ссылочка, где описано, как запускасть скрипты на форме |
|
 |
.СергейПанин Участник - экстремал
Вступление в Клуб: 24.06.2008
|
Пт Июл 23, 2010 16:32   |
|
Полезность: Нет оценки
|
Задачка чуть усложнилась
контролы на форме перебираю.. все отлично..
а можно ли таким же макаром перебирать переменные и параметры операций и делать их в NULL ? |
|
 |
prog Эксперт
Вступление в Клуб: 03.03.2008
|
Пт Июл 23, 2010 16:42   |
|
Полезность: Нет оценки
|
В библиотеке SET_VARS есть макрос &set_vars. Он используется для для установки глобальных переменных в операции имеющей экранную форму.
По аналогии решаешь свою задачу. Кратко это выглядит так:
1) некая функция возвращает кусок PL/PLUS кода
2) объявляется макрос pragma macro(xxx,'Z$YOU_OPER.gettext',execute);
3) в нужном месте макрос вызывается &xxx |
|
 |
.СергейПанин Участник - экстремал
Вступление в Клуб: 24.06.2008
|
Пт Июл 23, 2010 16:47   |
|
Полезность: Нет оценки
|
prog пишет: | установки глобальных переменных |
гы-гы-гы открываю set_vars и что вижу
--Ограничение: НЕ ИСПОЛЬЗОВАТЬ МАКРОСЫ В ОПЕРАЦИЯХ-РАСШИРЕНИЯХ!  |
|
 |
ГлСП Профи
Вступление в Клуб: 20.09.2007
|
Пн Июл 26, 2010 10:46   |
|
Полезность: Нет оценки
|
DC_Sergey пишет: | Задачка чуть усложнилась
контролы на форме перебираю.. все отлично..
а можно ли таким же макаром перебирать переменные и параметры операций и делать их в NULL ? |
Параметры, наверно, можно выдернуть из системных таблиц ибсо, а вот на счет списка переменных, то это уже наверно фантастика. Тогда уже проще выдергивать текст операции, и парсить его. |
|
 |
prog Эксперт
Вступление в Клуб: 03.03.2008
|
Пн Июл 26, 2010 12:45   |
|
Полезность: Нет оценки
|
ГлСП пишет: | DC_Sergey пишет: | Задачка чуть усложнилась
контролы на форме перебираю.. все отлично..
а можно ли таким же макаром перебирать переменные и параметры операций и делать их в NULL ? |
Параметры, наверно, можно выдернуть из системных таблиц ибсо, а вот на счет списка переменных, то это уже наверно фантастика. Тогда уже проще выдергивать текст операции, и парсить его. |
Вероятно, здесь речь шла о переменных, объявляемых на закладке "Переменные", при редактировании операции... |
|
 |
ГлСП Профи
Вступление в Клуб: 20.09.2007
|
Вт Июл 27, 2010 04:47   |
|
Полезность: Нет оценки
|
prog пишет: | ГлСП пишет: | DC_Sergey пишет: | Задачка чуть усложнилась
контролы на форме перебираю.. все отлично..
а можно ли таким же макаром перебирать переменные и параметры операций и делать их в NULL ? |
Параметры, наверно, можно выдернуть из системных таблиц ибсо, а вот на счет списка переменных, то это уже наверно фантастика. Тогда уже проще выдергивать текст операции, и парсить его. |
Вероятно, здесь речь шла о переменных, объявляемых на закладке "Переменные", при редактировании операции... |
Тогда их тоже можно выдернуть из описания операции. |
|
 |
|