Европейское преобразование номеров при перерисовке
У меня есть ячейка flexgrid, которая не обрабатывает европейское форматирование чисел так, как я хочу. Некоторые детали могут быть абстрагированы от меня в коде.
В настоящее время моя панель управления "локальный регион" настроена на целевое местоположение (Дания / Дания).
Я могу успешно ввести десятичное значение, например 12,36 в датском формате (в американском формате, конечно, это 12,36).
Это значение правильно обрабатывается и обрабатывается по мере его передачи в SQL и использования.
После этого я предполагаю, что под ним происходят различные проверки, и по этой линии
.Redraw = flexRDDirect
Там, где сетка пытается перерисовать, Мои числа в этой ячейке подвергаются некоторому преобразованию.
Пример
Если я введу 12,36, я думаю, что каким-то образом запятая преобразуется непосредственно в десятичную точку и неправильно форматируется с датского на американский (или наоборот) с использованием функций на месте. Затем в какой-то момент ячейка повторно проверяется, и предполагается, что это значение 12.36 все еще в датском формате, что эквивалентно одной тысяче двести тридцать шесть (но записано плохо, поскольку разделитель тысяч находится в неправильном положении).
Так что теперь мое значение 12,36 (или 12,36 в США) превратилось в 12,36 на датском языке, что на самом деле составляет 1,236,00(на датском языке) при правильном форматировании (разделитель тысяч в правильном положении), что теперь в 100 раз больше моего первоначального значения 12,36
Так есть ли что-то в vb6/flexgrid, которое явно превращает эту запятую в десятичную точку, а затем пытается выполнить локальное форматирование (что, по сути, умножит мое значение на 100)? Есть ли что-то, что вызывается с .Redraw = flexRDDirect
Строка, где я вижу изменения значений? Я подозреваю, что где-то есть некоторый пользовательский код, который пытается приспособиться к форматированию локальной области без использования поставляемых функций. Но, возможно, нет!
Все это не моя область знаний в области кодирования. Если требуется более подробная информация, пожалуйста, дайте мне знать.
1 ответ
Я нашел проблему, и это было, как я подозревал; что-то еще пыталось преобразовать числовое значение и отформатировать его. Ошибка при попытке добавить 0 и десятичную точку к числу. Поэтому, когда VB+region_settings обработал это (правильно), это было испорчено.