|
![]() |
#1 |
Участник
|
executeQuery на Форме
1. Не понимаю, почему запрос на форме формируется без учета значения ContractGeneral. Само значение он видит.
X++: str 20 ContractGeneral = RContractTableFact1.RContractGeneral; ; if (! element.args().dataSet()) { criteriaContractGeneral3.value( queryValue(ContractGeneral)); criteriaContractFactType3.value(queryValue(enum2str(RContractFactType::NoFinance))); } super(); На обеих закладках используется в качетсве источника данных одна и таже таблица. |
|
![]() |
#2 |
Moderator
|
1. Ничего не понял. Точнее, полное отсутствие исходных данных (инициализация запроса; входит ли в if)
2. Можно перекрыть на нужной закладке метод pageActivated() и в нем обновлять.
__________________
Андрей. |
|
![]() |
#3 |
Участник
|
1.
Есть форма. В DS 2 источника: оба ссылаются на одну таблицу. В первом источнике на первой закладке заполняются два реквизита: Код и Комментарий. Во втором источнике на 2 закладке заполняются 3 реквизита: Подчиненный код, Код, Комментарий. Надо, чтобы на второй закладке произошла фильтрация в методе executeQuery второго источника по Коду. Код на второй закладке равен коду выделенной строки на первой закладке. |
|
![]() |
#4 |
Moderator
|
По первому вопросу (где я ничего не понял) Вы так и не написали.
По второму я ответил, дальше дело техники. Можно вообще метод не перекрывать, а заджойнить эти 2 DS между собой, и все само будет фильтроваться.
__________________
Андрей. |
|
![]() |
#5 |
Участник
|
Я не понимаю, что я должна еще объяснить по первому вопросу, чтоб получить ответ.
я показала код из executeQuery и пояснила задачу. Чего не хватает? |
|
![]() |
#6 |
Участник
|
То есть это код метода executeQuery?
Попробуйте убрать enum2str во второй строке, то есть просто queryValue(RContractFactType:: оставить. Возможно неправильно фильтр накладывается - хотя не должен, конечнно Уверены, что заходит в IF? |
|
![]() |
#7 |
Участник
|
Цитата:
Короче без перечисления это выглядит так: SELECT RContractSupplement, Comment, RContractInternalNum, ContractDate, RContractAccount FROM RContractTableFact WHERE ((RContractGeneral = )) |
|
![]() |
#8 |
Участник
|
ContractGeneral - это что такое?
Вы уверены, что оно заполнено? |
|
![]() |
#9 |
Участник
|
да, я туда приваиваю значение из первой формы.
Метод queryValue() находит значение, но в запрос он так и не попадает. Мне кажется, что это как - то связано с тем, что оба источника базируются на одной табличке. Хотя не знаю... |
|
![]() |
#10 |
Участник
|
Хм. Покажите значит, как вы создаете объекты классов QueryBuildRange - для фильтров этих
|
|
![]() |
#11 |
Участник
|
Вощем ясно, фигня получилась.
Причина оказалась в том, что он действительно не хочет рассматривать переменную, которая берет значение из другого источника (физически это таже таблица). Если подставить туда руками какое-то значение типа 'DD', то все хорошо. При этом он совершенно верно определяет значение переменной, которой присвоено значение поля из другого источника. Получается проблема в том, что в качестве значения range не получается использовать значение поля из другого источника, которое активно в данный момент. |
|
![]() |
#12 |
Участник
|
Это не так - у вас где-то ошибка. Значение - это просто значение. И совершенно неважно, принадлежит оно источнику или нет.
|
|
![]() |
#13 |
Участник
|
Всем пасибо, поняла проблему. Ошибок нет, надо было, как и советовали в самом начале, ссылку на executeQuery в pageActivated() сделать, а также присвоить значение переменной, и все хорошо заработало.
|
|