Можно определить из какого представления запущена опер-ия ?
На страницу Пред. 1, 2
|
Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
devor Профи
Вступление в Клуб: 13.02.2012
|
Вт Сен 30, 2014 10:41   |
|
Полезность: Нет оценки
|
Alkov пишет: | devor пишет: | Alkov пишет: | devor пишет: | Alkov пишет: | devor пишет: | Alkov пишет: |
Контекст по вышеописанному не подходит , т.к. не знаю как сделать изменение контекста при покидании/переключении из нашего представления в другое и обратно. |
На представление повесить операцию-фильтр, где взводить контекст или переменные. |
Взводить то понятно где, не понятно как сбросить при переключении в другое... |
Каждое представление может переопределять контекст. |
При переключении между уже открытыми представлениями такого не будет, т.к. представление при таком переключении заново не переоткрывается. |
Значит разные представления должны свой контекст заполнять. И тогда операция будет знать, какие представления (проверки) уже выполнены. |
Это ничего не даст, операция узнает какие представления открыты , но не из какого она запущена. |
Зачем операции знать из какого представления запущено?
Если дело в проверках (условии) представления, то они при переключении между уже открытыми представлениями повторно не выполняются. |
|
 |
Alkov Профи
Вступление в Клуб: 23.09.2010
|
Ср Окт 01, 2014 07:59   |
|
Полезность: Нет оценки
|
devor пишет: |
Зачем операции знать из какого представления запущено?
|
В Типе есть представление где отображены экземпляры, при это выполнены определённые проверки.
И есть операция которая выполняет аналогичные проверки перед запуском.
Операция может запускаться с любого представления типа.
Хотелось бы если запуск операции производится из "нашего" представления, то не выполнять повторно те же самые проверки...
devor пишет: |
Если дело в проверках (условии) представления, то они при переключении между уже открытыми представлениями повторно не выполняются. |
Ага я об этом сразу сказал,
троля качаешь ? |
|
 |
devor Профи
Вступление в Клуб: 13.02.2012
|
Ср Окт 01, 2014 08:16   |
|
Полезность: Нет оценки
|
Alkov пишет: |
devor пишет: |
Если дело в проверках (условии) представления, то они при переключении между уже открытыми представлениями повторно не выполняются. |
Ага я об этом сразу сказал,
троля качаешь ? |
Если представление не выполняется заново, то чем не устраивает контекст, взведенный представлением при первом запуске?
Проверки уже выполнены, контекст представление взвело, операция может этот контекст прочитать и проверок не делать. |
|
 |
Alkov Профи
Вступление в Клуб: 23.09.2010
|
Ср Окт 01, 2014 10:08   |
|
Полезность: Нет оценки
|
devor пишет: | Alkov пишет: |
devor пишет: |
Если дело в проверках (условии) представления, то они при переключении между уже открытыми представлениями повторно не выполняются. |
Ага я об этом сразу сказал,
троля качаешь ? |
Если представление не выполняется заново, то чем не устраивает контекст, взведенный представлением при первом запуске?
Проверки уже выполнены, контекст представление взвело, операция может этот контекст прочитать и проверок не делать. |
Точно троль.
Не устраивает тем что можно переключиться в другое представление, ранее открытое, и запустить операцию там. |
|
 |
Random Эксперт
Вступление в Клуб: 27.06.2011
|
Ср Окт 01, 2014 11:25   |
|
Полезность: Нет оценки
|
Alkov пишет: | Не устраивает тем что можно переключиться в другое представление, ранее открытое, и запустить операцию там. |
Представляю себе заявочку сделать локал - ещё одно представление. И запускать себе операции в этом никем не учтённом новом представлении и вводить в головняки всех причастных...
По теме: когда мне встретилась подобная задача, удалось подумать и переработать архитектуру так, чтобы не возникало нужды в таких извращениях.
Может, начнём с этого? |
|
 |
