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

клиент-скрипт

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

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