Использование Выражения в Выражении над Выражением?

Здесь обсуждаем систему TDM/PDM/Workflow Lotsia PDM PLUS (PartY PLUS).
Ответить
Аватара пользователя
Александр
Активный участник
Сообщения: 1652
Зарегистрирован: 24 авг 2006, 08:06
Используемое ПО: Lotsia PDM PLUS
Откуда: 55.745578,37.665825

Использование Выражения в Выражении над Выражением?

Сообщение Александр »

:?: Подскажите кто знает.
Исходная позиция - выбор одного объекта в разных шагах действия Party по атрибуту 'Atr1' и переменным 'a' 'b' из действия в выражении поиска

1. Выражение
Найти всех у кого атрибут Atr1 равен a -'Выражение = а' (Все понятно)
2. Выражение в выражении
Найти всех у кого атрибут Atr1 равен '55' -'Выражение = if(b=1,'55','AA')' (Тоже все ясно)
3. Выражение в выражении над выражением
Найти всех у кого 15 бит Atr1 равен 0 - 'Выражение =~???~ if(abs( Int (Atr1 /16384) - Int (Atr1 / (16384*2) )*2 )=0,0,1) Как это можно сделать средствами Лоции?? Что писать вместо Atr1?

Т.е. Как использовать в выражении поиска выражение использующее само значение атрибута по которому строится поиск? Я понимаю что именно это значение мы и используем (в фоне) :!: Но есть ли какое то имя у этого значения - чтобы вставить его в функцию :?:
Другими словами строится запрос по атрибуту, и выбирается все - если значение этого атрибута (системная переменная с текущим значеним атрибута) прошедшее через функцию равно допустим '0' Как добраться до этой системной переменной :?:

Средсвами SQL по моему (не знаю) можно это сделать - а средствами Лоции??
:roll:

Софт - RicCRM<<LotsiaPDM(4.40)<<MsSQL(5/8)
Уровень администрирования - Альтернативный

Аватара пользователя
Anderyt
Активный участник
Сообщения: 777
Зарегистрирован: 15 июл 2004, 13:15
Используемое ПО: Lotsia PDM PLUS
Откуда: Тюмень
Контактная информация:

Сообщение Anderyt »

хм... не хватило терпения о конца проверить, но пришла в голову такая мысль. а что если проверять, не больше ли значение атрибута чем сумма всех старших разрядов? ну или там как они называются.. вообщем, если всего 16 разрядов, а мы хотим проверить значение 12-го, то нужно сравнить атрибут с 2^15+2^14+2^13. если атрибут больше - то 12-й = 1, если меньше - то 12-й = 0... или не все так просто?
я уже забыл все детали, для меня выражение abs( Int (Atr1 /16384) - Int (Atr1 / (16384*2) )*2 ) - одна большая тайна...
лучше день потерять, потом за пять минут долететь!
Аватара пользователя
Anderyt
Активный участник
Сообщения: 777
Зарегистрирован: 15 июл 2004, 13:15
Используемое ПО: Lotsia PDM PLUS
Откуда: Тюмень
Контактная информация:

Сообщение Anderyt »

а, нет.... совсем не так...
хм... думаем дальше...
лучше день потерять, потом за пять минут долететь!
Аватара пользователя
Александр
Активный участник
Сообщения: 1652
Зарегистрирован: 24 авг 2006, 08:06
Используемое ПО: Lotsia PDM PLUS
Откуда: 55.745578,37.665825

Сообщение Александр »

Понимаешь, все дело в том, как в выражение вставить значение атрибута?
>а мы хотим проверить значение 12-го, то нужно сравнить атрибут с 2^15+2^14+2^13.
Как сравнить? Где в условиях отбора объекта, и как вставить значение атрибута подлежащего сравнению?

Условия отбора/Атрибуты/Задание условия поиска объектов по атрибутам
(найти все объекты с 15 нулевым битом атрибута 'Информационный')
1. Тип - 'Атрибут'
2. Атрибут - 'Информационный'
3. Опер - '='
4. Значение (выражение) - 'if(abs( Int (Информационный /16384) - Int (Информационный / (16384*2) )*2 )=0,0,1)

Как в формулу засунуть атрибут Информационный по которому в то же время осуществляется отбор :?:

P/S Формула простая

Код: Выделить всё

Без знака( Целое(Байт/№ бита) - Целое(Байт/(№ бита*2))*2 ) 

Софт - RicCRM<<LotsiaPDM(4.40)<<MsSQL(5/8)
Уровень администрирования - Альтернативный

Аватара пользователя
Anderyt
Активный участник
Сообщения: 777
Зарегистрирован: 15 июл 2004, 13:15
Используемое ПО: Lotsia PDM PLUS
Откуда: Тюмень
Контактная информация:

Сообщение Anderyt »

