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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 15.02.2009, 14:16   #1  
tolstjak is offline
tolstjak
Участник
 
440 / 16 (1) ++
Регистрация: 05.01.2003
передача параметров в запрос while select
Здравствуйте уважаемые.

Подскажите пожалуйста как правильно передать параметры запроса в запрос while select ....
ошибка появляется в том случае, когда один из параметров не указан. Запрос ничего не вводит.

К примеру параметры отчета:
период: fromDate, toDate
Клиент: CustID

Запрос:
while select * from CustTrans
where CustTrans.TransDate > fromDate && CustTrans.TransDate < toDate
&& CustTrans.CustID == CustID .......

Если параметр отчета Клиент (CustID = " ") не указан отчет ничего не выводит.

Заранее благодарен.
__________________
Александр
Старый 15.02.2009, 14:25   #2  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 858 (32) +++++++
Регистрация: 15.01.2002
Адрес: Москва
Записей в блоге: 7
Правильно заменить while select на while(QueryRun.next())
Старый 15.02.2009, 14:38   #3  
miklenew is offline
miklenew
Участник
Аватар для miklenew
MCBMSS
1C
Лучший по профессии 2009
 
1,688 / 433 (18) +++++++
Регистрация: 10.07.2006
Адрес: г. Ликино-Дулёво
А так?
X++:
while select * from CustTrans
where CustTrans.TransDate > fromDate && CustTrans.TransDate < toDate && 
((CustID && CustTrans.CustID == CustID) ||
!CustID)
__________________
Энергия молодых и неравнодушных способна изменить мир к лучшему.
За это сообщение автора поблагодарили: tolstjak (1).
Старый 15.02.2009, 15:08   #4  
tolstjak is offline
tolstjak
Участник
 
440 / 16 (1) ++
Регистрация: 05.01.2003
Цитата:
Сообщение от miklenew Посмотреть сообщение
А так?
X++:
while select * from CustTrans
where CustTrans.TransDate > fromDate && CustTrans.TransDate < toDate && 
((CustID && CustTrans.CustID == CustID) ||
!CustID)

Как я понимаю в таком случае отчет не будет выдавать ошибку, но данные тоже не будет выводить, а надо чтобы отчет выдавал данные по выбранному клиенты, если клиент не выбран ыдавал отчет по всем клиентам.
__________________
Александр
Старый 15.02.2009, 19:38   #5  
_scorp_ is offline
_scorp_
Участник
Аватар для _scorp_
MCBMSS
 
488 / 369 (13) ++++++
Регистрация: 25.07.2007
Адрес: Москва
Цитата:
Сообщение от tolstjak Посмотреть сообщение
... надо чтобы отчет выдавал данные по выбранному клиенты, если клиент не выбран ыдавал отчет по всем клиентам.
А что будет, если пользователь захочет посмотреть данные по двум или трём клиентам? Если он захочет ввести критерий поиска:

клиент1,клиент2,клиент3

Не лишайте пользователя удобств стандартного функционала. Прислушайтесь к совету Wamr.
Старый 15.02.2009, 15:14   #6  
tolstjak is offline
tolstjak
Участник
 
440 / 16 (1) ++
Регистрация: 05.01.2003
Цитата:
Сообщение от Wamr Посмотреть сообщение
Правильно заменить while select на while(QueryRun.next())
А до этого сформировать запрос через QueryRun ?
Примерно
query query;
QueryBuildDataSource qBSСTrans;
;

query = new Query();


qBSСTrans = query.addDataSource(tableNum(CustTrans));
.......
.......


правильно понял?
__________________
Александр
Старый 15.02.2009, 14:55   #7  
oip is offline
oip
Axapta
Лучший по профессии 2014
 
2,564 / 1416 (53) ++++++++
Регистрация: 28.11.2005
Записей в блоге: 1
Цитата:
Сообщение от miklenew Посмотреть сообщение
X++:
((CustID && CustTrans.CustID == CustID) || !CustID)
К чему такие сложности?
X++:
!ustId || custTrans.CustId == custId
За это сообщение автора поблагодарили: miklenew (2).
Старый 15.02.2009, 15:23   #8  
miklenew is offline
miklenew
Участник
Аватар для miklenew
MCBMSS
1C
Лучший по профессии 2009
 
