29.03.2007, 16:39 | #21 |
Участник
|
блин, а как все сложно начиналось та
по идее нужно ограничение вида prodId == 'prodNum1' || CollectRefProdId == 'prodNum1'; т.е. X++: str value = '((ProdId == %1)||(CollectRefProdId == %1))' ... ....addRange(fieldNum(prodTable,recId)).value(strFmr(value, 'ProdNum1')); ПС: могут быть опечатки и пр мелочи. но идея вроде та. |
|
29.03.2007, 16:58 | #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. |
|
29.03.2007, 17:10 | #23 |
Программатор
|
str value = '((ProdId == "%1")||(CollectRefProdId == "%1"))'
|
|
29.03.2007, 17:23 | #24 |
Участник
|
Цитата:
Сообщение от Jony
блин, а как все сложно начиналось та
по идее нужно ограничение вида prodId == 'prodNum1' || CollectRefProdId == 'prodNum1'; т.е. X++: str value = '((ProdId == %1)||(CollectRefProdId == %1))' ... ....addRange(fieldNum(prodTable,recId)).value(strFmr(value, 'ProdNum1')); ПС: могут быть опечатки и пр мелочи. но идея вроде та.
__________________
Рабочий день сокращает жизнь на 8 часов |
|
29.03.2007, 17:23 | #25 |
Участник
|
по else ветка должна по идее очищать существующий ренж а не добавлять пустой.
и ненада каждый раз добавлять ограничение, его можно тока 1 раз добавить и менять ему значение каждый раз. Последний раз редактировалось Jony; 29.03.2007 в 17:26. |
|
30.03.2007, 06:14 | #26 |
Участник
|
т.е. надо фильтр налаживать на номар ссылки вот в чем проблемка
__________________
Рабочий день сокращает жизнь на 8 часов |
|
30.03.2007, 07:07 | #27 |
Участник
|
по теории должно помочь, если сделать выборку, а потом join
__________________
Рабочий день сокращает жизнь на 8 часов |
|
30.03.2007, 07:55 | #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 часов |
|
30.03.2007, 09:40 | #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.03.2007, 10:55 | #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()); Не вникал в задачу, поэтому сказать, где - правильно, не могу. Но где-то точно неправильно
__________________
|
|
30.03.2007, 11:02 | #31 |
Участник
|
Цитата:
Потому что у Вас в коде CollectRefProdId относится к родительскому DS, а ProdId - к дочернему (см. выше замечание Jony про метод addLink). А в приложенном Query в relation всё указано наоборот: Field = CollectRefProdId, RelatedField = ProdId.
а в коде все, не фильтрует почему не понятно
__________________
Рабочий день сокращает жизнь на 8 часов |
|
30.03.2007, 13:23 | #32 |
Дмитрий Ерин
|
Попробуйте так:
X++: ... qbs.joinMode( joinMode::InnerJoin ); qbs.fetchMode(1); ...
__________________
|
|
30.03.2007, 13:29 | #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 часов |
|
30.03.2007, 13:39 | #34 |
Дмитрий Ерин
|
Ну да... фетчмоде вообще-то по умолчанию = 1. Это я ступил
Сложно конечно разгадывать вслепую. Форму бы глянуть... Может быть дело в выравнивании... У Вас на контроле SalesEditFilter (я так понимаю - это StringEdit) - в качестве EDT указан SalesIdBase или что?
__________________
|
|
30.03.2007, 13:45 | #35 |
Участник
|
нет там EDT, просто поле на форма) Я из него значение прямо в фильтр и все
__________________
Рабочий день сокращает жизнь на 8 часов |
|
30.03.2007, 13:50 | #36 |
Участник
|
вот форма)) посмотрите в чем дело
__________________
Рабочий день сокращает жизнь на 8 часов |
|
30.03.2007, 13:54 | #37 |
Дмитрий Ерин
|
Ну вот, как я и предполагал.
Попробуйте указать этому контролу свойство ExtendedDataType = SalesIdBase. Если не поможет, значит проблема не в выравнивании вправо
__________________
|
|
30.03.2007, 13:57 | #38 |
Участник
|
Значит не в выравнивании)
__________________
Рабочий день сокращает жизнь на 8 часов |
|
30.03.2007, 14:09 | #39 |
Участник
|
почему интересно на значения фильтра не реагирует, если бы выравнивание то вообще ничего ббы не выводил а так, все выводит как будто на него ничего и не накладывали, что такое ума не приложу)
дак выложил же Up
__________________
Рабочий день сокращает жизнь на 8 часов |
|
30.03.2007, 14:25 | #40 |
Дмитрий Ерин
|
не, не выравнивание!
у Вас же там второй ds - InventDim. Тут надо думать, как их подружить - навскидку не подскажу, а времени разбираться к сожалению нет. Но если попробовать на форме убрать связь с InventDim (понятно, что этого делать нельзя, но просто чтобы понять), то Ваш фильтр срабатывает.
__________________
|
|
Теги |
datasource, query, датасорс (datasource), источник данных (datasource), подчиненный источник данных, программно, запрос (query) |
|
|