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

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


Вступление в Клуб: 03.09.2007
СообщениеСб Апр 05, 2008 09:10    Ответить с цитатой
Полезность: Нет оценки
А если операцию печати будут вызывать несколько других операций, то как можно определять из какой именно она была вызвана?

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

Может можно сделать код

Код:
if P_MESSAGE = 'DEFAULT' then
   P#MEMO := ::[ВАШ_ТБП].[ИМЯ_ВЫЗЫВАЮЩЕЙ_ОПЕРАЦИИ].P_STR;
end if;

более универсальным?
Alexsey
Эксперт


Вступление в Клуб: 06.09.2007
СообщениеСб Апр 05, 2008 09:17    Ответить с цитатой
Полезность: Нет оценки
Kozyrev пишет:
А если операцию печати будут вызывать несколько других операций, то как можно определять из какой именно она была вызвана?

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

Может можно сделать код

Код:
if P_MESSAGE = 'DEFAULT' then
   P#MEMO := ::[ВАШ_ТБП].[ИМЯ_ВЫЗЫВАЮЩЕЙ_ОПЕРАЦИИ].P_STR;
end if;

более универсальным?

странно.. но судя по коду тут получается что для заполнения реквизита мемо мы вызываем операцию "ИМЯ_ВЫЗЫВАЮЩЕЙ_ОПЕРАЦИИ" из ТБП "ВАШ_ТБП"
Код:
if P_MESSAGE = 'DEFAULT' then
   P#MEMO := ::[ВАШ_ТБП].[ИМЯ_ВЫЗЫВАЕМОЙ_ОПЕРАЦИИ].P_STR;
end if;

да и если честно я не вижу смысла определять из какой именно операции произошел вызов операции печати
т.к. при вызове операции мы передаем необходимое нам число параметров печати...
_________________
всегда есть как минимум 2 выхода
Kozyrev
Участник - экстремал


Вступление в Клуб: 03.09.2007
СообщениеСб Апр 05, 2008 09:49    Ответить с цитатой
Полезность: Нет оценки
Код:
if P_MESSAGE = 'DEFAULT' then
   P#MEMO := ::[ВАШ_ТБП].[ИМЯ_ВЫЗЫВАЮЩЕЙ_ОПЕРАЦИИ].P_STR;
end if;

Не проходит.
Alexsey
Эксперт


Вступление в Клуб: 06.09.2007
СообщениеСб Апр 05, 2008 09:52    Ответить с цитатой
Полезность: Нет оценки
все верно, получается что ты вызываешь операцию для заполнения параметра P#MEMO
_________________
всегда есть как минимум 2 выхода
Kozyrev
Участник - экстремал


Вступление в Клуб: 03.09.2007
СообщениеСб Апр 05, 2008 09:58    Ответить с цитатой
Полезность: Нет оценки
Извиняюсь. Наоборот!

Код:
if P_MESSAGE = 'DEFAULT' then
   P#MEMO := ::[ВАШ_ТБП].[ИМЯ_ВЫЗЫВАЮЩЕЙ_ОПЕРАЦИИ].P_STR;
end if;

Проходит.

Код:
if P_MESSAGE = 'DEFAULT' then
   P#MEMO := ::[ВАШ_ТБП].[ИМЯ_ВЫЗЫВАЕМОЙ_ОПЕРАЦИИ].P_STR;
end if;

Не проходит.
Alexsey
Эксперт


Вступление в Клуб: 06.09.2007
СообщениеСб Апр 05, 2008 10:03    Ответить с цитатой
Полезность: Нет оценки
тогда я видимо в этой жизни чего то пропустил...
судя по коду вы вызываете операцию для заполнения ну никак наоборот... либо либо считываете значение реквизита...
вот тому яркий пример

Код:
begin
   if p_message = 'DEFAULT' then
      P#1:= this.[IN_FILE_TEXT];
   end if;
end;

_________________
всегда есть как минимум 2 выхода
Показать сообщения:   
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Разработка в PL/PLUS. Оптимизация запросов Oracle Часовой пояс: GMT + 3
На страницу Пред.  1, 2
Страница 2 из 2

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