Показать сообщение отдельно
Старый 31.03.2008, 11:34   #1  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Вот переписанный ваш запрос.
X++:
display SalesLineAmount nds18() // НИКАКИХ real. Только Extended Data Type = EDT
{

  TaxItemGroup nds; // НИКАКИХ str. Только Extended Data Type = EDT
  SalesLineAmount nds18; // НИКАКИХ real. Только Extended Data Type = EDT
  ;
  while select SalesLine where
    salesLIne.InventTransId==inventtrans.inventTransId
    && salesline.TaxItemGroup ==  'НДС18' // сразу сокращайте выборку, не надо тянуть с сервера лишние записи
   {
      nds18 += SalesLine.LineAmount;
   }
 return nds18 ;
}
а вот как вы его должны были написать
X++:
display SalesLineAmount nds18() // НИКАКИХ real. Только Extended Data Type = EDT
{

  TaxItemGroup nds; // НИКАКИХ str. Только Extended Data Type = EDT
  ;
  select sum(lineAmount) from SalesLine where
    salesLIne.InventTransId==inventtrans.inventTransId
    && salesline.TaxItemGroup ==  'НДС18' // сразу сокращайте выборку, не надо тянуть с сервера лишние записи
   ;
   nds18 = SalesLine.LineAmount;
   ....
 return nds18 ;
}
далее, таблица inventTrans в данном запросе явно лишняя...
но даже после такой модификации все равно написано плохо, поскольку в display-методах не должно быть обращений к базе.

Цитата:
Сообщение от CasperSKY Посмотреть сообщение
конкретно дисплей метод взят откуда то из стандартного метода ...
Не может такого быть!
__________________
полезное на axForum, github, vk, coub.