28.12.2007, 12:42 | #1 |
MCITP
|
Ошибка в классе SysMailerAddressField в Dynamics Ax 4 SP1. Метод appendAddress.
Обнаружил, что при добавлении нескольких адресов для отправки письма - отправляется последний. Заглянул в код метода appendAddress:
X++: void appendAddress(str addr, str name='') { str address; str addresses; if (prmisdefault(name)) { address = addr; } else { address = name + '[' + addr + ']'; } addresses = this.get(); if (strlen(addresses) > 0) { address = ',' + address; } this.set(address); addressCount++; } Код: void appendAddress(str addr, str name='') { ... if (strlen(addresses) > 0) { address = addresses + ',' + address; } ... } |
|
28.12.2007, 13:47 | #2 |
Участник
|
В 5ке исправлено - правда не так, как Вы предложили:
X++: if (strlen(addresses) > 0) { address = ',' + address; } this.set(addresses + address); |
|
28.12.2007, 14:01 | #3 |
MCITP
|
В любом случае удивляешься порой такому коду.
В таких ситуациях прозрачнее и проще, на мой взгляд, использовать контейнер. |
|
03.01.2008, 18:41 | #4 |
Участник
|
обычно "лучшие практики" советуют для слияния строк исрользовать оператор s += s1 или , например, метод strFmt("%1%2", s, s1). Хотя, наверное, для данного кода разработчики посчитали скорость некритичным параметром.
|
|