Цитата:
Сообщение от
jopagames3
Цитата:
Сообщение от
poul_and
Систенный язык НЕ русский.
...
Вышел из положения нарисовав отдельный фонт, в результате в базе хранится текст в виде (Ą/Ī "Āåķņįóķźåšń") а на экран и печать выводится (АО "РогаИКопыта").
Собственный фонт - это круто, чо!

/>
Вообще задача интересная.
А какой именно язык системный?
Как "русские буквы" попадают в базу? Пользователь вводит их с клавиатуры или загружает как текст из файла?
А как отличть именно русское название от локального (финского, например) если буквы одни и те же?
Как вариант можно попробовать поиграть с лицензией (она русская?). В ней хранится табличка преобразования кода клавиши в букву. В русской лицензии 1252 преобразуется в 866. Если база нативная - там вообще просто. Прямо в базу можно кусок этот вписать. С SQL не знаю... надо смотреть.
Можно с кодовой страницей в Винде поиграть. Главное, остальные приложения чтобы не затронуть

/>
А может, скуль может как-то конвертировать.
ЗЫ: Нет, вот с макросом Word - тупиковый вариант. Проще уж на Си написать своё консольное приложение, а файл передавать в качестве аргумента. Но прямо из Nav конвертировать, думаю, еще проще.
ЗЗЫ: А вообще, самому даже интересно, если несколько разных языков в системе, то что именно и как хранится в базе? С 2013 всё понятно - там уже UTF.
Системный язык латышский
База SQL, русского языка в лицензии нет.
"Русские буквы" вводятся с клавиатуры, переключив на русскую раскладку. В базе алфавит выглядит как ĄĮĀĆÄÅØĘĒČÉŹĖĢĶĪĻŠŃŅÓŌÕÖ×ŲŁŚŪÜŻŽ, все эти символы - в неиспользуемой области и не перекрывают латышские. В моём фонте они заменены на русские, на экране пользователь видит АБВГД... В одном поле можно писать и по русски и по латышски (рсская и латышская А выглядят одинаково, но в реальности это разные символы)
С макросом вышло очень даже просто:
сам макрос вида
With Selection.Find
.Text = "Ą"
.Replacement.Text = ChrW(1072)
.Forward = True
.Wrap = wdFindContinue
End With
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = "Į"
.Replacement.Text = ChrW(1073)
.Forward = True
.Wrap = wdFindContinue
End With
Selection.Find.Execute Replace:=wdReplaceAll
..........
так на все 33 буквы
Из Навижн открываем файл Вордом и запускаем Application.Run("MACRO_NAME")