Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Damir Участник - экстремал
Вступление в Клуб: 29.03.2013
|
Вт Сен 10, 2013 11:45  Редактор ЭФ - глючек или фича (свойство формы Visible := F)? |
|
Полезность: Нет оценки
|
Здравствуйте.
Редактор ЭФ, куча форм - одной из форм ставим свойство формы.Visible := False и сохраняем.
Ощущение, что свойство не работает вообще.
Вкладка (соответствующая этой форме) не должна появляться - или как?
При проигрывании в редакторе ЭФ и в Навигаторе - вкладка видна.
Версия 6.0.115.60
Версия ТЯ 7.1.2.2
Версия Рабочего места Оператора 6.11.12.0 |
|
|
vtar Эксперт
Вступление в Клуб: 20.03.2009
|
Вт Сен 10, 2013 13:37   |
|
Полезность: 1
|
Runtime.Form.HideForm Form2
Обратно
Runtime.Form.ShowForm Form2 |
|
|
devor Профи
Вступление в Клуб: 13.02.2012
|
Вт Сен 10, 2013 13:43   |
|
Полезность: 1
|
::[RUNTIME].[CSMD].ShowForm
::[RUNTIME].[CSMD].HideForm
Если таких процедур на твоей схеме в либе CSMD нет, то вот их код
Код: |
procedure HideForm(dest_str in out varchar2(32000), Form_name varchar2) is
begin
dest_str:=dest_str||NL$||'Call Form1.ScriptShowTab('||Form_name||', False)';
end;
procedure ShowForm(dest_str in out varchar2(32000), Form_name varchar2) is
begin
dest_str:=dest_str||NL$||'Call Form1.ScriptShowTab('||Form_name||', True)';
end;
|
|
|
|
Random Эксперт
Вступление в Клуб: 27.06.2011
|
Вт Сен 10, 2013 14:13  Re: Редактор ЭФ - глючек или фича (свойство формы Visible := |
|
Полезность: 1
|
Damir пишет: | Здравствуйте.
Редактор ЭФ, куча форм - одной из форм ставим свойство формы.Visible := False и сохраняем.
Ощущение, что свойство не работает вообще.
Вкладка (соответствующая этой форме) не должна появляться - или как?
При проигрывании в редакторе ЭФ и в Навигаторе - вкладка видна.
Версия 6.0.115.60
Версия ТЯ 7.1.2.2
Версия Рабочего места Оператора 6.11.12.0 |
Угу. не очень давно, на схемах был уже 7.3.x.x, столкнулись с проблемой - на некоторых формах был установлен этот признак в FALSE, и вкладки таинственным образом исчезли.
Так что признак работает, но только начиная с какой-то версии навигатора или ТЯ, я не уточнял. |
|
|
Damir Участник - экстремал
Вступление в Клуб: 29.03.2013
|
Ср Сен 11, 2013 13:27   |
|
Полезность: Нет оценки
|
Спасибо, что помогаете мне.
Сразу не ответил - подзакопался немного...
Сейчас уже буду править форму - Ваши советы весьма пригодятся, я все пощупаю - и из бэйсика и из pl\sql.
devor пишет: | Если таких процедур на твоей схеме в либе CSMD нет .... |
Да, ничегошеньки на моей схеме нет. Спасибо. |
|
|
Damir Участник - экстремал
Вступление в Клуб: 29.03.2013
|
Пн Сен 30, 2013 07:47   |
|
Полезность: Нет оценки
|
devor пишет: | ::[RUNTIME].[CSMD].ShowForm
::[RUNTIME].[CSMD].HideForm
Если таких процедур на твоей схеме в либе CSMD нет, то вот их код
Код: |
procedure HideForm(dest_str in out varchar2(32000), Form_name varchar2) is
begin
dest_str:=dest_str||NL$||'Call Form1.ScriptShowTab('||Form_name||', False)';
end;
procedure ShowForm(dest_str in out varchar2(32000), Form_name varchar2) is
begin
dest_str:=dest_str||NL$||'Call Form1.ScriptShowTab('||Form_name||', True)';
end;
|
|
Дошли руки до интерфейса - наконец-то.
Сейчас задача такая: из блока проверки pl\sql надо выставить свойство рамки
FrameDOC_FINOPER.Visible := True (False)
Как такое сделать ?
пробовал так:
Код: | if V#CAT_TYPE#CODE = 'DOC' then
stdio.put_line_buf('<%PLPCALL CALL FrameDOC_FINOPER.Visible = True %>');
end if; |
и так
stdio.put_line_buf('<%CALL FrameDOC_FINOPER.Visible = True %>');
Ошибка:
PL/SQL: : буфер символьных строк слишком маленький ошибка числа или значения
stdio.put_line_buf('<%PLPCALL FrameDOC_FINOPER.Visible = True %>');
Не удалось разобрать команду, начиная с указанной '-->' позиции:
<% PLPCALL FrameDOC_FINOPER.Visible --> = False %>.
Подскажите - как? |
|
|
Damir Участник - экстремал
Вступление в Клуб: 29.03.2013
|
Пн Сен 30, 2013 08:32   |
|
Полезность: Нет оценки
|
vtar пишет: | Runtime.Form.HideForm Form2
Обратно
Runtime.Form.ShowForm Form2 |
Проверил - не работает на моей версии.
Т.е. из скрипта бэйсика тоже не работает.
И
Код: | Form5.Visible = False |
- такое тоже не работает
Похоже, прав Random - оно только с какой-то версии начало работать |
|
|
Amper Профи
Вступление в Клуб: 29.10.2010
|
Пн Сен 30, 2013 08:35   |
|
Полезность: 1
|
PLPCALL-синтаксис нужен не для выполнения произвольного клиент-скрипта... Клиентский скрипт из проверки можно выполнять с помощью специальной переменной, находящейся на форме и являющейся посредником между клиентской и серверной стороной.
Для этого, в проверке вы пишите примерно так:
Код: | dest_str := dest_str || NL$ || 'FrameDOC_FINOPER.Visible = True'; |
После этого (если в свойствах операции стоит проверка "Сервер/Клиент"), на клиентской стороне для выполнения должно быть что-то вроде:
Код: | Public Function Main(LastControl)
Execute dest_str.Text
dest_str.Text = ""
Main = True
End Function |
Тогда будет вам счастье. Но при этом, нужно обратить внимание, что dest_str должно присутствовать на форме и должно на клиентской стороне иметь имя dest_str (или другое, но тогда и в коде клиент-скрипта надо сменить).
Если у вас есть библиотека ::[RUNTIME].[CSMD], то можно воспользоваться ей.
Последний раз редактировалось: Amper (Пн Сен 30, 2013 08:46), всего редактировалось 1 раз |
|
|
Ezhik Участник со стажем
Вступление в Клуб: 17.04.2009
|
Пн Сен 30, 2013 08:36   |
|
Полезность: Нет оценки
|
И еще может пригодится. В RUNTIME есть библиотека CSMD. Возможно, есть и у вас на схеме. Она как раз для подобных целей. |
|
|
Damir Участник - экстремал
Вступление в Клуб: 29.03.2013
|
Пн Сен 30, 2013 08:41   |
|
Полезность: Нет оценки
|
Ezhik пишет: | И еще может пригодится. В RUNTIME есть библиотека CSMD. Возможно, есть и у вас на схеме. Она как раз для подобных целей. |
на моей схеме её нет.
Каким образом можно её заполучить?
Правильно я понимаю, что библиотека является частью ядра?
Версия ТЯ 7.1.2.2
Версия Рабочего места Оператора 6.11.12.0 |
|
|
Damir Участник - экстремал
Вступление в Клуб: 29.03.2013
|
Пн Сен 30, 2013 08:45   |
|
Полезность: Нет оценки
|
Amper пишет: | .....
После этого (если в свойствах операции стоит проверка "Сервер/Клиент"), то на клиентской стороне для выполнения
.....
|
спасибо, буду пробовать через переменную.
Порядок проверки стоит как раз "Сервер/Клиент" |
|
|
Alexsey Эксперт
Вступление в Клуб: 06.09.2007
|
Пн Сен 30, 2013 10:18   |
|
Полезность: Нет оценки
|
Damir пишет: | Amper пишет: | .....
После этого (если в свойствах операции стоит проверка "Сервер/Клиент"), то на клиентской стороне для выполнения
.....
|
спасибо, буду пробовать через переменную.
Порядок проверки стоит как раз "Сервер/Клиент" |
Доброго времени суток.
Form.visible стала обрабатываться не так давно в одной из версий навигатора, по моему в 115-й. Возможно у вас не получается потому, что у работаете на старой версии навигатора. Поэтому скрыть вкладку можно только через ShowTab _________________ всегда есть как минимум 2 выхода |
|
|
Damir Участник - экстремал
Вступление в Клуб: 29.03.2013
|
Пн Сен 30, 2013 10:37   |
|
Полезность: Нет оценки
|
Amper пишет: | ......
Тогда будет вам счастье. |
"Amper" - спасибо, предложенный тобой метод работает. |
|
|
Ezhik Участник со стажем
Вступление в Клуб: 17.04.2009
|
Пн Сен 30, 2013 11:18   |
|
Полезность: Нет оценки
|
Damir пишет: | Каким образом можно её заполучить?
Правильно я понимаю, что библиотека является частью ядра? | Да. Вечером могу поделиться. |
|
|
Alexsey Эксперт
Вступление в Клуб: 06.09.2007
|
Пн Сен 30, 2013 11:49   |
|
Полезность: Нет оценки
|
Damir пишет: | Ezhik пишет: | И еще может пригодится. В RUNTIME есть библиотека CSMD. Возможно, есть и у вас на схеме. Она как раз для подобных целей. |
на моей схеме её нет.
Каким образом можно её заполучить?
Правильно я понимаю, что библиотека является частью ядра?
Версия ТЯ 7.1.2.2
Версия Рабочего места Оператора 6.11.12.0 |
Дамир, данная библиотека должна быть. Она входит в дистрибутивную поставку и на нее много чего завязано. Попробуйте поиском пройтись.
Полное наименование библиотеки "Управление формой через клиент-скрипт"короткое имя "CSMD". Даже если вам ее предоставят, она может не накатиться, если хранилище не будет подписано. _________________ всегда есть как минимум 2 выхода |
|
|
|