02.11.2007, 14:01 | #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(); На обеих закладках используется в качетсве источника данных одна и таже таблица. |
|
02.11.2007, 14:22 | #2 |
Moderator
|
1. Ничего не понял. Точнее, полное отсутствие исходных данных (инициализация запроса; входит ли в if)
2. Можно перекрыть на нужной закладке метод pageActivated() и в нем обновлять.
__________________
Андрей. |
|
02.11.2007, 14:28 | #3 |
Участник
|
1.
Есть форма. В DS 2 источника: оба ссылаются на одну таблицу. В первом источнике на первой закладке заполняются два реквизита: Код и Комментарий. Во втором источнике на 2 закладке заполняются 3 реквизита: Подчиненный код, Код, Комментарий. Надо, чтобы на второй закладке произошла фильтрация в методе executeQuery второго источника по Коду. Код на второй закладке равен коду выделенной строки на первой закладке. |
|
02.11.2007, 14:38 | #4 |
Moderator
|
По первому вопросу (где я ничего не понял) Вы так и не написали.
По второму я ответил, дальше дело техники. Можно вообще метод не перекрывать, а заджойнить эти 2 DS между собой, и все само будет фильтроваться.
__________________
Андрей. |
|
02.11.2007, 14:41 | #5 |
Участник
|
Я не понимаю, что я должна еще объяснить по первому вопросу, чтоб получить ответ.
я показала код из executeQuery и пояснила задачу. Чего не хватает? |
|
02.11.2007, 14:50 | #6 |
Участник
|
То есть это код метода executeQuery?
Попробуйте убрать enum2str во второй строке, то есть просто queryValue(RContractFactType:: оставить. Возможно неправильно фильтр накладывается - хотя не должен, конечнно Уверены, что заходит в IF? |
|
02.11.2007, 14:57 | #7 |
Участник
|
Цитата:
Короче без перечисления это выглядит так: SELECT RContractSupplement, Comment, RContractInternalNum, ContractDate, RContractAccount FROM RContractTableFact WHERE ((RContractGeneral = )) |
|
02.11.2007, 16:06 | #8 |
Участник
|
ContractGeneral - это что такое?
Вы уверены, что оно заполнено? |
|
02.11.2007, 16:10 | #9 |
Участник
|
да, я туда приваиваю значение из первой формы.
Метод queryValue() находит значение, но в запрос он так и не попадает. Мне кажется, что это как - то связано с тем, что оба источника базируются на одной табличке. Хотя не знаю... |
|
02.11.2007, 16:13 | #10 |
Участник
|
Хм. Покажите значит, как вы создаете объекты классов QueryBuildRange - для фильтров этих
|
|
02.11.2007, 16:32 | #11 |
Участник
|
Вощем ясно, фигня получилась.
Причина оказалась в том, что он действительно не хочет рассматривать переменную, которая берет значение из другого источника (физически это таже таблица). Если подставить туда руками какое-то значение типа 'DD', то все хорошо. При этом он совершенно верно определяет значение переменной, которой присвоено значение поля из другого источника. Получается проблема в том, что в качестве значения range не получается использовать значение поля из другого источника, которое активно в данный момент. |
|
02.11.2007, 17:18 | #12 |
Участник
|
Это не так - у вас где-то ошибка. Значение - это просто значение. И совершенно неважно, принадлежит оно источнику или нет.
|
|
03.11.2007, 23:25 | #13 |
Участник
|
Всем пасибо, поняла проблему. Ошибок нет, надо было, как и советовали в самом начале, ссылку на executeQuery в pageActivated() сделать, а также присвоить значение переменной, и все хорошо заработало.
|
|