1,688 / 433 (18) +++++++
Регистрация: 10.07.2006
Адрес: г. Ликино-Дулёво
Цитата:
Сообщение от oip Посмотреть сообщение
К чему такие сложности?
X++:
!ustId || custTrans.CustId == custId
Согласен. Так лучше.
Цитата:
Сообщение от tolstjak Посмотреть сообщение
Как я понимаю в таком случае отчет не будет выдавать ошибку, но данные тоже не будет выводить, а надо чтобы отчет выдавал данные по выбранному клиенты, если клиент не выбран ыдавал отчет по всем клиентам.
Пробовали?
__________________
Энергия молодых и неравнодушных способна изменить мир к лучшему.
Старый 15.02.2009, 15:26   #9  
tolstjak is offline
tolstjak
Участник
 
440 / 16 (1) ++
Регистрация: 05.01.2003
Цитата:
Сообщение от miklenew Посмотреть сообщение
Согласен. Так лучше.

Пробовали?
Сейчас попробую
__________________
Александр
Старый 15.02.2009, 15:51   #10  
tolstjak is offline
tolstjak
Участник
 
440 / 16 (1) ++
Регистрация: 05.01.2003
Попробовал.
Ничего не выводит.

Пример:
CustTrans custTrans;
TransDate fromDate;
TransDate toDate;
CustAccount CustId;

;
fromDate = 01\12\2007;
toDate = 31\12\2007;
//CustId = "001131";
CustId = " ";


while select * from custTrans
where custTrans.TransDate > fromDate && custTrans.TransDate < toDate &&
((CustID && custTrans.AccountNum == CustID) ||
!CustID)
if (custTrans)

info(strfmt("%1, %2", custTrans.AccountNum, custTrans.AmountMST));

Что сделал не так?
__________________
Александр
Старый 15.02.2009, 15:57   #11  
ZVV is offline
ZVV
MCITP
MCP
Oracle
MCBMSS
 
1,006 / 246 (11) ++++++
Регистрация: 13.02.2004
Адрес: Минск
->
Цитата:
Сообщение от tolstjak Посмотреть сообщение
Попробовал.
Ничего не выводит.

Пример:
CustTrans custTrans;
TransDate fromDate;
TransDate toDate;
CustAccount CustId;

;
fromDate = 01\12\2007;
toDate = 31\12\2007;
//CustId = "001131";
CustId = " ";


while select * from custTrans
where custTrans.TransDate > fromDate && custTrans.TransDate < toDate &&
((CustID && custTrans.AccountNum == CustID) ||
!CustID)
if (custTrans)

info(strfmt("%1, %2", custTrans.AccountNum, custTrans.AmountMST));

Что сделал не так?
Например, вместо
X++:
CustId = " ";
попробовать
X++:
CustId = "";
...
мелочь конечно, а всё-таки...
__________________
Zhirenkov Vitaly
Старый 15.02.2009, 15:57   #12  
oip is offline
oip
Axapta
Лучший по профессии 2014
 
2,564 / 1416 (53) ++++++++
Регистрация: 28.11.2005
Записей в блоге: 1
Цитата:
Сообщение от tolstjak Посмотреть сообщение
CustId = " ";
CustId = "";
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Запрос по таблице параметров. uchenik DAX: Программирование 26 18.03.2009 07:12
Передача параметра в Запрос(Query) Zoe DAX: Программирование 5 07.07.2008 15:27
Передача параметров запроса из CurrentList tolstjak DAX: Программирование 3 21.04.2008 09:56
Запрос на форме как Select или готовая выборка в форму? rohlenko DAX: Программирование 9 23.06.2005 13:38
передача параметров в Report eugene egorov DAX: Программирование 1 25.06.2002 19:34

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 13:49.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.