Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Псевдоним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
|
нашел ошибку у себя: в проверке было
но..., скрывать он скрывает, а отображать - не отображает.  |
|
 |
vtar Эксперт
Вступление в Клуб: 20.03.2009
|
Ср Авг 08, 2018 16:50   |
|
Полезность: Нет оценки
|
Псевдоним123 пишет: | нашел ошибку у себя: в проверке было
но..., скрывать он скрывает, а отображать - не отображает.  |
гениально
на счет отображает - код отображения выводится msg box'ом ?
если да, может надо какой нибудь Object1.Show метод звать ? |
|
 |
|