Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Псевдоним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 меня опередил  |
|
 |
Volod Эксперт
Вступление в Клуб: 19.09.2007
|
Ср Окт 09, 2019 09:29   |
|
Полезность: Нет оценки
|
У каждого свой хрустальный шар  |
|
 |
Псевдоним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 меня опередил  |
не подскажет, что значит arr_ref(1) := ссылка_1; (ссылка_1)? |
|
 |
vtar Эксперт
Вступление в Клуб: 20.03.2009
|
Ср Окт 09, 2019 15:38   |
|
Полезность: Нет оценки
|
id твоего объекта
Над которым операция исполняется
Типа this  |
|
 |
Эмиралька Эксперт
Вступление в Клуб: 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;
|
|
|
 |
|