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

Возврат параметров из операции и перегрузка формы

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


Вступление в Клуб: 13.12.2011
СообщениеПт Мар 02, 2012 07:45   Возврат параметров из операции и перегрузка формы Ответить с цитатой
Полезность: Нет оценки
Есть на родительской форме ТБП [CL_PRIV], отображается Наименование и СНИЛС (локальная доработка)

После выбора клиента, идёт проверка на наличие СНИЛСа, если нет, то вызывается операция по добавлению этого СНИЛСа.

Здесь проблем нет, операция вызывается, СНИЛС вводится и записывается в переданного клиента, вызов делаю средставами PLPCALL.

Код:
stdio.put_line_buf('<% PLPCALL [MRU_OPS_NPF].[OPS_ADD_SNILS](%PARAM%.P_CLIENT => '''|| P_CLIENT ||''',  %PARAM%.P_SNILS => '''|| P_CLIENT.[MRU_SNILS] ||''' ) %>');


Как мне после закрытия окна операции добавления СНИЛСа перегрузить родительское окно, чтобы и на нём уже отображался только что добавленный СНИЛС ?
prog
Эксперт


Вступление в Клуб: 03.03.2008
СообщениеПт Мар 02, 2012 08:03    Ответить с цитатой
Полезность: 1
Попробуйте клиент-скриптом

Цитата:
Синтаксис

Runtime.Play(cmd As String)

Описание

Запустить форму операции: cmd – строка в формате "<% CALL …%>".

Примечание

Функция Play может возвращать строковое значение, содержащее результат вызванной операции, если он имеет текстовый тип.

Пример

Dim strRes

strRes = Runtime.Play("<% CALL document method null %>")

MsgBox strRes


В голову пришло научить [MRU_OPS_NPF].[OPS_ADD_SNILS] возвращать id вновь созданного экземпляра, затем на родительской форме его использовать

Есть еще PlayEx, возможно она даже будет удобнее в вашем случае

Пример
Цитата:


Sub Button3_OnClick

ss = "<% PLPCALL NEWREF:=[TESTCONST].NEW#AUTO() %>"

Form1.ScriptPlayEx ss

End Sub
dumpino
Участник со стажем


Вступление в Клуб: 13.12.2011
СообщениеПт Мар 02, 2012 10:32    Ответить с цитатой
Полезность: Нет оценки
prog пишет:

Есть еще PlayEx, возможно она даже будет удобнее в вашем случае



спасибо, в итоге параллельно делал через PlayEx. Вначале думал, что как-то серверными технологиями можно решить, но серверными не узнать момент окончания выполнения внешней операции)

Код:
sub bSnils_OnClick
   
   res = Form1.ScriptPlayEx("<% PLPCALL [MRU_OPS_NPF].[OPS_ADD_SNILS](%PARAM%.P_CLIENT_ID => '" + tClientId.Text + "' ) %>")
   
   if (res > 0) then
      call Form1.ScriptServerValidate(Nothing, "UPDATE_SNILS")
   end if
   
end sub
Показать сообщения:   
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Разработка в PL/PLUS. Оптимизация запросов Oracle Часовой пояс: GMT + 3
Страница 1 из 1

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