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

видимость элементов на форме

 
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Разработка в PL/PLUS. Оптимизация запросов Oracle
Предыдущая тема :: Следующая тема  
Автор Сообщение
Псевдоним123
Участник - экстремал


Вступление в Клуб: 05.06.2018
СообщениеСр Авг 08, 2018 09:17   видимость элементов на форме Ответить с цитатой
Полезность: Нет оценки
добрый день.

как бы я не изголялся, но
Код:
csmd.command (V_DEST, 'tableObj.Visible = TRUE');


не работает....!!!!!

V_DEST переменная есть, используется в клиент-скрипте



Код:
Public Function Main(LastControl)
   If LastControl is OK Then
      While V_DEST.Text <> ""
                  
         Execute V_DEST.Text
         
         V_DEST.Text = ""
         Call Form1.ScriptServerValidate(OK, "OK")
      WEND
   End If
   
   Main = True
End Function
vtar
Эксперт


Вступление в Клуб: 20.03.2009
СообщениеСр Авг 08, 2018 09:21    Ответить с цитатой
Полезность: 1
1) проверь в доп. свойствах операции проверки
Клиент, Сервер или
Сервер, Клиент

2) в самом клиент скрипте можно выводить отладку

msgbox " v_dest= " & v_dest.Text

3) TableObj поддерживает свойство Visible ?
Псевдоним123
Участник - экстремал


Вступление в Клуб: 05.06.2018
СообщениеСр Авг 08, 2018 09:40    Ответить с цитатой
Полезность: Нет оценки
1) сервер, клиент
2) отладка выводится, но по тому, что мне требуется ничего не увидел
3) TableObj свойство visible поддерживает.
vtar
Эксперт


Вступление в Клуб: 20.03.2009
СообщениеСр Авг 08, 2018 09:45    Ответить с цитатой
Полезность: Нет оценки
tableObj.Visible = TRUE у тебя в отладке клиент скрипта не выводится ?

То есть команда не отрабатывается. csmd.command ты случайно не из тела операции шлешь ? Оно вроде только в проверке будет работать.

И (к делу не относится) зачем ты шлешь валидацию нажатие ОК из клиент-скрипта
Эмиралька
Эксперт


Вступление в Клуб: 09.11.2015
СообщениеСр Авг 08, 2018 10:09   Re: видимость элементов на форме Ответить с цитатой
Полезность: Нет оценки
Псевдоним123 пишет:
не работает....!!!!!

V_DEST переменная есть, используется в клиент-скрипте



Код:
Public Function Main(LastControl)
   If LastControl is OK Then
      While V_DEST.Text <> ""
                  
         Execute V_DEST.Text
         
         V_DEST.Text = ""
         Call Form1.ScriptServerValidate(OK, "OK")
      WEND
   End If
   
   Main = True
End Function


Допиши:
Код:
Public Function Main(LastControl)

   If LastControl is OK Then
' В принципе можно оставить
      While V_DEST.Text <> ""
                  
         Execute V_DEST.Text
         
         V_DEST.Text = ""
         Call Form1.ScriptServerValidate(OK, "OK")
      WEND
   End If

   if V_DEST.Text <> "" then
MsgBox(V_DEST.Text) 'чисто чтоб проверить что эта шняга работает, потом, понятно, надо выкосить
      Execute V_DEST.Text
      V_DEST.Text = ""
   end if
   
   Main = True
End Function

а то у тебя работала только если ты OK нажимаешь.
Псевдоним123
Участник - экстремал


Вступление в Клуб: 05.06.2018
СообщениеСр Авг 08, 2018 10:22    Ответить с цитатой
Полезность: Нет оценки
vtar пишет:
tableObj.Visible = TRUE у тебя в отладке клиент скрипта не выводится ?

То есть команда не отрабатывается. csmd.command ты случайно не из тела операции шлешь ? Оно вроде только в проверке будет работать.


tableObj.Visible = TRUE в отладке не выводится
нет, не их тела, а из проверки

Код:
if p_message = 'DEFAULT' then
         --debug_pipe('P_USER '|| P_USER, 0);
      P_PRINT := false;
         [csmd].Command(V_DEST, 'Object11.Visible = false');
               ...
      
vtar
Эксперт


Вступление в Клуб: 20.03.2009
СообщениеСр Авг 08, 2018 10:46    Ответить с цитатой
Полезность: Нет оценки
поиграйся с проверками

