|
Выбор данных в значение реквизита из перечня ("справочника") в разных формах ввода
|
|||
---|---|---|---|
#18+
LSV, С другой стороны конечно, если есть выборка договоров и нужно отобразить в лукапе только закрытые, то лень наследоваться и создовать выборку "Закрытые договоры", проще в фильтре прописать CloseDate is not null. Но ведь не ровён час, выборка "Закрытые договоры" понадобится еще где-то, а значит выражение CloseDate is not null задублируется. Потом вы решите что закрытые не по дате определяются, а по статусу и придется выпиливать все эти места. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2015, 11:59 |
|
Выбор данных в значение реквизита из перечня ("справочника") в разных формах ввода
|
|||
---|---|---|---|
#18+
dma_caviarLSVплодит формы и их не может быть бесконечно много. Если есть наследование, нехай себе будет их много. Эта произвольная форма может отличаться от предка парой символов и индивидуальным наименованием. Зато все разложено по полкам - вот конкретно выбрка для таких-то случаев, вот для таких-то.Возможность передачи параметра в лукап-форму все таки нужна, т.к. значений параметра может быть много. индивидуальных форм не напасешься. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2015, 12:00 |
|
Выбор данных в значение реквизита из перечня ("справочника") в разных формах ввода
|
|||
---|---|---|---|
#18+
[quot LSV]Тоже задавался вопросом передачи доп. фильтра при лукапе. Это может быть полезно, особенно если фильтр должен меняться у разных строк датасета. Да, так и сделано: связь от "Источник значения параметра в правиле отборе" на "Реквизит в структуре данных". При запуске выбора значение этого реквизита в форме будет взято как значение конкретного параметра критерия. LSVУ меня в фреймворке есть возможность открывать разные формы в завис. от условия. Но это решает проблему лишь частично, т.к. плодит формы и их не может быть бесконечно много. То бишь количество форм соттветствует количеству параметризованных критериев отбора? Если да, то роде не страшно, и их количество таки поддаётся пересчёту комбинаторикой :). А при подходе "выборка из перечня" сама есть новый "перечень" ещё и оценивается +- количеством узлов сбалансированного дерева с глубиной в количество реквизитов из перечня. И, по-моему, dma_caviar так и предлагал делать (с наследованием). Вопрос в следующем: - какие комбинации фильтров "востребованы"? (это зависит в том числе и от конретного внедрения); - что нужно сделать (настроить или разработать+перекомпилировать), если нужной комбинации фильтров нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2015, 12:07 |
|
Выбор данных в значение реквизита из перечня ("справочника") в разных формах ввода
|
|||
---|---|---|---|
#18+
LSVdma_caviarпропущено... Если есть наследование, нехай себе будет их много. Эта произвольная форма может отличаться от предка парой символов и индивидуальным наименованием. Зато все разложено по полкам - вот конкретно выбрка для таких-то случаев, вот для таких-то.Возможность передачи параметра в лукап-форму все таки нужна, т.к. значений параметра может быть много. индивидуальных форм не напасешься. Для лукапа тоже надо все сделать настраиваемой и при этом надо думать что лукапы тоже попадают под действия разграничение прав Делается это так ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2015, 12:08 |
|
Выбор данных в значение реквизита из перечня ("справочника") в разных формах ввода
|
|||
---|---|---|---|
#18+
АнатоЛойiscrafmЛишнее все то, что сверх банальной выборки с передаваемой в нее параметром, какой тип записей отбирать в нее. Подумайте сами, если все это можно сделать банально "where st = <значение параметра> ", к тому же индексированное и т.д., то в чем смысл делать столько лишнего? Что бы кому-то показать что каким то образом домайн все же может заработать, просто нужно смирится с кучей непонятно чего. Боюсь сделать много лишних домыслов, чтобы от "настройки банальной выборки с передаваемой в нее параметром, какой тип записей отбирать в нее" перейти к "хранения этих настроек в РСУБД". Вас не затруднит простенькую структуру набросать? не совсем понимаю какой набросок Вы хотите... есть таблица документов, есть таблица контрагентов. У контрагента есть поле состояния, допустим поле с именем st. Это поле содержит значение 0 или 1, в простейшем случае. Для выбора возможных значений из таблицы контрагентов используется банальная выборка с условием "where st = <нужное значение передаваемого параметра>". ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2015, 12:10 |
|
Выбор данных в значение реквизита из перечня ("справочника") в разных формах ввода
|
|||
---|---|---|---|
#18+
ViPRos, при том это только один из способов лукапа (жесткого) механизм лукап воще то должен быть интеллектуальным, в ВИПРОС встроен 4 алгоритма ранжированных по приоритетам (тоже настраивается) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2015, 12:14 |
|
Выбор данных в значение реквизита из перечня ("справочника") в разных формах ввода
|
|||
---|---|---|---|
#18+
ViPRos...лукапы тоже попадают под действия разграничение прав... ..Делается это так.. Вот ещё интересные требования/фичи всплыли в топике: 1. Право видеть значение из перечня независимо от реквизита, для которого выполняется выбор 2. Право видеть значение из перечня при выборе в этот реквизит (т.е. в зависимости от пользователя, результат предлагаемой выборки разный) 3. Тип значения реквизита может быть неким множеством, которое есть объединение нескольких множеств-перечней (в терминологии ViPRos - нескольких макротипов :). ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2015, 12:15 |
|
Выбор данных в значение реквизита из перечня ("справочника") в разных формах ввода
|
|||
---|---|---|---|
#18+
Вопрос в следующем: - какие комбинации фильтров "востребованы"? (это зависит в том числе и от конретного внедрения); - что нужно сделать (настроить или разработать+перекомпилировать), если нужной комбинации фильтров нет. Лукап-форма должна иметь вх.параметры для фильтра. Например: Справочник контрагентов. Его производные: список заказчиков, список поставщиков, список "наших ЮЛ" и т.д. Сложность выборки может быть довольно сложной. Например, "список заказчиков-юрлиц, у кот. задолженность выше ХХХ". На каждую "ступеньку усложнения" нужен отдельный параметр. По умолчанию параметр =0 (т.е. не фильтруется). Я уже представляю, как передавать фильтры в лукап-форму. Со временем сделаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2015, 12:16 |
|
Выбор данных в значение реквизита из перечня ("справочника") в разных формах ввода
|
|||
---|---|---|---|
#18+
ViPRosLSVпропущено... Возможность передачи параметра в лукап-форму все таки нужна, т.к. значений параметра может быть много. индивидуальных форм не напасешься. Для лукапа тоже надо все сделать настраиваемой и при этом надо думать что лукапы тоже попадают под действия разграничение прав Делается это так По поводу разграничения прав "построчно для выборки"... ну это можно средстваи sql решить в каком-то конкретном случае. Например есть список договоров, у кого-то есть доступ к одним договорам, у кого-то в другим, эта инфа хранится в отдельной таблице, что-то типа "AgreementRoles" с полями AgreementID и RoleID (или UserID). Делаем джоин или другой финт. А в скрипт передаем текущую сессию или текущего юзера. Я к тому что на эту тему не обязательно усложнять метаданные иначе есть риск перемешать метаданные с данными, что очень плохо в нашем деле. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2015, 12:18 |
|
Выбор данных в значение реквизита из перечня ("справочника") в разных формах ввода
|
|||
---|---|---|---|
#18+
ViPRosViPRos, при том это только один из способов лукапа (жесткого) механизм лукап воще то должен быть интеллектуальным, в ВИПРОС встроен 4 алгоритма ранжированных по приоритетам (тоже настраивается) "Ранжирование" в вашем случае сильно отличается от некоего правила сортировки перечня, где поле для сортировки заполняется как некая функция: от простого значения реквизитов перечня до "сначала те, у которых остатки есть " и даже до "первыми идут те, которые данный пользователь в этом месте сегодня уже выбирал"? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2015, 12:19 |
|
Выбор данных в значение реквизита из перечня ("справочника") в разных формах ввода
|
|||
---|---|---|---|
#18+
т.е. в зависимости от пользователя, результат предлагаемой выборки разныйЭто решается довольно просто: по юзерИД в запросе есть фильтр а-ля WHERE GetUserRight('ICanSeeIt', USER_ID() )=1 ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2015, 12:21 |
|
Выбор данных в значение реквизита из перечня ("справочника") в разных формах ввода
|
|||
---|---|---|---|
#18+
iscrafmАнатоЛойпропущено... Боюсь сделать много лишних домыслов, чтобы от "настройки банальной выборки с передаваемой в нее параметром, какой тип записей отбирать в нее" перейти к "хранения этих настроек в РСУБД". Вас не затруднит простенькую структуру набросать? не совсем понимаю какой набросок Вы хотите... есть таблица документов, есть таблица контрагентов. У контрагента есть поле состояния, допустим поле с именем st. Это поле содержит значение 0 или 1, в простейшем случае. Для выбора возможных значений из таблицы контрагентов используется банальная выборка с условием "where st = <нужное значение передаваемого параметра>". Смотрим условие в первом посте "настройка хранится в реляционной СУБД". Можете нарисовать таблицы и внешние ключи, обеспечивающие хранение этой настройки? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2015, 12:22 |
|
Выбор данных в значение реквизита из перечня ("справочника") в разных формах ввода
|
|||
---|---|---|---|
#18+
ViPRosViPRos, при том это только один из способов лукапа (жесткого) механизм лукап воще то должен быть интеллектуальным, в ВИПРОС встроен 4 алгоритма ранжированных по приоритетам (тоже настраивается) Вот это как раз потому что у вас немного другой класс системы. В которой такие вещи настраиваются не написанием sql, а через декларативное перечисление правил отбора (могу ошибаться) и тут понятное дело, нужны приоритеты. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2015, 12:26 |
|
Выбор данных в значение реквизита из перечня ("справочника") в разных формах ввода
|
|||
---|---|---|---|
#18+
ViPRos, А можно ли кстати, в ВИПРОСе вот таким вот наглым образом взять и прописать sql скрипт? [quot LSV]WHERE GetUserRight('ICanSeeIt', USER_ID() )=1 ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2015, 12:28 |
|
Выбор данных в значение реквизита из перечня ("справочника") в разных формах ввода
|
|||
---|---|---|---|
#18+
АнатоЛойViPRosViPRos, при том это только один из способов лукапа (жесткого) механизм лукап воще то должен быть интеллектуальным, в ВИПРОС встроен 4 алгоритма ранжированных по приоритетам (тоже настраивается) "Ранжирование" в вашем случае сильно отличается от некоего правила сортировки перечня, где поле для сортировки заполняется как некая функция: от простого значения реквизитов перечня до "сначала те, у которых остатки есть " и даже до "первыми идут те, которые данный пользователь в этом месте сегодня уже выбирал"? ранжируются эти алгоритмы предлагается лукап по первому (обычно это полностью устраивает), дальше другие сбор всего массива по всем алгоритмам может быть затратным ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2015, 12:30 |
|
Выбор данных в значение реквизита из перечня ("справочника") в разных формах ввода
|
|||
---|---|---|---|
#18+
[quot dma_caviar]ViPRos, А можно ли кстати, в ВИПРОСе вот таким вот наглым образом взять и прописать sql скрипт? LSVпропущено... нет нужды а так можно ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2015, 12:37 |
|
Выбор данных в значение реквизита из перечня ("справочника") в разных формах ввода
|
|||
---|---|---|---|
#18+
АнатоЛойiscrafmпропущено... не совсем понимаю какой набросок Вы хотите... есть таблица документов, есть таблица контрагентов. У контрагента есть поле состояния, допустим поле с именем st. Это поле содержит значение 0 или 1, в простейшем случае. Для выбора возможных значений из таблицы контрагентов используется банальная выборка с условием "where st = <нужное значение передаваемого параметра>". Смотрим условие в первом посте "настройка хранится в реляционной СУБД". Можете нарисовать таблицы и внешние ключи, обеспечивающие хранение этой настройки? я не сторонник хранения каких-то настроек в реляционных БД, поэтому не могу нарисовать такое. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2015, 12:39 |
|
Выбор данных в значение реквизита из перечня ("справочника") в разных формах ввода
|
|||
---|---|---|---|
#18+
иногда для пивотов отчетов и т.д. легче писать скл чем настраивать виртуальные типы и т.д. механизмы ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2015, 12:40 |
|
Выбор данных в значение реквизита из перечня ("справочника") в разных формах ввода
|
|||
---|---|---|---|
#18+
ViPRosиногда для пивотов отчетов и т.д. легче писать скл чем настраивать виртуальные типы и т.д. механизмы С этим не поспоришь. По идее и по выборкам и по скриптам сохранения и т.д. тоже. SQL ведь знает любой студент. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2015, 12:42 |
|
Выбор данных в значение реквизита из перечня ("справочника") в разных формах ввода
|
|||
---|---|---|---|
#18+
тут скл не страшен а вот в логике - скл запрещен админы имею дебильное правило "оптимизировать" СКЛ :) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2015, 12:42 |
|
Выбор данных в значение реквизита из перечня ("справочника") в разных формах ввода
|
|||
---|---|---|---|
#18+
dma_caviarViPRosиногда для пивотов отчетов и т.д. легче писать скл чем настраивать виртуальные типы и т.д. механизмы С этим не поспоришь. По идее и по выборкам и по скриптам сохранения и т.д. тоже. SQL ведь знает любой студент. нет, в ВИПРОС СКЛ сложный, так как обычно ссылочный тип = множество типов, там нужы куча юнион по совпадающим совйствам типов, джойнов через все эти типы, если они сами куда то ссылаются, есть механизм персистентной/неперсистентной миграции свойств типов автоматически и т.д. мало кто может писать СКЛ для ВИПРОС вручную ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2015, 12:45 |
|
Выбор данных в значение реквизита из перечня ("справочника") в разных формах ввода
|
|||
---|---|---|---|
#18+
ViPRosа вот в логике - скл запрещен в логике его родное место. Вот хранить настройки (фактически реляционные данные преобразовать туда-обратно) - sql лишний ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2015, 12:54 |
|
Выбор данных в значение реквизита из перечня ("справочника") в разных формах ввода
|
|||
---|---|---|---|
#18+
ViPRosdma_caviarпропущено... С этим не поспоришь. По идее и по выборкам и по скриптам сохранения и т.д. тоже. SQL ведь знает любой студент. нет, в ВИПРОС СКЛ сложный, так как обычно ссылочный тип = множество типов, там нужы куча юнион по совпадающим совйствам типов, джойнов через все эти типы, если они сами куда то ссылаются, есть механизм персистентной/неперсистентной миграции свойств типов автоматически и т.д. мало кто может писать СКЛ для ВИПРОС вручную А эти скрипты динамические? Или генерятся процедуры, а из системы дергается вызов этой процедуры? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2015, 12:56 |
|
Выбор данных в значение реквизита из перечня ("справочника") в разных формах ввода
|
|||
---|---|---|---|
#18+
iscrafm, да какая логика на скл, когда можешь писать select 'ишак' человек from море если бы СКЛ был умным то другое дело ВИПРОС в принципе только для тго и сделан что бы загнать СКЛ в рамки теории множеств, выкинув все лишнее творчество народа ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2015, 12:58 |
|
Выбор данных в значение реквизита из перечня ("справочника") в разных формах ввода
|
|||
---|---|---|---|
#18+
dma_caviar, полу динамические :) при изменении метаданных генерятся основные части скл предложений и хранятся до следующих изменений а всякие там предикаты и т.д. генеряртся налету по контексту и объединяется с полудинамичсескими и получается динамичсекий запрос ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2015, 13:00 |
|
|
start [/forum/topic.php?fid=33&msg=38914813&tid=1547491]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
44ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
others: | 17ms |
total: | 158ms |
0 / 0 |