Здравствуйте, Andrew S, Вы писали:
AS>Да, это так. Но что запихивает, например, интернет эксплорер, я не знаю (и запихивает ли что то вообще, как я уже говорил, фишка в том, что ошибка выползает _сразу_ после CreateObject("Word.Application"), т.е., фактически, после запуска ком сервера. Ни о каких invoke еще речи и не идет... AS>
AS>setLocale(1049)
AS>Set w = CreateObject("Word.Application")
AS>
AS>Та же самая ошибка, в не зависимости от задаваемой локали...
AS>Да и вообще — проверил, в Invoke всегда передается 409-я, вне зависимости от setLocale. Вот такие дела. Если неправильно ставим локаль — то бейсик ругается "объект не поддерживает выбранные национальные настройки", т.е. сам setLocale хоть как то, но работает. Что то тут завязано на создание объекта, однозначно.. но как — это надо спецов по Com дергать...
Упс... Погоди, не понял: какая ошибка выползает сразу после CreateObject("Word.Application")?
Проверил: у меня не выползает — создается Application, делаю видимым — все ок.
Можешь код написать?
Да, по памяти: создавай лучше Word.Document — проблем будет меньше , а эффект — тот же.
AS>>Да и вообще — проверил, в Invoke всегда передается 409-я, вне зависимости от setLocale. Вот такие дела. Если неправильно ставим локаль — то бейсик ругается "объект не поддерживает выбранные национальные настройки", т.е. сам setLocale хоть как то, но работает. Что то тут завязано на создание объекта, однозначно.. но как — это надо спецов по Com дергать...
DR>Упс... Погоди, не понял: какая ошибка выползает сразу после CreateObject("Word.Application")?
"Неверно указана единица измерения". Когда ставим разделителем обратно запятую, ее не выползает.
Сам сервер при это живет и (вроде) даже работает, но в том же IE после вывода этой ошибки документ он уже не открывает. В общем, даже DDE\OLE уже нормально не работают. Офис хр, на 97-м все было ОК.
DR>Проверил: у меня не выползает — создается Application, делаю видимым — все ок. DR>Можешь код написать? DR>Да, по памяти: создавай лучше Word.Document — проблем будет меньше , а эффект — тот же.
К>>>Причём можно настроить, импортировать таблицу, затем обратно вернуть.
AS>>А с вордом шо делать? Задолбал ужо этот гад
К>А ворд работает с буквами, а не числами. Сделать замену точки на запятую в выделенном блоке — какие проблемы. К>Больше того, ворд знает о многоязыкости и выполняет автоформат в зависимости от текущей клавиатуры. Например,
Здравствуйте, Andrew S, Вы писали:
AS>"Неверно указана единица измерения". Когда ставим разделителем обратно запятую, ее не выползает. AS>Сам сервер при это живет и (вроде) даже работает, но в том же IE после вывода этой ошибки документ он уже не открывает. В общем, даже DDE\OLE уже нормально не работают. Офис хр, на 97-м все было ОК.
А, xp... Тот еще парень: мы должны саппортить все варианты офисов, т.к. наша прога отчеты туда кидает. Так вот, xp — странный вариант: то, что в 97, в 2000, в 2003 работает, в xp — нет. Приходится изворачиваться. Там, кажется, ребята резво бросились рефакторить интерфейсы, да неаккуратно — где dispid поменяли при изменении параметров и их количества, где нет. Чтобы код работал во всех офисах ожидаемым образом, приходится для части методов использовать раннее связывание, для части — позднее.
Ну, это лирика.
Если ошибка сразу при запуске — чтой-то у тебя с общим состоянием офиса\оси.
Если с преобразованием форматов чисел: я вот тестовый пример слабал, на xp позапускал с разными настройками локали. Выяснилось: его интересует не только разделитель дробной части чисел, но и разделитель дробной части валюты. Еще, конечно, разделитель групп разрядов влияет (для английской локали это запятая), но я его выстваил в пробел, чтоб не мешал
Попробовал варианты:
Ч В
1 . .
2 , .
3 . ,
4 , ,
<script language="VBScript"type="text/VBScript">
rem set wd = CreateObject("Word.Document")
rem wd.Application.Visible = true
set wa = CreateObject("Word.Application")
wa.Visible = true
set wd = wa.Documents.Add
wd.Paragraphs.Add
wd.Paragraphs.Add
wd.Paragraphs.Add
wd.Paragraphs(1).LeftIndent = 10.5 'Работает везде :)
wd.Paragraphs(2).LeftIndent = "20,5"'Работает на вариантах 2, 3, 4
wd.Paragraphs(3).LeftIndent = "30.5"'Работает на вариантах 1, 2, 3
</script>
DR>Если ошибка сразу при запуске — чтой-то у тебя с общим состоянием офиса\оси.
Ну не знаю — все работает нормально, кроме офиса. При установке запятой как разделитея и офис нормально. Имхо, не с виндами проблема, а с вордом... Есть другая машина (дома), там ровно такая же проблема с офисом хр.
А вообще, какой из офисов наиболее нормален? Например, в хр я периодически добиваюсь того, что пауер поинт виснет на собственной же презентации. Эта же презентация в 2003-м офисе грузится на ура. Идиотизм Задолбал меня офис хр, хочется чего-нибудь поудобнее..
Здравствуйте, Аноним, Вы писали:
А>Open your registry and find the key below.
А>Create a new String value, or modify the existing value, called "Level1Remove" А>and set it to equal a semi-colon separated list of the extension you want to allow.
А>Restart Outlook for the change to take effect.
А>Note: Any files with the following extensions are normally prohibited from being А>opened or saved when received as e-mail attachments:
А>"ade, adp, asx, bas, bat, chm, cmd, com, cpl, crt, exe, hlp, hta, inf, ins, isp, js, А>jse, lnk, mda, mdb, mde, mdz, msc, msi, msp, mst, pcd, pif, prf, reg, scf, scr, sct, А>shb, shs, url, vb, vbe, vbs, wsc, wsf, wsh"
Не помогло У меня офис 2003, т.е. я менял [HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Outlook\Security]
Причём этот стринг валу пришлось создать, так как такового не было...
Тем не менее результат нулевой... В общем, я пока при своём мнении — программы от майкрософт слишком большого мнения о себе.
Здравствуйте, Andrew S, Вы писали:
DR>>Если ошибка сразу при запуске — чтой-то у тебя с общим состоянием офиса\оси.
AS>Ну не знаю — все работает нормально, кроме офиса. При установке запятой как разделитея и офис нормально. Имхо, не с виндами проблема, а с вордом... Есть другая машина (дома), там ровно такая же проблема с офисом хр.
AS>А вообще, какой из офисов наиболее нормален? Например, в хр я периодически добиваюсь того, что пауер поинт виснет на собственной же презентации. Эта же презентация в 2003-м офисе грузится на ура. Идиотизм Задолбал меня офис хр, хочется чего-нибудь поудобнее..
На вкус и цвет, как говорится...
Я работал со всеми. Наиболее стабильным считаю 2000 — но я в нем дольше всего работал. Сейчас вот довольно долго стоит 2003 — очень нравится, вроде, не менее стабильный. У друзей стоит 97 — нареканий особых нет — в основном, старые глюки, к которым все привыкли
А насчет запуска: проверь, возможно, при старте ворда пытается грузится какая-нибудь надстройка (переводчик, чтоль, спеллер там и т.п.), которую такая локаль не устраивает. Поотключай все, (в т.ч. и автоматическую проверку орфографии — она известный источник многих "веселых минут"), добейся, чтобы стартовало нормально, потом потихоньку включай, пока не выяснишь, кто пакостит.
Если же есть ситуация, в которой стоит "плохая" локаль, идут обращения к ворду через ком, но все работает — пляши от нее. Ну, например, код с ранним связыванием работает (скажем, C++), а код с поздним (из VB-скрипта) — нет. Тогда потихоньку приводим работающую ситуацию в максимальное соответствие с неработающей (моделируем работу процессора скриптов в данном случае): переводим все на явные вызовы Invoke, играем с параметрами, отвечающими за локаль. Работает: идем дальше: сами вызываем GetIDsOfNames, GetTypeInfo и пр. Меняем параметры, отвечающие за локаль. Должно обязательно выплыть место ошибки.
DR>Я работал со всеми. Наиболее стабильным считаю 2000 — но я в нем дольше всего работал. Сейчас вот довольно долго стоит 2003 — очень нравится, вроде, не менее стабильный. У друзей стоит 97 — нареканий особых нет — в основном, старые глюки, к которым все привыкли
Ок, буду думать про покупку 2003-го.
DR>А насчет запуска: проверь, возможно, при старте ворда пытается грузится какая-нибудь надстройка (переводчик, чтоль, спеллер там и т.п.), которую такая локаль не устраивает. Поотключай все, (в т.ч. и автоматическую проверку орфографии — она известный источник многих "веселых минут"), добейся, чтобы стартовало нормально, потом потихоньку включай, пока не выяснишь, кто пакостит. DR>Если же есть ситуация, в которой стоит "плохая" локаль, идут обращения к ворду через ком, но все работает — пляши от нее. Ну, например, код с ранним связыванием работает (скажем, C++), а код с поздним (из VB-скрипта) — нет. Тогда потихоньку приводим работающую ситуацию в максимальное соответствие с неработающей (моделируем работу процессора скриптов в данном случае): переводим все на явные вызовы Invoke, играем с параметрами, отвечающими за локаль. Работает: идем дальше: сами вызываем GetIDsOfNames, GetTypeInfo и пр. Меняем параметры, отвечающие за локаль. Должно обязательно выплыть место ошибки.
ну, вообще, мне баги искать не интересно, мне интересно пользоваться без багов
Здравствуйте, Twirl, Вы писали:
T>Бробывали отключить приложенных файлов блокировку в настройках? Уверяю — помогает.
Вот. так, пишешь программу, долго отлаживаешь что-то (например преобразование чисел в дату), а потом оказывается. что пользователю не нравятся настройки по умолчанию.
p.s. В ворде (любом) меня сильно напрягает список стилей (или как он называется, там где можно указать выравнивание, уровень заголовка и т.п.), вещь почти бесполезная: не запоминает всё точно (приходится или наклон шрифта менять или ещё что-нибудь), зато помнит всякую ерунду, в результате чего все возможные варианты не помещаются на одном листе. Также раздражает (в 2003-м офисе) настройка клавиш вставки, вырезания, как Shift+Insert,Shift+delete, вместо Ctrl+C,Ctrl+X, как это принято в эксплоере. А в целом, что ворд, что эксель — достаточно качественные продукты.Идеальных програм всё же нет.
Здравствуйте, <Аноним>!
А>Из microsoft.public.russian.office:
А>"Louisa" пишет:
>> Поросто козлы создавали этот Office 2003! Копирую таблицу с биржевыми >> котировками в Excel с 4 знаками после запятой, а они превращаются в дату, >> т.к. там, видите ли, точка, а не запятая! Объем данных — огромный, не буду же >> я все переделывать! Я, между прочим, дорого ценю свое время, поэтому и купила >> новый Office, но, оказывается, зря, т.к. он — дерьмо, и вымотал мне все >> нервы!
Согласен!
Буквально на днях из проги выгружаем список в Excel 2003 — строк порядка 30000, колонок более 20 — результат — там где стоит сумма периодически она преобразована в дату причём заметить это тредно сразу т.к. на "первом екране строк" ошибки не видно и пользователь который выкрузил бегло проглядел и отчёт отправил...
Выгружаем этот же список на другой машине — проблем нету вообще.
Сам факт что в одной колонке вышел такой беспорядок наталкивает на грустные мысли
Кстати подобное замечено и на ХР офисе...
Здравствуйте, ЖуК, Вы писали:
ЖуК>Здравствуйте, Аноним, Вы писали:
А>>Open your registry and find the key below.
А>>Create a new String value, or modify the existing value, called "Level1Remove" А>>and set it to equal a semi-colon separated list of the extension you want to allow.
А>>Restart Outlook for the change to take effect.
А>>Note: Any files with the following extensions are normally prohibited from being А>>opened or saved when received as e-mail attachments:
А>>"ade, adp, asx, bas, bat, chm, cmd, com, cpl, crt, exe, hlp, hta, inf, ins, isp, js, А>>jse, lnk, mda, mdb, mde, mdz, msc, msi, msp, mst, pcd, pif, prf, reg, scf, scr, sct, А>>shb, shs, url, vb, vbe, vbs, wsc, wsf, wsh"
А>>Registry Settings А>>User Key: [HKEY_CURRENT_USER\Software\Microsoft\Office\10.0\Outlook\Security] А>>Value Name: Level1Remove А>>Data Type: REG_SZ (String Value)
ЖуК>Не помогло У меня офис 2003, т.е. я менял [HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Outlook\Security] ЖуК>Причём этот стринг валу пришлось создать, так как такового не было...
ЖуК>Тем не менее результат нулевой... В общем, я пока при своём мнении — программы от майкрософт слишком большого мнения о себе.
ЖуК>З.Ы. Аутлук рестартовал
попробуй тоже самое только вместо запятой используй точку с запятой.
e.g.: ade; adp; asx; bas; bat; chm
A>>>А формат ячеек задать эта дура пыталась?
R3>>Не всегда помогает, поверь.
А>Хоть один пример, плиз.
Главное — поменять формат не после копирования — тогда данные уже испорчены — а ДО копирования и во ВСЕХ ячейках соответствующей колонки.
Кроме того, если кто-то просто юзер, это еще не значит, что она дура.
Здравствуйте, Andrew S, Вы писали:
А>>>... DR>>Вообще-то Excel и прочие настройку разделителя дробной части любят брать из системной локали. Не многие юзеры догадаются там ее поменять.
AS>Агащасблин, брать. Офис хр, ставлю разделитель дробной части — точка. При обычном запуске ворда все нормально, при запуске его из скрипта или в другом виде как активх объект — пишет "неверный формат числа" и вываливается. Как бы это помягче сказать, кто они???
В случае, когда процессу нужно передать число или дату как текст, лучше всего не задавать литерал, а задать строковую переменную и предложить ей сформатировать число самой. Даты тоже умеют сами себя форматировать в строки. Тогда ты не будешь зависеть от конкретных установок конкретного пользователя — все сработает при любом Locale
Здравствуйте, Andrew S, Вы писали:
AS>Агащасблин, брать. Офис хр, ставлю разделитель дробной части — точка. При обычном запуске ворда все нормально, при запуске его из скрипта или в другом виде как активх объект — пишет "неверный формат числа" и вываливается. Как бы это помягче сказать, кто они???
...
б) при попытке открыть doc-файл из интернета Internet Explorer выдает то же сообщение и файл при этом открыть не может. А это уже не пустяк.
Хорошо, думаю я, сейчас мы эту единицу измерения укажем верно. Однако долгое копание в апплете "Язык и региональные настройки" не дало никаких результатов. И тогда на помощь был призван Яндекс. Решение было найдено моментально. Но оцените красоту решения! Оказывается, нужно в Ворде с панели инструментов "Форматирование" удалить кнопку "Междустрочный интервал".