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

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


Вступление в Клуб: 05.06.2018
СообщениеПн Окт 07, 2019 11:10   запуск операции через клиент-скрипт Ответить с цитатой
Полезность: Нет оценки
добрый день.

вопрос такой: как из групповой операции запустить списочную операцию с передачей клиента, если на форме только 2 кнопки: ОК и Отмена.

сделал через клиент-скрипт, с msgBox (вопрос при запуске операции - требование заказчика)
Код:
Public Function Main(LastControl)
   If LastControl Is Nothing Then
      ' Действия при загрузке формы
   Else
      ' Действия при потере фокуса валидируемого контрола LastControl
   End If
   
   if LastControl is OK then
      if msgBox("Должны быть настроены новые счета. Продолжить?", vbYesNo + vbQuestion, "Внимание") <> vbYes then
               Main = NULL
               LastControl.SetFocus
               exit function
      else
      Form1.ScriptPlayEx("<% PLPCALL %THIS%.[TRANSFER_OST_V](%VAR%.V_DEST_STR => %VAR%.V_VB) %>")
       end if         
   end if    
   Main = True 'Результат валидатора (True, False, NULL)   
   'Execute V_VB.TEXT
   'V_VB.TEXT = ""
End Function
Volod
Эксперт


Вступление в Клуб: 19.09.2007
СообщениеПн Окт 07, 2019 16:26    Ответить с цитатой
Полезность: Нет оценки
Никак, любой параметр/переменная передаваемые в вызываемую операцию, д.б. на форме вызывающей операции.
А зачем именно из клиент - скрипта?
Псевдоним123
Участник - экстремал


Вступление в Клуб: 05.06.2018
СообщениеПн Окт 07, 2019 17:50    Ответить с цитатой
Полезность: Нет оценки
не подскажете, как передать в операцию p_info = OK???
Псевдоним123
Участник - экстремал


Вступление в Клуб: 05.06.2018
СообщениеПн Окт 07, 2019 17:51    Ответить с цитатой
Полезность: Нет оценки
через клиент-скрипт для того, чтобы можно было вопрос задать с "ДА"/"НЕТ"....
Volod
Эксперт


Вступление в Клуб: 19.09.2007
СообщениеПн Окт 07, 2019 18:38    Ответить с цитатой
Полезность: Нет оценки
Call Form.ScriptServerValidate(Nothing, "XXXX")
где XXXX валидируется в Проверке
If P_INFO = 'XXXX' then
Псевдоним123
Участник - экстремал


Вступление в Клуб: 05.06.2018
СообщениеВт Окт 08, 2019 09:48    Ответить с цитатой
Полезность: Нет оценки
я немного про другое..

как можно запустить из одной операции другую операцию без вызова формы?
Volod
Эксперт


Вступление в Клуб: 19.09.2007
СообщениеВт Окт 08, 2019 09:59    Ответить с цитатой
Полезность: Нет оценки
CALL ТБП.ОПЕРАЦИЯ id
Псевдоним123
Участник - экстремал


Вступление в Клуб: 05.06.2018
СообщениеВт Окт 08, 2019 12:17    Ответить с цитатой
Полезность: Нет оценки
Volod пишет:
CALL ТБП.ОПЕРАЦИЯ id


выдает сообщение: "Экземпляр (id операции) не найден, тип ТБП.
Продолжить загрузку операции?
"[/u]
Volod
Эксперт


Вступление в Клуб: 19.09.2007
СообщениеВт Окт 08, 2019 16:13    Ответить с цитатой
Полезность: Нет оценки
Это была конструкция, Вам сложно пример найти в ЦФТ?
vtar
Эксперт


Вступление в Клуб: 20.03.2009
СообщениеСр Окт 09, 2019 07:42    Ответить с цитатой
Полезность: Нет оценки
Volod пишет:
Call Form.ScriptServerValidate(Nothing, "XXXX")
где XXXX валидируется в Проверке
If P_INFO = 'XXXX' then

