Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
lexoos Участник - экстремал
Вступление в Клуб: 06.11.2007
|
Ср Мар 18, 2009 08:30  %class в списочной операции на списке представлений |
|
Полезность: Нет оценки
|
Всем доброго дня!
Подскажите, можно ли както узнать для списочной операции, вызванной из списка представлений класс текущего типа? |
|
|
German Профи
Вступление в Клуб: 25.06.2007
|
Ср Мар 18, 2009 09:15   |
|
Полезность: Нет оценки
|
Можно подробнее? И не совсем понятно, почему списочная операция должна запускаться из списка представлений. Может быть, групповая? _________________ Homo homini |
|
|
lexoos Участник - экстремал
Вступление в Клуб: 06.11.2007
|
Ср Мар 18, 2009 09:20   |
|
Полезность: Нет оценки
|
создается операция, которая может обрабатывать выделенные экземпляры а, если указан, файл со списком экземпляров для обработки. во втором случае допустим запуск на списке представлений типа, но для работы операции нужно знать над каким именно типом (классом) запущена операция
просто из интереса хотелось узнать, но если такой возможности нет, запускаться на списке представлений не будет |
|
|
German Профи
Вступление в Клуб: 25.06.2007
|
Ср Мар 18, 2009 09:24   |
|
Полезность: Нет оценки
|
Если я правильно понял, в файле могут быть экземпляры различных ТБП. Тогда что показывает для каждого экземпляра экземпляр%class ? _________________ Homo homini |
|
|
lexoos Участник - экстремал
Вступление в Клуб: 06.11.2007
|
Ср Мар 18, 2009 09:26   |
|
Полезность: Нет оценки
|
не рассматриваем пока содержимое файла, класс нужен для работы элементов экранным форм (фильтраци представлений для выбора и т.п.) |
|
|
German Профи
Вступление в Клуб: 25.06.2007
|
Ср Мар 18, 2009 09:28   |
|
Полезность: Нет оценки
|
Тогда на основе чего операция должна догадаться о нужном классе? На основе представления, на котором находился курсор в момент запуска? _________________ Homo homini |
|
|
lexoos Участник - экстремал
Вступление в Клуб: 06.11.2007
|
Ср Мар 18, 2009 09:31   |
|
Полезность: Нет оценки
|
вот и спрашиваю, можно как то в операции узнать класс из списка представлений которого вызвана (не над экземпляром), ведь список представлений уже построен для определенного класса |
|
|
lexus Профи
Вступление в Клуб: 28.09.2007
|
Ср Мар 18, 2009 09:56   |
|
Полезность: Нет оценки
|
Еще возможен вариант, когда в списке - представляения от разных типов (родители-потомки).
Операция запускается руками из списка представлений...
То есть - операция конкретная. Она лежит в известном классе... Зачем его еще как-то узнавать?
Или я что-то не так понял? |
|
|
lexoos Участник - экстремал
Вступление в Клуб: 06.11.2007
|
Ср Мар 18, 2009 09:59   |
|
Полезность: Нет оценки
|
например операция лежит в кредитах, у которого есть известные потомки |
|
|
Alexsey Эксперт
Вступление в Клуб: 06.09.2007
|
Ср Мар 18, 2009 10:32   |
|
Полезность: Нет оценки
|
тут уже прозвучала фраза... чем не устраивает конструкция например
ну а далее по накатанной делаем с экземпляром то, что необходимо для того или иного класса
например всеми любимый GET из типа ZALOG
Код: | if cred%class = 'OVERDRAFTS' then
str := 'Договору на открытие овердрафта № '||cred.[NUM_DOG]||' от '||to_char(cred.[DATE_BEGIN], 'DD.MM.YYYY');
else
str := 'кредитного договора № '||cred.[NUM_DOG]||' от '||to_char(cred.[DATE_BEGIN], 'DD.MM.YYYY');
end if; |
_________________ всегда есть как минимум 2 выхода |
|
|
lexoos Участник - экстремал
Вступление в Клуб: 06.11.2007
|
Ср Мар 18, 2009 10:45   |
|
Полезность: Нет оценки
|
операция списочная и при запуске над списком представлений коллекция this пустая |
|
|
lexus Профи
Вступление в Клуб: 28.09.2007
|
Ср Мар 18, 2009 11:09   |
|
Полезность: Нет оценки
|
Думается мне, что никак.
Может сделать операцию все-таки групповую и в нужных типах создать статические экземпляры.
Тогда у групповой при запуске this будет проинициализирована ссылкой на этот статэкзепляр. И к нему тогда this%class.
Или - создать в каждом нужном ТБП свою перекрывающую операцию. Тогда, в каком бы типе не находился юзер - запускает операцию с одним и тем же названием, но подтягивается операция из текущего ТБП.
Цитата: | MACRO
Прагма MACRO определяет имя макро-переменной. При обращении в тексте операции к этому имени (обращение к макро-переменной осуществляется с помощью префикса ‘&’) происходит подстановка заданного текста макроса вместо его имени. Если же макрос ранее не был определен, тогда остается текст без префикса '&'. В тексте операций можно использовать предопределенные макросы:
<...>
• &METHOD$CLASS -- короткое имя ТБП, которому принадлежит операция,
<...>
|
Последний раз редактировалось: lexus (Ср Мар 18, 2009 11:11), всего редактировалось 1 раз |
|
|
lexoos Участник - экстремал
Вступление в Клуб: 06.11.2007
|
Ср Мар 18, 2009 11:10   |
|
Полезность: Нет оценки
|
Понял вроде, что никак, так для расширения кругозора |
|
|
mvg Участник - экстремал
Вступление в Клуб: 04.12.2008
|
Чт Сен 16, 2010 09:01   |
|
Полезность: Нет оценки
|
Код: |
if this is not null then
class_list := this%class;
else
class_list := PLP$CLASS;
end if;
|
|
|
|
Alexsey Эксперт
Вступление в Клуб: 06.09.2007
|
Чт Сен 16, 2010 22:49   |
|
Полезность: 1
|
Класс так же можно считать через клиент крипт
например:
Код: | Public Function Main(LastControl)
Main = True 'Результат валидатора (True, False, NULL)
If LastControl Is Nothing Then
vClass.Text = Form1.ClassId
Form1.ScriptServerValidate Form1, "INIT_CLASS"
ElseIf LastControl is PProject then
End If
End Function |
_________________ всегда есть как минимум 2 выхода |
|
|
|