|
![]() |
#1 |
Участник
|
передача параметров в запрос while select
Здравствуйте уважаемые.
Подскажите пожалуйста как правильно передать параметры запроса в запрос while select .... ошибка появляется в том случае, когда один из параметров не указан. Запрос ничего не вводит. К примеру параметры отчета: период: fromDate, toDate Клиент: CustID Запрос: while select * from CustTrans where CustTrans.TransDate > fromDate && CustTrans.TransDate < toDate && CustTrans.CustID == CustID ....... Если параметр отчета Клиент (CustID = " ") не указан отчет ничего не выводит. Заранее благодарен.
__________________
Александр |
|
![]() |
#2 |
----------------
|
Правильно заменить while select на while(QueryRun.next())
|
|
![]() |
#3 |
Участник
|
А так?
X++: while select * from CustTrans where CustTrans.TransDate > fromDate && CustTrans.TransDate < toDate && ((CustID && CustTrans.CustID == CustID) || !CustID)
__________________
Энергия молодых и неравнодушных способна изменить мир к лучшему. |
|
|
За это сообщение автора поблагодарили: tolstjak (1). |
![]() |
#4 |
Участник
|
Цитата:
Как я понимаю в таком случае отчет не будет выдавать ошибку, но данные тоже не будет выводить, а надо чтобы отчет выдавал данные по выбранному клиенты, если клиент не выбран ыдавал отчет по всем клиентам.
__________________
Александр |
|
![]() |
#5 |
Участник
|
Цитата:
клиент1,клиент2,клиент3 Не лишайте пользователя удобств стандартного функционала. Прислушайтесь к совету Wamr. |
|
![]() |
#6 |
Участник
|
А до этого сформировать запрос через QueryRun ?
Примерно query query; QueryBuildDataSource qBSСTrans; ; query = new Query(); qBSСTrans = query.addDataSource(tableNum(CustTrans)); ....... ....... правильно понял?
__________________
Александр |
|
![]() |
#7 |
Axapta
|
К чему такие сложности?
X++: !ustId || custTrans.CustId == custId
__________________
С уважением, Олег. |
|
|
За это сообщение автора поблагодарили: miklenew (2). |
![]() |
#8 |
Участник
|
Согласен. Так лучше.
Пробовали?
__________________
Энергия молодых и неравнодушных способна изменить мир к лучшему. |
|
![]() |
#9 |
Участник
|
__________________
Александр |
|
![]() |
#10 |
Участник
|
Попробовал.
Ничего не выводит. Пример: 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)); Что сделал не так?
__________________
Александр |
|
![]() |
#11 |
MCITP
|
![]() Цитата:
Сообщение от 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 |
|
![]() |
#12 |
Axapta
|
__________________
С уважением, Олег. |
|