devor Профи
Вступление в Клуб: 13.02.2012
|
Ср Окт 01, 2014 11:33   |
|
Полезность: Нет оценки
|
Alkov пишет: | devor пишет: | Alkov пишет: |
devor пишет: |
Если дело в проверках (условии) представления, то они при переключении между уже открытыми представлениями повторно не выполняются. |
Ага я об этом сразу сказал,
троля качаешь ? |
Если представление не выполняется заново, то чем не устраивает контекст, взведенный представлением при первом запуске?
Проверки уже выполнены, контекст представление взвело, операция может этот контекст прочитать и проверок не делать. |
Точно троль.
Не устраивает тем что можно переключиться в другое представление, ранее открытое, и запустить операцию там. |
Каждое представление устанавливает свой контекст 'VW_1', 'VW_2', 'VW_3'. А потом хоть запереключайся между ними - все контекстные переменные есть и операция знает какие представления были запущены (какие проверки были сделаны). |
|
 |
Alex294 Участник со стажем
Вступление в Клуб: 02.06.2013
|
Ср Окт 01, 2014 13:48   |
|
Полезность: Нет оценки
|
Alkov пишет: | devor пишет: |
Зачем операции знать из какого представления запущено?
|
В Типе есть представление где отображены экземпляры, при это выполнены определённые проверки.
И есть операция которая выполняет аналогичные проверки перед запуском.
Операция может запускаться с любого представления типа.
Хотелось бы если запуск операции производится из "нашего" представления, то не выполнять повторно те же самые проверки...
|
Кто мешает выкинуть проверки в отдельную операцию, которая в зависимости от проверок будет или не будет вызывать операцию без проверок. А к "нашему" представлению привязать операцию без проверок. |
|
 |
Alkov Профи
Вступление в Клуб: 23.09.2010
|
Чт Окт 02, 2014 04:20   |
|
Полезность: Нет оценки
|
Alex294 пишет: | Alkov пишет: | devor пишет: |
Зачем операции знать из какого представления запущено?
|
В Типе есть представление где отображены экземпляры, при это выполнены определённые проверки.
И есть операция которая выполняет аналогичные проверки перед запуском.
Операция может запускаться с любого представления типа.
Хотелось бы если запуск операции производится из "нашего" представления, то не выполнять повторно те же самые проверки...
|
Кто мешает выкинуть проверки в отдельную операцию, которая в зависимости от проверок будет или не будет вызывать операцию без проверок. А к "нашему" представлению привязать операцию без проверок. |
Уже было. Мешает дистрибутив. У них в представлениях стоит - Все операции. Соответственно пользователи увидят и операцию без проверок тоже. |
|
 |
Alkov Профи
Вступление в Клуб: 23.09.2010
|
Чт Окт 02, 2014 04:22   |
|
Полезность: Нет оценки
|
Random пишет: | Alkov пишет: | Не устраивает тем что можно переключиться в другое представление, ранее открытое, и запустить операцию там. |
Представляю себе заявочку сделать локал - ещё одно представление. И запускать себе операции в этом никем не учтённом новом представлении и вводить в головняки всех причастных...
По теме: когда мне встретилась подобная задача, удалось подумать и переработать архитектуру так, чтобы не возникало нужды в таких извращениях.
Может, начнём с этого? |
Пришли к этому же. |
|
 |
Alkov Профи
Вступление в Клуб: 23.09.2010
|
Чт Окт 02, 2014 04:25   |
|
Полезность: Нет оценки
|
devor пишет: | Alkov пишет: | devor пишет: | Alkov пишет: |
devor пишет: |
Если дело в проверках (условии) представления, то они при переключении между уже открытыми представлениями повторно не выполняются. |
Ага я об этом сразу сказал,
троля качаешь ? |
Если представление не выполняется заново, то чем не устраивает контекст, взведенный представлением при первом запуске?
Проверки уже выполнены, контекст представление взвело, операция может этот контекст прочитать и проверок не делать. |
Точно троль.
Не устраивает тем что можно переключиться в другое представление, ранее открытое, и запустить операцию там. |
Каждое представление устанавливает свой контекст 'VW_1', 'VW_2', 'VW_3'. А потом хоть запереключайся между ними - все контекстные переменные есть и операция знает какие представления были запущены (какие проверки были сделаны). |
Наша песня хороша- начинай сначала.
Толку-то что операция знает какие представления были запущены.
Если её запустили не из нужного представления, то не факт что этот экземпляр есть в нужном представлении где были выполнены проверки. |
|
 |