дак вот в том то и дело, что не вставлять значение атрибута в выражение, а СРАВНИВАТЬ это значение с чем то...
то есть
Атрибут / Информационный / > / число
или
Атрибут / Информационный / < / число
или и то и другое...
весь вопрос в том, что это за число, сравнив с которым значение, мы бы смогли понять, чему равен определенный бит этого значения?
или это нереально, найти такие числа?... мне уже начинает казаться, что нереально :-(
лучше день потерять, потом за пять минут долететь!
Аватара пользователя
Anderyt
Активный участник
Сообщения: 777
Зарегистрирован: 15 июл 2004, 13:15
Используемое ПО: Lotsia PDM PLUS
Откуда: Тюмень
Контактная информация:

Сообщение Anderyt »

а... вообщем, я снова за свое - если не могу найти решение проблемы, которая связана с имеющейся концепцией организации данных, то пытаюсь изменить концепцию так, чтобы проблемы не было (как и в случае с ветвлением в отчетах и связанными объектами) ;-)
если набор логических данных 10011001 представить не в виде числа 153, а в виде строки 8=1;7=0;6=0;5=1;4=1;3=0;2=0;1=1, то можно будет:
в действиях изменять значение определенного бита (если 4-й = 1 и мы хотим сделать его = 0, то ищем строчку 4=1, отрезаем все ДО этой подстроки, добавляем 4=0 и добавляем то, что было в исходной строке после найденной подстроки)
в действиях определять, чему равен определенный бит (если в строке есть подстрока 4=1, то 4-й бит = 1, если нету - то он = 0)
в формах объектов находить значение определенного бита (как в действии, поиском подстроки)
и наконец!
в действии искать объекты с опред-м значением опред. бита, с пом-ю запроса
Атрибут/Информационный/*/%4=1
вот...
лучше день потерять, потом за пять минут долететь!
Аватара пользователя
Александр
Активный участник
Сообщения: 1652
Зарегистрирован: 24 авг 2006, 08:06
Используемое ПО: Lotsia PDM PLUS
Откуда: 55.745578,37.665825

Сообщение Александр »

Спасибо конечно :?
но вопрос не в том как обойти проблему (мы ее и так обошли немного подругому) - а в том можно ли использовать некую системную переменную содержащую значение текущего атрибута в выражении??
Ведь эта переменная где то есть точно, но просто закрыта от пользователей :?
Ладно, уже спросил у Техподдержки - ответят - напишу.

Софт - RicCRM<<LotsiaPDM(4.40)<<MsSQL(5/8)
Уровень администрирования - Альтернативный

Аватара пользователя
Anderyt
Активный участник
Сообщения: 777
Зарегистрирован: 15 июл 2004, 13:15
Используемое ПО: Lotsia PDM PLUS
Откуда: Тюмень
Контактная информация:

Сообщение Anderyt »

:) а как обошли, если не секрет?
лучше день потерять, потом за пять минут долететь!
Аватара пользователя
Александр
Активный участник
Сообщения: 1652
Зарегистрирован: 24 авг 2006, 08:06
Используемое ПО: Lotsia PDM PLUS
Откуда: 55.745578,37.665825

Сообщение Александр »

Информационный байт/байты(числовые атрибуты) мы используем со многими объектами для хранения флагов и использования их в действиях и отображения в формах но в данном контексте еще и для выбора/поиска объектов
смотрим картинку
http://www.lplm.ru/phpBB2/viewtopic.php?t=156 где нарисована форма с флагами
Смысл следующий есть байт (например) 10001000 каждый бит которого визуально именован (Машиностроение, ГИС и т.д)
Т.к. нет инструмента для предварительного анализа атрибута в поиске/выборе мы вводим 'искуственную' строку которая в соответсвии с информационным байтом принимает вид:
10001000 -'Машиностроение;ГИС'
10000000 -'Машиностроение'
00100001 -'AutoDesk;Литье'
00000000 -''
соответственно делаем поиск по искуственной(вспомогательной) строке
В общем теже... вид сбоку :lol: Не хотели использовать лишнее-но пока пришлось :?

Софт - RicCRM<<LotsiaPDM(4.40)<<MsSQL(5/8)
Уровень администрирования - Альтернативный

Аватара пользователя
Anderyt
Активный участник
Сообщения: 777
Зарегистрирован: 15 июл 2004, 13:15
Используемое ПО: Lotsia PDM PLUS
Откуда: Тюмень
Контактная информация:

Сообщение Anderyt »

а, ну да, действительно... уже было упоминание об этой строке...
вот только... зачем хранить два, по сути одинаковых, атрибута?
ну это уже так, оффтопик, как обычно :-)
лучше день потерять, потом за пять минут долететь!
Аватара пользователя
Александр
Активный участник
Сообщения: 1652
Зарегистрирован: 24 авг 2006, 08:06
Используемое ПО: Lotsia PDM PLUS
Откуда: 55.745578,37.665825

Сообщение Александр »

Лоция с битами и предварительным анализом атрибута - не работает :roll:
а жаль...

тема закрыта :evil:

Софт - RicCRM<<LotsiaPDM(4.40)<<MsSQL(5/8)
Уровень администрирования - Альтернативный

Ответить