AXForum  
Go Back   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Forgotten Your Password?
Register Forum Rules FAQ Members List Today's Posts Search

 
 
Thread Tools Search this Thread Display Modes
Old 11.04.2006, 07:12   #1  
Sada is offline
Sada
Программатор
Sada's Avatar
 
1,450 / 153 (8) ++++++
Join Date: 29.03.2005
Location: Толи Барнаул, толи Москва
Не могу понять в чем ошибка???
Доброго всем времени суток, уважаемые коллеги.

есть вот такой кусок кода:
PHP Code:
   Query                                 q = new Query();
    
QueryBuildDataSource        ds,ds2,ds3;
    
queryRun                            qr;
    ;

    
ds q.addDataSource(tablenum(InventTrans));
    
ds.addSelectionField(fieldnum(InventTrans,TransType));
    
ds.addSelectionField(fieldnum(InventTrans,StatusIssue));
    
ds.addSelectionField(fieldnum(InventTrans,DateStatus));
    
ds.addSelectionField(fieldnum(InventTrans,ItemId));
    
ds.addSelectionField(fieldnum(InventTrans,InventTransId));
    
ds.addSelectionField(fieldnum(InventTrans,Qty));
    
ds.addSelectionField(fieldnum(InventTrans,CustVendAC));
    
s"((inventTrans.StatusIssue == statusIssue::Sold || inventTrans.StatusReceipt == statusReceipt::Purchased))";
    
q.dataSourceTable(TableNum(InventTrans)).addRange(FieldNum(InventTrans,recId)).value(s);
    
ds.addRange(fieldNum(InventTransDateStatus)).value(sysQuery::range(PlanDateFromPlanDateTo));
    
ds.addRange(fieldNum(InventTransTransType)).value(QueryValue(InventTransType::Sales));

    
ds.orderMode(OrderMode::OrderBy);
    
ds.addSortField(fieldnum(InventTransItemId));
////////////////////////////
    
ds2 ds.addDataSource(tableNum(CustInvoiceTrans));
    
ds2.addSelectionField(fieldnum(CustInvoiceTrans,InventTransId));
    
ds2.addSelectionField(fieldnum(CustInvoiceTrans,Scrap));
    
ds2.addSelectionField(fieldnum(CustInvoiceTrans,SalesPrice));
    
ds2.addSelectionField(fieldnum(CustInvoiceTrans,Qty));
    
ds2.addSelectionField(fieldnum(CustInvoiceTrans,LineAmount));
    
ds2.addSelectionField(fieldnum(CustInvoiceTrans,TaxAmount));
    
ds2.joinMode(JoinMode::InnerJoin);
    
ds2.fetchMode(0);
    
ds2.addLink(fieldNum(InventTrans,InventTransId),fieldNum  (CustInvoiceTrans,InventTransId));


////////////////////////////
    
ds3 ds.addDataSource(tablenum(CustTable));
    
ds3.relations(true);
    
ds3.joinMode(JoinMode::InnerJoin);
    
ds3.fetchMode(0);

    
ds3.addSelectionField(fieldnum(CustTable,Name));
    
ds3.addSelectionField(fieldnum(CustTable,Agent));
    
qr = new QueryRun(q);
    while (
qr.next())
    {
     
обработка данных..
    } 
на эту конструкцию мне Аксапта выдает "Ошибка расширенного диапазона запроса: inventTrans.StatusIssue не является корректной парой datasource.field рядом с 30
"
Подскадите плиз, что бы это значило. ошибка появляется на строке while (qr.next())....

C Уважением - Sada...
Old 11.04.2006, 08:39   #2  
TasmanianDevil is offline
TasmanianDevil
Мрачный тип
TasmanianDevil's Avatar
Злыдни
 
887 / 389 (14) ++++++
Join Date: 24.01.2005
Location: Томск
Обычный бред Аксапты на очевидную ошибку
Все Range.Value - строки , т.е. надо написать s="Продано,Куплено"

Last edited by TasmanianDevil; 11.04.2006 at 08:43.
Old 11.04.2006, 08:52   #3  
Sada is offline
Sada
Программатор
Sada's Avatar
 