поставь

Клиент, Сервер
Сервер, Клиент

перезайди в Навигатырь
Псевдоним123
Участник - экстремал


Вступление в Клуб: 05.06.2018
СообщениеСр Авг 08, 2018 11:23    Ответить с цитатой
Полезность: Нет оценки
не, все-равно не скрывает/отражает элементы на форме......
vtar
Эксперт


Вступление в Клуб: 20.03.2009
СообщениеСр Авг 08, 2018 11:34    Ответить с цитатой
Полезность: Нет оценки
If LastControl is OK Then

убери '
Псевдоним123
Участник - экстремал


Вступление в Клуб: 05.06.2018
СообщениеСр Авг 08, 2018 12:04    Ответить с цитатой
Полезность: Нет оценки
не помогло..

Код:
Public Function Main(LastControl)

   'If LastControl is OK Then
   'End If
   if V_DEST.Text <> "" then
   MsgBox(V_DEST.Text)
      Execute V_DEST.Text
      V_DEST.Text = ""
   end if
   
   Main = True
End Function



код из проверки
Код:
if p_message = 'DEFAULT' then
   csmd.command (V_DEST, 'TableObj.Visible = FALSE');
        ...
Эмиралька
Эксперт


Вступление в Клуб: 09.11.2015
СообщениеСр Авг 08, 2018 12:42    Ответить с цитатой
Полезность: 1
Псевдоним123 пишет:
не помогло..

Код:
Public Function Main(LastControl)

   'If LastControl is OK Then
   'End If
   if V_DEST.Text <> "" then
   MsgBox(V_DEST.Text)
      Execute V_DEST.Text
      V_DEST.Text = ""
   end if
   
   Main = True
End Function



код из проверки
Код:
if p_message = 'DEFAULT' then
   csmd.command (V_DEST, 'TableObj.Visible = FALSE');
        ...


То есть MsgBox у тебя ничего не выдал?
Перенеси его перед IF, пусть выводит хотя бы пустую строку.
Скорее всего, клиент-скрипту управление тупо не передаётся.
Надо помнить, что передача управления в клиент-скрипт регулируется дважды - при инициализации и при выполнении действий.

Также возможная причина - переменная V_DEST передаётся в клиент-скрипт пустая, например, ниже по тексту кода из секции валиадции обнуляется.

Чтобы это проверить, надо:

На закладке доп.свойств операции убедись, что при загрузке ЭФ последовательность обработки "Сервер, Клиент", а при смене элемента управления - "Клиент, Сервер".

Дополнительно:
В конце секции валидации после всех действий перед конечным end напиши вывод переменной V_DEST в пайпу, чтобы контролировать её значение
debug_pipe('V_DEST = '||V_DEST, 0).

V_DEST на экранной форме сделай видимой, чтобы контролировать, что в ней что-то есть и меняется.

Установи у переменной V_DEST признак CheckValidate. После запуска операции попробуй в ней как-то поменять текст.

Успешной отладки.

PS: Клиент-скрипт и ЭФ операции кэшируется навигатором, поэтому если что-то меняешь в клиент-скрипте или на экранной форме операции, перед проверкой нужно перезайти в АРМ Навигатор, лучше его совсем закрыть. Это жёстко, но более мягкие формы отладки потребуют от тебя большего понимания внутреннего устройства, а эта всегда работает.
Псевдоним123
Участник - экстремал


Вступление в Клуб: 05.06.2018
СообщениеСр Авг 08, 2018 13:57    Ответить с цитатой
Полезность: 1
нашел ошибку у себя: в проверке было

Код:
V_DEST   := null;


но..., скрывать он скрывает, а отображать - не отображает. Shocked Shocked Shocked
vtar
Эксперт


Вступление в Клуб: 20.03.2009
СообщениеСр Авг 08, 2018 16:50    Ответить с цитатой
Полезность: Нет оценки
Псевдоним123 пишет:
нашел ошибку у себя: в проверке было

Код:
V_DEST   := null;


но..., скрывать он скрывает, а отображать - не отображает. Shocked Shocked Shocked


гениально

на счет отображает - код отображения выводится msg box'ом ?

если да, может надо какой нибудь Object1.Show метод звать ?
Показать сообщения:   
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Разработка в PL/PLUS. Оптимизация запросов Oracle Часовой пояс: GMT + 3
Страница 1 из 1

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