AXForum  
Zurück   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Kennwort vergessen?
Registrieren Forum Rules Hilfe Benutzerliste Heutige Beiträge Suchen

 
 
Themen-Optionen Thema durchsuchen Ansicht
Alt 29.03.2007, 16:39   #21  
Jony ist offline
Jony
Участник
 
99 / 22 (1) +++
Registriert seit: 25.06.2003
Ort: г. Барнаул
блин, а как все сложно начиналось та

по идее нужно ограничение вида

prodId == 'prodNum1' || CollectRefProdId == 'prodNum1';

т.е.
X++:
str value = '((ProdId == %1)||(CollectRefProdId == %1))'
...
....addRange(fieldNum(prodTable,recId)).value(strFmr(value, 'ProdNum1'));
и ненужны лишние источники данных. одного хватит

ПС: могут быть опечатки и пр мелочи. но идея вроде та.
Alt 29.03.2007, 16:58   #22  
Himan ist offline
Himan
Участник
Benutzerbild von Himan
 
312 / 12 (1) ++
Registriert seit: 07.11.2006
Ort: Tumen
Zitat:
Ошибка расширенного диапазона запроса: Синтаксическая ошибка рядом с 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 часов

Geändert von Himan (29.03.2007 um 17:01 Uhr)
Alt 29.03.2007, 17:10   #23  
Sada ist offline
Sada
Программатор
Benutzerbild von Sada
 
1.450 / 153 (8) ++++++
Registriert seit: 29.03.2005
Ort: Толи Барнаул, толи Москва
str value = '((ProdId == "%1")||(CollectRefProdId == "%1"))'
Alt 29.03.2007, 17:23   #24  
Himan ist offline
Himan
Участник
Benutzerbild von Himan
 
312 / 12 (1) ++
Registriert seit: 07.11.2006
Ort: Tumen
Zitat:
Zitat von Jony Beitrag anzeigen
блин, а как все сложно начиналось та

по идее нужно ограничение вида

prodId == 'prodNum1' || CollectRefProdId == 'prodNum1';

т.е.
X++:
str value = '((ProdId == %1)||(CollectRefProdId == %1))'
...
....addRange(fieldNum(prodTable,recId)).value(strFmr(value, 'ProdNum1'));
и ненужны лишние источники данных. одного хватит

ПС: могут быть опечатки и пр мелочи. но идея вроде та.
нужно то не по ProdId а по InventRefId
__________________
Рабочий день сокращает жизнь на 8 часов
Alt 29.03.2007, 17:23   #25  
Jony ist offline
Jony
Участник
 
99 / 22 (1) +++
Registriert seit: 25.06.2003
Ort: г. Барнаул
по else ветка должна по идее очищать существующий ренж а не добавлять пустой.


и ненада каждый раз добавлять ограничение, его можно тока 1 раз добавить и менять ему значение каждый раз.

Geändert von Jony (29.03.2007 um 17:26 Uhr)
Alt 30.03.2007, 06:14   #26  
Himan ist offline
Himan
Участник
Benutzerbild von Himan
 
312 / 12 (1) ++
Registriert seit: 07.11.2006
Ort: Tumen
т.е. надо фильтр налаживать на номар ссылки вот в чем проблемка
__________________
Рабочий день сокращает жизнь на 8 часов
Alt 30.03.2007, 07:07   #27  
Himan ist offline
Himan
Участник
Benutzerbild von Himan
 
312 / 12 (1) ++
Registriert seit: 07.11.2006
Ort: Tumen
по теории должно помочь, если сделать выборку, а потом join
__________________
Рабочий день сокращает жизнь на 8 часов
Alt 30.03.2007, 07:55   #28  
Himan ist offline
Himan
Участник
Benutzerbild von Himan
 
312 / 12 (1) ++
Registriert seit: 07.11.2006
Ort: Tumen
надо что-то подобное
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 ) );
а после DS с qbs объединить
__________________
Рабочий день сокращает жизнь на 8 часов
Alt 30.03.2007, 09:40   #29  
Himan ist offline
Himan
Участник
Benutzerbild von Himan
 
312 / 12 (1) ++
Registriert seit: 07.11.2006
Ort: Tumen
Вылаживаю запрос который отрабатывает коректно...
в коде прописы 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());
почему то что сделано в запросе не совподает с кодом???
Angehängte Dateien
Dateityp: xpo SlinkinAlexandr.xpo (4,4 KB, 278x aufgerufen)
__________________
Рабочий день сокращает жизнь на 8 часов
Alt 30.03.2007, 10:55   #30  
Ruff ist offline
Ruff
Дмитрий Ерин
Benutzerbild von Ruff
1C
 
475 / 396 (14) ++++++
Registriert seit: 18.09.2003
Ort: Тула
Zitat:
Zitat von Himan Beitrag anzeigen
Вылаживаю запрос который отрабатывает коректно...
в коде прописы 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());
почему то что сделано в запросе не совподает с кодом???
Потому что у Вас в коде CollectRefProdId относится к родительскому DS, а ProdId - к дочернему (см. выше замечание Jony про метод addLink). А в приложенном Query в relation всё указано наоборот: Field = CollectRefProdId, RelatedField = ProdId.

Не вникал в задачу, поэтому сказать, где - правильно, не могу. Но где-то точно неправильно
__________________
Alt 30.03.2007, 11:02   #31  
Himan ist offline
Himan
Участник
Benutzerbild von Himan
 