devor Профи
Вступление в Клуб: 13.02.2012
|
Чт Окт 02, 2014 11:44   |
|
Полезность: Нет оценки
|
Alkov пишет: | devor пишет: | Alkov пишет: | devor пишет: | Alkov пишет: |
devor пишет: |
Если дело в проверках (условии) представления, то они при переключении между уже открытыми представлениями повторно не выполняются. |
Ага я об этом сразу сказал,
троля качаешь ? |
Если представление не выполняется заново, то чем не устраивает контекст, взведенный представлением при первом запуске?
Проверки уже выполнены, контекст представление взвело, операция может этот контекст прочитать и проверок не делать. |
Точно троль.
Не устраивает тем что можно переключиться в другое представление, ранее открытое, и запустить операцию там. |
Каждое представление устанавливает свой контекст 'VW_1', 'VW_2', 'VW_3'. А потом хоть запереключайся между ними - все контекстные переменные есть и операция знает какие представления были запущены (какие проверки были сделаны). |
Наша песня хороша- начинай сначала.
Толку-то что операция знает какие представления были запущены.
Если её запустили не из нужного представления, то не факт что этот экземпляр есть в нужном представлении где были выполнены проверки. |
1)Фильтр представления может формировать кеш проверенных экземлляров, а представление может вычитывать данные из кеша. Операция может проверять кеши каждого представления. Это хороший способ.
2)Представление сделать PL/Plus и подменять поле CLASS_ID на 'VW_1'/'VW_2'/'VW_3' - далее простая операция при обращении к классу this%class будет получать значение параметра PLP$CLASS, куда навигатор передаст именно подмененный class_id из представления, который можно проанализировать и построить на этом логику. Это не очень хороший способ, зато простой. |
|
 |
Alkov Профи
Вступление в Клуб: 23.09.2010
|
Пт Окт 03, 2014 03:05   |
|
Полезность: Нет оценки
|
devor пишет: |
1)Фильтр представления может формировать кеш проверенных экземлляров, а представление может вычитывать данные из кеша. Операция может проверять кеши каждого представления. Это хороший способ.
2)Представление сделать PL/Plus и подменять поле CLASS_ID на 'VW_1'/'VW_2'/'VW_3' - далее простая операция при обращении к классу this%class будет получать значение параметра PLP$CLASS, куда навигатор передаст именно подмененный class_id из представления, который можно проанализировать и построить на этом логику. Это не очень хороший способ, зато простой. |
Вот это продуктивно. Интересные костыли вышли.
По 1. "представление может вычитывать данные из кеша"
в принципе я тут представляю пару вариантов, а как вы предлагаете?
По 2. Надо попробовать, как Простая операция среагирует на то что ей пытаются подсунуть объект не её класса... |
|
 |
devor Профи
Вступление в Клуб: 13.02.2012
|
Пт Окт 03, 2014 06:39   |
|
Полезность: Нет оценки
|
Alkov пишет: | devor пишет: |
1)Фильтр представления может формировать кеш проверенных экземлляров, а представление может вычитывать данные из кеша. Операция может проверять кеши каждого представления. Это хороший способ.
2)Представление сделать PL/Plus и подменять поле CLASS_ID на 'VW_1'/'VW_2'/'VW_3' - далее простая операция при обращении к классу this%class будет получать значение параметра PLP$CLASS, куда навигатор передаст именно подмененный class_id из представления, который можно проанализировать и построить на этом логику. Это не очень хороший способ, зато простой. |
Вот это продуктивно. Интересные костыли вышли.
По 1. "представление может вычитывать данные из кеша"
в принципе я тут представляю пару вариантов, а как вы предлагаете?
По 2. Надо попробовать, как Простая операция среагирует на то что ей пытаются подсунуть объект не её класса... |
1)В фильтре представления pipeline функция, откуда читают данные и представление и операция. Либо для операции можно добавить отдельный кеш.
2)Нормально среагирует. Для надежности можно обращаться не к this%class, а напрямую к переменной PLP$CLASS - так даже лучше |
|
 |
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
|