в операции завести в переменных переменную v_id тип varchar2 32000 задать ей валидируемое имя v_id положить на форму. Тогда в клиент скрипте можно в нее писать id
v_id.text = id

В проверке можно
переменная tb типа type vr is table of ref[нужная ссылка ]
tb.delete;
Tb(1) := vr_id;
Tb.[списочная опер] ; -- запуск списочной над объектом
Эмиралька
Эксперт


Вступление в Клуб: 09.11.2015
СообщениеСр Окт 09, 2019 08:22    Ответить с цитатой
Полезность: Нет оценки
Псевдоним123 пишет:
я немного про другое..

как можно запустить из одной операции другую операцию без вызова формы?


В VB-скрипте операции задаёте вопрос. Если ответ - да, передаёте управление на сторону сервера с помощью ScriptServerValidate.

в тексте операции в секции валидации при обработке этого события пишете вызов операции.

простую вызывать так: refVariable.[CALL_OPERATION](P_PARAMS);

списочную так:
type arr_ref is table of [CLASS_OF_CALL_OPERATION];
arrList arr_ref;

begin
arr_ref(1) := ссылка_1;
arr_ref(2) := ссылка_2;
...
arr_ref(n) := ссылка_N;
arr_ref.[CALL_OPERATION](P_PARAMS);

групповую так:[CLASS_OF_CALL_OPERATION].[CALL_OPERATION](P_PARAMS);

Библиотечная сама по себе не вызывается.


ЗЫЖ ну вот, vtar меня опередил Smile
Volod
Эксперт


Вступление в Клуб: 19.09.2007
СообщениеСр Окт 09, 2019 09:29    Ответить с цитатой
Полезность: Нет оценки
У каждого свой хрустальный шар Smile
Псевдоним123
Участник - экстремал


Вступление в Клуб: 05.06.2018
СообщениеСр Окт 09, 2019 11:14    Ответить с цитатой
Полезность: Нет оценки
Эмиралька пишет:
Псевдоним123 пишет:
я немного про другое..

как можно запустить из одной операции другую операцию без вызова формы?


В VB-скрипте операции задаёте вопрос. Если ответ - да, передаёте управление на сторону сервера с помощью ScriptServerValidate.

в тексте операции в секции валидации при обработке этого события пишете вызов операции.

простую вызывать так: refVariable.[CALL_OPERATION](P_PARAMS);

списочную так:
type arr_ref is table of [CLASS_OF_CALL_OPERATION];
arrList arr_ref;

begin
arr_ref(1) := ссылка_1;
arr_ref(2) := ссылка_2;
...
arr_ref(n) := ссылка_N;
arr_ref.[CALL_OPERATION](P_PARAMS);

групповую так:[CLASS_OF_CALL_OPERATION].[CALL_OPERATION](P_PARAMS);

Библиотечная сама по себе не вызывается.


ЗЫЖ ну вот, vtar меня опередил Smile


не подскажет, что значит arr_ref(1) := ссылка_1; (ссылка_1)?
vtar
Эксперт


Вступление в Клуб: 20.03.2009
СообщениеСр Окт 09, 2019 15:38    Ответить с цитатой
Полезность: Нет оценки
id твоего объекта

Над которым операция исполняется

Типа this Smile
Эмиралька
Эксперт


Вступление в Клуб: 09.11.2015
СообщениеЧт Окт 10, 2019 14:42    Ответить с цитатой
Полезность: Нет оценки
Псевдоним123 пишет:
не подскажет, что значит arr_ref(1) := ссылка_1; (ссылка_1)?


Например:
Код:


declare
    type arr_ref is table of ref [AC_FIN] index by binary_integer;
    arrList arr_ref;

begin
    select x(x) in ::[AC_FIN] where rownum <= 10 into arrList;
    arrList.[SET_CONSOLIDATED](true);
end;
Показать сообщения:   
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Уроки ЦФТ-Банк для начинающих Часовой пояс: GMT + 3
На страницу 1, 2  След.
Страница 1 из 2

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