21.07.2010, 15:41 | #21 |
Участник
|
|
|
21.07.2010, 16:01 | #22 |
Участник
|
|
|
21.07.2010, 16:55 | #23 |
Участник
|
|
|
22.07.2010, 13:54 | #24 |
Участник
|
Как уже писалось выше, есть подозрение, что это из-за специфического типа данных, который Вы пихаете в контейнер.
Например, на таблицах VendTrans или CustTrans есть поля AmountMST - у меня в запросе типа: X++: while select vendtrans where vendtrans.AccountNum == "2545" { info(strfmt("%1", vendtrans.AmountMST)); } Так что проблема кроется в типе EDT, вернее, в его свойствах SignDisplay |
|
22.07.2010, 15:58 | #25 |
Участник
|
Да, выводятся 3 типа значений. Но что интересно. поле vendtrans.AmountMST имеет расширенный тип AmountMSTDebCred, которое имеет свойство SignDisplay=None ! Вот это совсем непонятно, откуда тогда берутся плюсы и минусы, по логике как раз не должно было быть вообще никаких знаков !
|
|
26.07.2010, 12:11 | #26 |
Молодой, подающий надежды
|
Возможно, где-то использовалась функция corrFlagSet(real real, int arg)
Вот джоб для наглядности: X++: static void signProblem(Args _args) { AmountMstDebCred amount; container value; ; amount = 5; value = conpoke(value, 1, amount); info(strFmt("Type: %1, Value: %2", typeOf(conpeek(value, 1)), conpeek(value, 1))); amount = corrFlagSet(amount, 1); value = conpoke(value, 2, amount); info(strFmt("Type: %1, Value: %2", typeOf(conpeek(value, 2)), conpeek(value, 2))); info(strFmt("Type: %1, Value: %2", typeOf(conpeek(value, 2)), abs(conpeek(value, 2)))); } Type: Real, Value: 5,00 Type: Real, Value: +5,00 Type: Real, Value: 5,00 Последний раз редактировалось pedrozzz; 26.07.2010 в 12:18. Причина: добавил результаты джоба |
|
12.08.2010, 12:08 | #27 |
Участник
|
попробуйте СОЗДАВАТЬ контейнер не так
con += realCurr; (или так con = con + realCurr) - глючит а так con = conins (con, conlen(con) + 1, realCurr); - корректный код возможно здесь имеет место быть глюк Аксапты для контейнеров . Глючит на больших массивах, не сразу и поймаешь, может очередной элемент превратить в контейнер, стринг или вообще в непонятное - у меня просто вылетало, а здесь strFmt не дает ошибку... ловил отладчиком так - если есть знак плюс - получить индекс массива - и смотрим что в этом элементе контейнера в отладчике - иногда где-нибудь 1000 элемент ищем. К сожалению нет джоба дающего 100% выход на такое. |
|
Теги |
преобразование типов |
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|