1,450 / 153 (8) ++++++
Join Date: 29.03.2005
Location: Толи Барнаул, толи Москва
тоесть нада вот это исправить
s= "((inventTrans.StatusIssue == statusIssue::Sold || inventTrans.StatusReceipt == statusReceipt::Purchased))";
q.dataSourceTable(TableNum(InventTrans)).addRange(FieldNum(InventTrans,recId)).value(s);
но на ЧТО?(попробовал не получилось...)
Old 11.04.2006, 08:57   #4  
TasmanianDevil is offline
TasmanianDevil
Мрачный тип
TasmanianDevil's Avatar
Злыдни
 
887 / 389 (14) ++++++
Join Date: 24.01.2005
Location: Томск
Quote:
Originally Posted by Sada
тоесть нада вот это исправить
s= "((inventTrans.StatusIssue == statusIssue::Sold || inventTrans.StatusReceipt == statusReceipt::Purchased))";
q.dataSourceTable(TableNum(InventTrans)).addRange(FieldNum(InventTrans,recId)).value(s);
но на ЧТО?(попробовал не получилось...)
прошу прощения, не разобрался - Вы в фильтре хотите наложить ограничения на два поля , а не на одно
Скобочки одинарные, OR и просто имена полей не помогают ?

Last edited by TasmanianDevil; 11.04.2006 at 09:12.
Old 11.04.2006, 09:03   #5  
Sada is offline
Sada
Программатор
Sada's Avatar
 
1,450 / 153 (8) ++++++
Join Date: 29.03.2005
Location: Толи Барнаул, толи Москва
Quote:
Originally Posted by TasmanianDevil
прошу прощения, не разобрался - Вы в фильтре накладываете ограничения на два поля , а не на одно
В любом случае в значение фильтра по полю имеющему перечислимы тип - есть строка, и пихать туда надо именно строковое значение соответствующего числового значения перечислимого типа
да на два, и мне именно нада чтоб был OR...
Old 11.04.2006, 09:13   #6  
Sada is offline
Sada
Программатор
Sada's Avatar
 
1,450 / 153 (8) ++++++
Join Date: 29.03.2005
Location: Толи Барнаул, толи Москва
Хелп...
Old 11.04.2006, 09:29   #7  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2499 (89) +++++++++
Join Date: 20.08.2005
Во-первых, добавьте имя датасоурса
X++:
    ds = q.addDataSource(tablenum(InventTrans), "InventTrans");
Во-вторых, добавьте скобки
X++:
s= "((inventTrans.StatusIssue == statusIssue::Sold) || " +
    "(inventTrans.StatusReceipt == statusReceipt::Purchased))";
В-третьих, TransType устанавливайте так
X++:
ds.addRange(fieldNum(InventTrans, TransType)).
    value(int2str(InventTransType::Sales));
или так
X++:
ds.addRange(fieldNum(InventTrans, TransType)).
    value("(InventTrans.TransType == InventTransType::Sales)");
__________________
Axapta v.3.0 sp5 kr2
Old 11.04.2006, 09:35   #8  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2499 (89) +++++++++
Join Date: 20.08.2005
Пардон, то, что в-третьих можно не делать
__________________
Axapta v.3.0 sp5 kr2
Old 11.04.2006, 09:43   #9  
Sada is offline
Sada
Программатор
Sada's Avatar
 
1,450 / 153 (8) ++++++
Join Date: 29.03.2005
Location: Толи Барнаул, толи Москва
2AndyD
Спасибо огромное, теперь буду знать!!!Все заработало
 

Similar Threads
Thread Thread Starter Forum Replies Last Post
В чем ошибка???? a-da DAX: Программирование 3 08.04.2007 00:17
Ошибка при запуске 3-tier nicko DAX: Администрирование 3 02.02.2007 13:44
Ошибка при обработке С-Ф Sergo DAX: Программирование 7 20.01.2006 11:56
Ошибка при закрытии склада, при закрытии более ранней датой, чем пересчет Berkoff DAX: Функционал 2 25.10.2004 17:52
Ошибка при сохранении поставщика Filip DAX: Функционал 19 24.02.2004 08:32

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Рейтинг@Mail.ru
All times are GMT +3. The time now is 01:49.
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Contacts E-mail, Advertising.