|
![]() |
#1 |
Программатор
|
нет, не помогло. А у вас нормально работает?
|
|
![]() |
#2 |
Участник
|
У нас в приложении лукап аналитики модифицирован, поэтому сложно проверить ваш сценарий.
По идее, должно работать. Именно для таких вещей, на таблице Dimensions предусмотренна связь на саму себя. Другое дело учитывает ли эти связи форма фильтрации. |
|
![]() |
#3 |
Участник
|
Какой запрос при этом формируется? info(qbds.toString()); ?
возможно поможет 1. SysQuery::value(...) 2. strFmt("%1",SysDimension::Center) вместо QueryValue |
|
![]() |
#4 |
Участник
|
Воспроизвёл сейчас вашу ситуацию со стандартным лукапом на тестовом окружении.
Посмотрел на код метода SysLookup::lookupRange. В этом методе происходит поэтапный перебор вариантов вызова лукап формы. В зависимости от ситуации лукап будет сгенерирован на основании: 1) свойства FormHelp расширенного типа данных, если он заполнен 2) перечисления, если это Enum 3) календаря, если это дата 4) свойства FormHelp, таблицы на которую ссылается relation расширенного типа данных, если relation есть и есть FormHelp на указанной таблице 5) свойства FormHelp, таблицы на которую ссылается подходящий relation таблицы из которой вызван лукап. В нашем случае выбор завершается сразу же на первом пункте. Т.к. на типе SysDim указано значение DimensionsLookup в свойстве FormHelp. Варианта выхода из сложивщейся ситуации я вижу два: - либо научить форму DimensionsLookup корректно отрабатывать данную ситуацию; - либо заставить метод SysLookup::lookupRange() работать по 5-му сценарию. Второго варианта добиться просто. Для этого нужно чтобы у поля Num таблицы Dimensions был расширенный тип без FormHelp и Relation. Такой тип можно создать продублировав тип SysDim и обнулив свойство FormHelp. Заменяем у поля Dimensions.Num расширенный тип на новый и всё. Во всех остальных местах будет продолжать работать лукап на основаный на форме DimensionsLookup. Получившийся новый лукап может отличаться от него т.к. генерироваться он уже будет системными средствами. Если необходимо везде иметь единую форму лукапа, то нужно оставлять один EDT и всё-таки разбираться с формой DimensionsLookup, учить её корректно отрабатывать фильтрацию по связанному полю. |
|
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|