![]() |
#21 |
Участник
|
блин, а как все сложно начиналось та
![]() по идее нужно ограничение вида prodId == 'prodNum1' || CollectRefProdId == 'prodNum1'; т.е. X++: str value = '((ProdId == %1)||(CollectRefProdId == %1))' ... ....addRange(fieldNum(prodTable,recId)).value(strFmr(value, 'ProdNum1')); ПС: могут быть опечатки и пр мелочи. но идея вроде та. |
|
![]() |
#22 |
Участник
|
Цитата:
Ошибка расширенного диапазона запроса: Синтаксическая ошибка рядом с 18.
X++: if( SalesEditFilter.valueStr() ) prodTable_ds.query().dataSourceTable(tableNum( ProdTable )).addRange( fieldNum( ProdTable, RecId ) ).value(strFmt(value, SalesEditFilter.valueStr())); else prodTable_ds.query().dataSourceTable(tableNum( ProdTable )).addRange( fieldNum( ProdTable, RecId ) ).value(strFmt(value, ""));
__________________
Рабочий день сокращает жизнь на 8 часов ![]() Последний раз редактировалось Himan; 29.03.2007 в 17:01. |
|
![]() |
#23 |
Программатор
|
str value = '((ProdId == "%1")||(CollectRefProdId == "%1"))'
|
|
![]() |
#24 |
Участник
|
Цитата:
Сообщение от Jony
![]() блин, а как все сложно начиналось та
![]() по идее нужно ограничение вида prodId == 'prodNum1' || CollectRefProdId == 'prodNum1'; т.е. X++: str value = '((ProdId == %1)||(CollectRefProdId == %1))' ... ....addRange(fieldNum(prodTable,recId)).value(strFmr(value, 'ProdNum1')); ПС: могут быть опечатки и пр мелочи. но идея вроде та.
__________________
Рабочий день сокращает жизнь на 8 часов ![]() |
|
![]() |
#25 |
Участник
|
по else ветка должна по идее очищать существующий ренж а не добавлять пустой.
и ненада каждый раз добавлять ограничение, его можно тока 1 раз добавить и менять ему значение каждый раз. Последний раз редактировалось Jony; 29.03.2007 в 17:26. |
|
![]() |
#26 |
Участник
|
т.е. надо фильтр налаживать на номар ссылки вот в чем проблемка
__________________
Рабочий день сокращает жизнь на 8 часов ![]() |
|
![]() |
#27 |
Участник
|
по теории должно помочь, если сделать выборку, а потом join
__________________
Рабочий день сокращает жизнь на 8 часов ![]() |
|
![]() |
#28 |
Участник
|
надо что-то подобное
X++: prodTable_ds.query().dataSourceTable(tableNum( ProdTable )).addRange( fieldNum( ProdTable, InventRefId ) ).value( SalesEditFilter.valueStr()); qbs = prodTable_ds.query().dataSourceTable(tableNum( ProdTable )).addDataSource(tableNum(ProdTable)); qbs.addLink( fieldNum( ProdTable, CollectRefProdId ), fieldNum( ProdTable, ProdId ) );
__________________
Рабочий день сокращает жизнь на 8 часов ![]() |
|
![]() |
#29 |
Участник
|
Вылаживаю запрос который отрабатывает коректно...
в коде прописы df. следующее.: X++: qbs = prodTable_ds.query().dataSourceTable(tableNum( ProdTable )).addDataSource(tableNum(ProdTable)); qbs.addLink( fieldNum( ProdTable, CollectRefProdId ), fieldNum( ProdTable, ProdId ) ); qbs.joinMode( joinMode::InnerJoin ); qbs.addRange( fieldNum( ProdTable, InventRefId ) ).value( SalesEditFilter.valueStr());
__________________
Рабочий день сокращает жизнь на 8 часов ![]() |
|
![]() |
#30 |
Дмитрий Ерин
|
Цитата:
Сообщение от Himan
![]() Вылаживаю запрос который отрабатывает коректно...
в коде прописы df. следующее.: X++: qbs = prodTable_ds.query().dataSourceTable(tableNum( ProdTable )).addDataSource(tableNum(ProdTable)); qbs.addLink( fieldNum( ProdTable, CollectRefProdId ), fieldNum( ProdTable, ProdId ) ); qbs.joinMode( joinMode::InnerJoin ); qbs.addRange( fieldNum( ProdTable, InventRefId ) ).value( SalesEditFilter.valueStr()); Не вникал в задачу, поэтому сказать, где - правильно, не могу. Но где-то точно неправильно ![]()
__________________
![]() |
|
![]() |
#31 |
Участник
|
Цитата:
Потому что у Вас в коде CollectRefProdId относится к родительскому DS, а ProdId - к дочернему (см. выше замечание Jony про метод addLink). А в приложенном Query в relation всё указано наоборот: Field = CollectRefProdId, RelatedField = ProdId.
а в коде все, не фильтрует почему не понятно
__________________
Рабочий день сокращает жизнь на 8 часов ![]() |
|
![]() |
#32 |
Дмитрий Ерин
|
Попробуйте так:
X++: ... qbs.joinMode( joinMode::InnerJoin ); qbs.fetchMode(1); ...
__________________
![]() |
|
![]() |
#33 |
Участник
|
X++: qbs.addLink( fieldNum( ProdTable, ProdId ), fieldNum( ProdTable, CollectRefProdId ) ); qbs.joinMode( joinMode::InnerJoin ); qbs.fetchMode(1); qbs.addRange( fieldNum( ProdTable, InventRefId ) ).value( SalesEditFilter.valueStr());
__________________
Рабочий день сокращает жизнь на 8 часов ![]() |
|
![]() |
#34 |
Дмитрий Ерин
|
Ну да... фетчмоде вообще-то по умолчанию = 1. Это я ступил
![]() Сложно конечно разгадывать вслепую. Форму бы глянуть... Может быть дело в выравнивании... У Вас на контроле SalesEditFilter (я так понимаю - это StringEdit) - в качестве EDT указан SalesIdBase или что?
__________________
![]() |
|
![]() |
#35 |
Участник
|
нет там EDT, просто поле на форма) Я из него значение прямо в фильтр и все
__________________
Рабочий день сокращает жизнь на 8 часов ![]() |
|
![]() |
#36 |
Участник
|
вот форма)) посмотрите в чем дело
__________________
Рабочий день сокращает жизнь на 8 часов ![]() |
|
![]() |
#37 |
Дмитрий Ерин
|
Ну вот, как я и предполагал.
Попробуйте указать этому контролу свойство ExtendedDataType = SalesIdBase. Если не поможет, значит проблема не в выравнивании вправо ![]()
__________________
![]() |
|
![]() |
#38 |
Участник
|
Значит не в выравнивании)
__________________
Рабочий день сокращает жизнь на 8 часов ![]() |
|
![]() |
#39 |
Участник
|
почему интересно на значения фильтра не реагирует, если бы выравнивание то вообще ничего ббы не выводил а так, все выводит как будто на него ничего и не накладывали, что такое ума не приложу)
дак выложил же Up
__________________
Рабочий день сокращает жизнь на 8 часов ![]() |
|
![]() |
#40 |
Дмитрий Ерин
|
не, не выравнивание!
у Вас же там второй ds - InventDim. Тут надо думать, как их подружить - навскидку не подскажу, а времени разбираться к сожалению нет. Но если попробовать на форме убрать связь с InventDim (понятно, что этого делать нельзя, но просто чтобы понять), то Ваш фильтр срабатывает.
__________________
![]() |
|
Теги |
datasource, query, датасорс (datasource), источник данных (datasource), подчиненный источник данных, программно, запрос (query) |
|
|