Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
markoff Участник - экстремал
Вступление в Клуб: 09.06.2009
|
Чт Сен 24, 2009 10:42  клиент-скрипт |
|
Полезность: Нет оценки
|
Добрый день. Вот мой код клиент-скрипта
Код: | '#include ::[RUNTIME].[MSWORD_SCRIPT]
Public Function Main(LastControl)
If LastControl is OK then ' Действия при потере фокуса валидируемого контрола LastControl
if right(Text10 ,2) = "JR" then
MsgBox "Данный шаблон предназначен для юридических лиц!", vbExclamation, "Ошибка!"
Main = false
Exit Function
end if
if right(Text10 ,2) = "FZ" then
MsgBox "Данный шаблон предназначен для физических лиц!", vbExclamation, "Ошибка!"
Main = false
Exit Function
end if
DO 'исполнение сценария
Execute V_DEST.Text
Call Form1.ScriptServerValidate( OK, "OK")
Loop While V_DEST.Text <> ""
End If
Main = True ' Результирующее значение валидатора (True или False)
End Function |
При выборке неверного шаблона выскакивает MsgBox, сбрасываем его. Вот тут у меня и вопрос: при повторном выборе шаблона и нажатий "ОК" клиент-скрипт просто не срабатывает. Я прекрастно понимаю что при
Код: | MsgBox "Данный шаблон предназначен для физических лиц!", vbExclamation, "Ошибка!"
Main = false
Exit Function |
или
Код: | MsgBox "Данный шаблон предназначен для юридических лиц!", vbExclamation, "Ошибка!"
Main = false
Exit Function |
я выхожу из функций. Как сделать так что бы можно было повторно выбрать шаблон и клиент-скрипт отработает. |
|
 |
r00st Эксперт
Вступление в Клуб: 14.09.2007
|
Чт Сен 24, 2009 12:50   |
|
Полезность: 1
|
Можно поместить на форму кнопку-муляж Button с надписью "OK", а подлинный "ОК" скрыть. И немного изменить скрипт:
Код: | Public Function Main(LastControl)
if LastControl is Button then
err = 0
if right(Text10 ,2) = "JR" then
MsgBox "Данный шаблон предназначен для юридических лиц!", vbExclamation, "Ошибка!"
err = 1
end if
if right(Text10 ,2) = "FZ" then
MsgBox "Данный шаблон предназначен для физических лиц!", vbExclamation, "Ошибка!"
err = 1
end if
if err = 0 then
Call Form1.ScriptServerValidate( OK, "OK")
end if
else if LastControl is OK then DO 'исполнение сценария
Execute V_DEST.Text
Call Form1.ScriptServerValidate( OK, "OK")
Loop While V_DEST.Text <> ""
end if
Main = True ' Результирующее значение валидатора (True или False)
End Function |
|
|
 |
Alex2019 Профи
Вступление в Клуб: 02.07.2007
|
Чт Сен 24, 2009 12:55   |
|
Полезность: 1
|
Я бы в качестве ласт-контрола использовал не ОК, а валидируемый объект, т.е. шаблон, и конструкцию if... else if... else... end if.
Тогда при назначении неверного шаблона операция ругнется и экранная форма не закроется (можно даже прописать в скрипт в проверке, что контрол "ОК" недоступен и делать его доступным в секции скрипта DO... LOOP).
И еще: в операции свойства проверки при смене элемента управления должны быть "Клиент - Сервер" |
|
 |
dnk_dz Эксперт
Вступление в Клуб: 19.09.2007
|
Чт Сен 24, 2009 13:10   |
|
Полезность: 2
|
По-моему, данную проверку проще сделать в серверном валидаторе. |
|
 |
Alex2019 Профи
Вступление в Клуб: 02.07.2007
|
Чт Сен 24, 2009 13:39   |
|
Полезность: Нет оценки
|
dnk_dz пишет: | По-моему, данную проверку проще сделать в серверном валидаторе. | Согласен. Но коль человек почему-то выносит ее в клентский, то и настройка должна быть соответственной |
|
 |
markoff Участник - экстремал
Вступление в Клуб: 09.06.2009
|
Чт Сен 24, 2009 14:11   |
|
Полезность: Нет оценки
|
Спасибо всем кто откликнулся.
Решил свою проблему как предложил dnk_dz. |
|
 |
1q1 Участник
Вступление в Клуб: 23.12.2009
|
Ср Дек 23, 2009 09:27   |
|
Полезность: Нет оценки
|
Здравствуйте!
Подскажите, пожалуйста, как реализовать в клиентскрипте информационное окно с сообщением.
Например, alert "Привет!" |
|
 |
timochev Эксперт
Вступление в Клуб: 02.07.2007
|
Ср Дек 23, 2009 09:51   |
|
Полезность: 1
|
1q1 пишет: | как реализовать в клиентскрипте информационное окно с сообщением alert "Привет!" |
Код: | Public Function Main(LastControl)
MsgBox "Привет!"
Main = True 'Результат валидатора (True, False, NULL)
End Function |
|
|
 |
1q1 Участник
Вступление в Клуб: 23.12.2009
|
Ср Дек 23, 2009 09:58   |
|
Полезность: Нет оценки
|
Спасибо! |
|
 |
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
|