Показать сообщение отдельно
Старый 29.07.2011, 11:19   #3  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Судя по кракозябрам у вас ax3.0
совет: переключайтесь в русский язык ПЕРЕД копированием в буфер обмена, чтобы сохранить русский текст неизменным.

Очень подозрительным выглядит этот участок кода.
Цитата:
Сообщение от JuniorAx Посмотреть сообщение
select excR
where excR.CurrencyCode == cur.CurrencyCodeParent
&& excR.FromDate == dt;
{
С чего это после точки запятой идет открывающая фигурная?
скорее всего, были какие-то правки.

Что касается кода вообще, то вот как он переводится на человеческий:
1. перебрать ВСЕ валюты, удовлетворяющие условию
2. выбрать ОДИН курс, удовлетворяющий условию
3. если курс выбран И его код равен некоему enumstr(!!!!!!)
3.1. то ДОБАВИТЬ еще один курс
... и так далее

Во-первых, по смыслу - вы ДОБАВЛЯЕТЕ курс, если он УЖЕ ЕСТЬ.
Поэтому во втором проходе получаете ДВА курса.
Аксапточка сделала ровно то, что ей сказали.

Во-вторых, по стилю - сравнивать CurrencyCode с EnumStr - предельно некорректно. Прежде всего потому, что Аксапта может работать с разными языками и никто не гарантирует, что enumstr в разных языках будут одинаковыми. НИКОГДА так не делайте. Заведите строковые параметры в таблице параметров.
__________________
полезное на axForum, github, vk, coub.