CftClub.ru
Клуб специалистов ЦФТ-Банк

Редактор ЭФ - глючек или фича (свойство формы Visible := F)?
На страницу 1, 2  След.
 
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Справочник PL/PLUS: Функции, примеры, приёмы
Предыдущая тема :: Следующая тема  
Автор Сообщение
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 выхода
Показать сообщения:   
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Справочник PL/PLUS: Функции, примеры, приёмы Часовой пояс: GMT + 3
На страницу 1, 2  След.
Страница 1 из 2

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Рейтинг@Mail.ru