312 / 12 (1) ++
Registriert seit: 07.11.2006
Ort: Tumen
Zitat:
Потому что у Вас в коде CollectRefProdId относится к родительскому DS, а ProdId - к дочернему (см. выше замечание Jony про метод addLink). А в приложенном Query в relation всё указано наоборот: Field = CollectRefProdId, RelatedField = ProdId.
исправил но всеравно там где запрос построен, возвращает 1 запись(правильно),
а в коде все, не фильтрует почему не понятно
__________________
Рабочий день сокращает жизнь на 8 часов
Alt 30.03.2007, 13:23   #32  
Ruff ist offline
Ruff
Дмитрий Ерин
Benutzerbild von Ruff
1C
 
475 / 396 (14) ++++++
Registriert seit: 18.09.2003
Ort: Тула
Попробуйте так:
X++:
...
qbs.joinMode( joinMode::InnerJoin );
qbs.fetchMode(1);
...
__________________
Alt 30.03.2007, 13:29   #33  
Himan ist offline
Himan
Участник
Benutzerbild von Himan
 
312 / 12 (1) ++
Registriert seit: 07.11.2006
Ort: Tumen
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 часов
Alt 30.03.2007, 13:39   #34  
Ruff ist offline
Ruff
Дмитрий Ерин
Benutzerbild von Ruff
1C
 
475 / 396 (14) ++++++
Registriert seit: 18.09.2003
Ort: Тула
Ну да... фетчмоде вообще-то по умолчанию = 1. Это я ступил
Сложно конечно разгадывать вслепую. Форму бы глянуть...

Может быть дело в выравнивании...
У Вас на контроле SalesEditFilter (я так понимаю - это StringEdit) - в качестве EDT указан SalesIdBase или что?
__________________
Alt 30.03.2007, 13:45   #35  
Himan ist offline
Himan
Участник
Benutzerbild von Himan
 
312 / 12 (1) ++
Registriert seit: 07.11.2006
Ort: Tumen
нет там EDT, просто поле на форма) Я из него значение прямо в фильтр и все
__________________
Рабочий день сокращает жизнь на 8 часов
Alt 30.03.2007, 13:50   #36  
Himan ist offline
Himan
Участник
Benutzerbild von Himan
 
312 / 12 (1) ++
Registriert seit: 07.11.2006
Ort: Tumen
вот форма)) посмотрите в чем дело
Angehängte Dateien
Dateityp: xpo ProdTable.xpo (312,3 KB, 280x aufgerufen)
__________________
Рабочий день сокращает жизнь на 8 часов
Alt 30.03.2007, 13:54   #37  
Ruff ist offline
Ruff
Дмитрий Ерин
Benutzerbild von Ruff
1C
 
475 / 396 (14) ++++++
Registriert seit: 18.09.2003
Ort: Тула
Ну вот, как я и предполагал.
Попробуйте указать этому контролу свойство ExtendedDataType = SalesIdBase.
Если не поможет, значит проблема не в выравнивании вправо
__________________
Alt 30.03.2007, 13:57   #38  
Himan ist offline
Himan
Участник
Benutzerbild von Himan
 
312 / 12 (1) ++
Registriert seit: 07.11.2006
Ort: Tumen
Значит не в выравнивании)
__________________
Рабочий день сокращает жизнь на 8 часов
Alt 30.03.2007, 14:09   #39  
Himan ist offline
Himan
Участник
Benutzerbild von Himan
 
312 / 12 (1) ++
Registriert seit: 07.11.2006
Ort: Tumen
почему интересно на значения фильтра не реагирует, если бы выравнивание то вообще ничего ббы не выводил а так, все выводит как будто на него ничего и не накладывали, что такое ума не приложу)

дак выложил же Up
__________________
Рабочий день сокращает жизнь на 8 часов
Alt 30.03.2007, 14:25   #40  
Ruff ist offline
Ruff
Дмитрий Ерин
Benutzerbild von Ruff
1C
 
475 / 396 (14) ++++++
Registriert seit: 18.09.2003
Ort: Тула
не, не выравнивание!
у Вас же там второй ds - InventDim. Тут надо думать, как их подружить - навскидку не подскажу, а времени разбираться к сожалению нет.

Но если попробовать на форме убрать связь с InventDim (понятно, что этого делать нельзя, но просто чтобы понять), то Ваш фильтр срабатывает.
__________________
Stichworte
datasource, query, датасорс (datasource), источник данных (datasource), подчиненный источник данных, программно, запрос (query)

 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Dynamics AX: QueryRun and Query Objects - Binding operation failed to allocate buffer space Blog bot DAX Blogs 0 03.04.2009 08:05
palleagermark: Sample union query from AX 2009 Blog bot DAX Blogs 0 11.07.2008 20:05
Dynamics AX Geek: Using query() Blog bot DAX Blogs 0 28.10.2006 16:40
Установка условия ИЛИ (OR) в Query Zeratul DAX: Программирование 3 22.06.2006 14:28
Проблема с составлением Query axaLearner DAX: Программирование 10 01.12.2005 15:00

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Gehe zu

Рейтинг@Mail.ru
Alle Zeitangaben in WEZ +3. Es ist jetzt 05:12 Uhr.
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.