AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 11.04.2006, 07:12   #1  
Sada is offline
Sada
Программатор
Аватар для Sada
 
1,450 / 153 (8) ++++++
Регистрация: 29.03.2005
Адрес: Толи Барнаул, толи Москва
Не могу понять в чем ошибка???
Доброго всем времени суток, уважаемые коллеги.

есть вот такой кусок кода:
PHP код:
   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...
Старый 11.04.2006, 08:39   #2  
TasmanianDevil is offline
TasmanianDevil
Мрачный тип
Аватар для TasmanianDevil
Злыдни
 
886 / 389 (14) ++++++
Регистрация: 24.01.2005
Адрес: Томск
Обычный бред Аксапты на очевидную ошибку
Все Range.Value - строки , т.е. надо написать s="Продано,Куплено"

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

Последний раз редактировалось TasmanianDevil; 11.04.2006 в 09:12.
Старый 11.04.2006, 09:03   #5  
Sada is offline
Sada
Программатор
Аватар для Sada
 
1,450 / 153 (8) ++++++
Регистрация: 29.03.2005
Адрес: Толи Барнаул, толи Москва
Цитата:
Сообщение от TasmanianDevil
прошу прощения, не разобрался - Вы в фильтре накладываете ограничения на два поля , а не на одно
В любом случае в значение фильтра по полю имеющему перечислимы тип - есть строка, и пихать туда надо именно строковое значение соответствующего числового значения перечислимого типа
да на два, и мне именно нада чтоб был OR...
Старый 11.04.2006, 09:13   #6  
Sada is offline
Sada
Программатор
Аватар для Sada
 
1,450 / 153 (8) ++++++
Регистрация: 29.03.2005
Адрес: Толи Барнаул, толи Москва
Хелп...
Старый 11.04.2006, 09:29   #7  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 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
Старый 11.04.2006, 09:35   #8  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
Пардон, то, что в-третьих можно не делать
__________________
Axapta v.3.0 sp5 kr2
Старый 11.04.2006, 09:43   #9  
Sada is offline
Sada
Программатор
Аватар для Sada
 
1,450 / 153 (8) ++++++
Регистрация: 29.03.2005
Адрес: Толи Барнаул, толи Москва
2AndyD
Спасибо огромное, теперь буду знать!!!Все заработало
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
В чем ошибка???? 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
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 18:30.