Показать сообщение отдельно
Старый 28.06.2004, 12:05   #1  
Aleksandr Parfenov is offline
Aleksandr Parfenov
Участник
 
13 / 10 (1) +
Регистрация: 19.09.2005
Адрес: г. Екатеринбург
Вопрос возникает следующий.
Мне нужно сделать выборку (здесь все только для примера) и поместить ее во вьюшку. Выборка в Oracle выглядела бы так

select sum(((v.PurchPrice*i.qty)-v.DiscAmount*i.Qty)-(((v.PurchPrice*i.qty)-v.DiscAmount*i.Qty)*v.DiscPercent/100)) as ResultField , i.inventdimid
from vendinvoicetrans v ,inventtrans i
where v.inventtransid =i.inventtransid
group by i.inventdimid

возможно ли сие сделать средствами Аксапты?
Т.е. если создать в Аксапте вьюшку , сказать что выбери поля PurchPrice, DiscAmount, discPercent просуммировав их, а по полю InventdimId сделай группировку, а затем создать display метод:
display AmountCur LineAmount()
{
return this.purchPrice*this.qty;
}
display AmountCur method1 ()
{
return (this.LineAmount()-this.DiscAmount*this.Qty)-((this.LineAmount()-this.DiscAmount*this.Qty)*this.DiscPercent/100);
}

То его результат будет не верен, так как скидки действуют по каждой строке, но не по их сумме.
т.е. если имеем
1 строка цена 111,11 скидка 10%
2 строка цена 100 скидка 0
то в результате моего запроса получим сумма = 200
а вот display метод вернет 190
Только не предлагайте посчитать результат именно этого запроса по иному (как выкрутится вэтом конкретном случае я и сам знаю), именно этот запрос приведен только для примера, вопрос задан для того чтобы понять возможно ли делать такую выборку в аксапте или нет.