|
Маска формата для отображения отрицательного числа с разделителем разрядов
|
|||
---|---|---|---|
#18+
Доброе утро! Такая проблема. В Forms для отображения числа с разделителем разрядов используется такая маска: FM999" "999" "999" "990 Всё хорошо отрабатывает для положительных чисел. При этом, если встречается отрицательное небольшое число, то минус сдвигается от первой цифры числа на кол-во символов в маске. Пример, число -1455 выглядит как -______1 455 (нижними подчёркиваниями заменил пробелы, т.к. схлопываются в редакторе в один) Соответственно, для каких-то чисел данный минус вообще становится не видно в небольших элементах. А если и видно, то такое отображение сложно назвать удобным для восприятия. Может кто подскажет другой формат или простые пути решения (без замены числовых элементов на символьные)? Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2019, 08:33 |
|
Маска формата для отображения отрицательного числа с разделителем разрядов
|
|||
---|---|---|---|
#18+
Что за пробелы в маске? Если это групповые разделители, то нужно использовать стандартный символ "G". Под рукой нет тестового истнанса с Forms, так что на чистом PL SQL: Код: plsql 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2019, 15:46 |
|
Маска формата для отображения отрицательного числа с разделителем разрядов
|
|||
---|---|---|---|
#18+
Александр СпелицинЧто за пробелы в маске? Если это групповые разделители, то нужно использовать стандартный символ "G". Под рукой нет тестового истнанса с Forms, так что на чистом PL SQL: Код: plsql 1. 2. 3. 4. 5.
Замечательно. Спасибо. Всё получилось в лучшем виде. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2019, 16:38 |
|
Маска формата для отображения отрицательного числа с разделителем разрядов
|
|||
---|---|---|---|
#18+
К сожалению, новая проблема появилась при использовании нового формата "FM999G999G999G990": в FORMS-ах символ разделения групп разрядов отображается как точка , а не пробел . И как это поменять - пока нет никакого представления. Настройка Код: plsql 1.
не работает. В региональных параметрах в ОС установлен пробел... Откуда FORMS-ы тянут точку - загадка... (( Может кто знает? И как её поменять на пробел... ... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2019, 08:49 |
|
Маска формата для отображения отрицательного числа с разделителем разрядов
|
|||
---|---|---|---|
#18+
oracletbmНастройка Код: plsql 1.
не работает. Где именно выполняется этот код? В этот блок действительно управление передается? oracletbmВ региональных параметрах в ОС установлен пробел... Откуда FORMS-ы тянут точку - загадка... (( Формсам до лампочки Ваши региональные параметры ОС. Смотрите настройки Вашего Forms сервера. Именно оттуда все берется. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2019, 13:48 |
|
Маска формата для отображения отрицательного числа с разделителем разрядов
|
|||
---|---|---|---|
#18+
Александр Спелицин Где именно выполняется этот код? В этот блок действительно управление передается? В триггере WHEN-NEW-FORM-INSTANCE Код: plsql 1.
Александр Спелицин Формсам до лампочки Ваши региональные параметры ОС. Смотрите настройки Вашего Forms сервера. Именно оттуда все берется. А где именно смотреть настройки Forms сервера? Это именно настройки сервера или локальные настройки Forms? АБД посоветовал внести настройку в реестр для ORACLE, при этом данные в SQL PLUS стали цеплять указанный формат, а FORMS-ам хоть бы что... Может можно в реестре и для FORMS-ов такой же параметр указать, но пока информации об этом нет... ... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2019, 14:28 |
|
Маска формата для отображения отрицательного числа с разделителем разрядов
|
|||
---|---|---|---|
#18+
Александр Спелицин Где именно выполняется этот код? В этот блок действительно управление передается? В триггере WHEN-NEW-FORM-INSTANCE Код: plsql 1.
Александр Спелицин Формсам до лампочки Ваши региональные параметры ОС. Смотрите настройки Вашего Forms сервера. Именно оттуда все берется. А где именно смотреть настройки Forms сервера? Это именно настройки сервера или локальные настройки Forms? АБД посоветовал внести настройку в реестр для ORACLE, при этом данные в SQL PLUS стали цеплять указанный формат, а FORMS-ам хоть бы что... Может можно в реестре и для FORMS-ов такой же параметр указать, но пока информации об этом нет... ... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2019, 16:01 |
|
Маска формата для отображения отрицательного числа с разделителем разрядов
|
|||
---|---|---|---|
#18+
oracletbmВ триггере WHEN-NEW-FORM-INSTANCE Перенесите в PRE-FORM oracletbmА где именно смотреть настройки Forms сервера? Это именно настройки сервера или локальные настройки Forms? Это настройки продукта "Oracle Forms Server". Формсы и репортсы держат все свои настройки в конфиг-файлах. Причем от версии к версии эти файлы меняются, как и ссылки на вложенные файлы. Начтите с того места, где Вы определяли переменную NLS_LANG на сервере. Если не поможет, то смотрите в default.env (Точное имя и место этого файла прописана в forms.cfg). За подробностями в Google oracletbmАБД посоветовал внести настройку в реестр для ORACLE, при этом данные в SQL PLUS стали цеплять указанный формат, а FORMS-ам хоть бы что... Может можно в реестре и для FORMS-ов такой же параметр указать, но пока информации об этом нет... И каким образом программа запущенная на UNIX сервере полезет в Ваш виндовый локальный реестр??????? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2019, 17:44 |
|
Маска формата для отображения отрицательного числа с разделителем разрядов
|
|||
---|---|---|---|
#18+
Александр Спелицин, Спасибо. Перенос в PRE-FORM не помогает. Да и в инете написано, что команда SET NLS_NUMERIC_CHARACTERS в FORMS-ах не работает... По словам АБД "мы не используем Oracle Forms Server там настройки иные у нас же локальный Oracle Forms Runtime" Файла forms.cfg вообще не нашёл, но нашёл formsweb.cfg и в папке с ним и default.env . Добавил в файл параметр NLS_NUMERIC_CHARACTERS=, но к сожалению пробел так и не появился... Изучение подробностей в GOOGLE к сожалению ничего не добавило... Пишут, что если настроек в файле нет, то они берутся из реестра, т.е. в реестр всё-таки программа заглядывает тоже... Но относится это только к Oracle Forms Server или и локальной части - непонятно. Да и где именно это указывать в реестре тоже непонятно. В общем прошу прощения за надоедливость, но что делать так и непонятно... Неужели никому в Forms-ах не требовалось выводить числа в наглядном виде... Или всех точка устраивала... P.S. Судя по всему первичный формат, который в начале темы указан ( FM999" "999" "999" "990 ) был в своё время использован для борьбы с проблемой точки в FORMS-ах, но он влечёт другую проблему - сдвиг минуса от числа... Неужели решить обе проблемы невозможно?! ... |
|||
:
Нравится:
Не нравится:
|
|||
26.08.2019, 10:29 |
|
Маска формата для отображения отрицательного числа с разделителем разрядов
|
|||
---|---|---|---|
#18+
oracletbmПишут, что если настроек в файле нет, то они берутся из реестра, т.е. в реестр всё-таки программа заглядывает тоже... Но относится это только к Oracle Forms Server или и локальной части - непонятно. Да и где именно это указывать в реестре тоже непонятно. 1. К Client-Server относится. Параметры берутся из переменных окружения (environment), если их там нет из реестра 2. Насчет "где именно указывает" - указывается в DEFAULT_HOME, в принципе, можно указать во всех ветках, хуже не будет. (банальный поиск по реестру например ключика NLS_LANG) note1: NLS_LANG менял, NLS_NUMERIC_CHARACTERS сам никогда не трогал note2: не будет ли проблем как указывать пробел в значении параметра в окружении или реестре, с ходу не сообразить. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.08.2019, 15:41 |
|
Маска формата для отображения отрицательного числа с разделителем разрядов
|
|||
---|---|---|---|
#18+
oracletbmНеужели решить ... проблемы невозможно?! возможно, т.к. проблемы нет как таковой. Нужно просто прочитать доки, как правильно указать настроики. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.08.2019, 15:42 |
|
Маска формата для отображения отрицательного числа с разделителем разрядов
|
|||
---|---|---|---|
#18+
P.S. Сейчас запустил нашу систему, формат вывода для денег у нас с пробелом. Маска на итеме указана: FM999G999G999G990D00 NLS_NUMERIC_CHARACTERS указан в реестре в HKEY_LOCAL_MACHINE \ Software \ Oracle концевой пробел в реестре указывается нормально (на 64 битной операционке нужна 32-битная ветка реестр ! AFAIK) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.08.2019, 15:51 |
|
Маска формата для отображения отрицательного числа с разделителем разрядов
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev, Спасибо. Концевой пробел не работает в реестре (по крайней мере на моём компе). АБД накопали где-то, что нужно такой формат использовать: NLS_NUMERIC_CHARACTERS=, ( d => \",\" g => \" \") Всем спасибо! Проблема решена. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2019, 08:14 |
|
Маска формата для отображения отрицательного числа с разделителем разрядов
|
|||
---|---|---|---|
#18+
oracletbm, автортакой формат использовать: NLS_NUMERIC_CHARACTERS=, ( d => \",\" g => \" \") Оказалось даже проще. Система не понимает конечный символ пробела (видимо делает внутри RTRIM или TRIM). поэтому нужно ввести нужный формат, чтобы пробел был закрыт любым другим символом. Например, NLS_NUMERIC_CHARACTERS=, 1 ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2019, 09:40 |
|
|
start [/forum/topic.php?fid=51&gotonew=1&tid=1877902]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
55ms |
get topic data: |
13ms |
get first new msg: |
8ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 174ms |
0 / 0 |