Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Word
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.02.2011, 16:31   #11
Polotenchik
Форумчанин
 
Аватар для Polotenchik
 
Регистрация: 04.12.2008
Сообщений: 260
По умолчанию

Цитата:
Сообщение от Aent Посмотреть сообщение
В MS Word 2010 описанного глюка с Ctrl-Z не наблюдаю. 2007 у меня нет.
А Вы пробовали документ сделанный в 2010 открыть в 2007? Просто я ставил как-то 2010 и наблюдалась вот такая проблема:
http://wordexpert.ru/forum/viewtopic.php?id=546
http://forum.ixbt.com/topic.cgi?id=112:364

Если бы ни она я бы тоже поставил 2010!
Я бы изменил мир, но Бог не дает исходники...

Последний раз редактировалось Polotenchik; 10.02.2011 в 16:34.
Polotenchik вне форума Ответить с цитированием
Старый 10.02.2011, 18:45   #12
Aent
Форумчанин
 
Аватар для Aent
 
Регистрация: 17.07.2009
Сообщений: 519
По умолчанию

Цитата:
Сообщение от Polotenchik
А Вы пробовали документ сделанный в 2010 открыть в 2007?
Цитата:
Сообщение от Aent
2007 у меня нет
Не надо открывать документ в предыдущей версии ...
Указанный глюк, кстати, не единичен. Там много чего может испортиться
Например, менялся междустрочный интервал и расстояние между символами в
тексте.
Но, IMHO, в целом 2010 значительно лучше чем 2007.
В настоящий момент 2007 у меня не установлен. И так как устанавливать его
я не собираюсь, откоментировать проявленные в 2007 глюки не могу.

Последний раз редактировалось Aent; 10.02.2011 в 22:22.
Aent вне форума Ответить с цитированием
Старый 10.02.2011, 20:09   #13
Polotenchik
Форумчанин
 
Аватар для Polotenchik
 
Регистрация: 04.12.2008
Сообщений: 260
По умолчанию

Цитата:
Вы не совсем поняли или я что-то не понимаю. Вот смотрите, я с помощью выпадающего списка выбрал элемент и в нужном месте заменился текст. Потом я работаю дальше уже с обычным тестом (не с тем, что выдал выпадающий список, а просто сам пишу, т.е мне не надо править подставляемый текст), но стоит нажать Ctrl+Z (ход назад), как курсор перемещается к выпадающему списку и все глючит вплоть до зависания!
Все дело в макросе этом, ну в коде

Код:
Private Sub Document_ContentControlOnExit(ByVal ContentControl As ContentControl, Cancel As Boolean)
    ActiveDocument.Fields.Update
End Sub
Как только он сработал начинает глючить ctrl+z. Без него посредством обновления Ф9 все пашет. Может можете посоветовать другой какой-нибудь код или сделать какие-нибудь проверки? Я в этом совсем далек. Не кинете несколько вариантов, может один да прокатит для 2007?!
Я бы изменил мир, но Бог не дает исходники...
Polotenchik вне форума Ответить с цитированием
Старый 19.02.2011, 12:38   #14
Polotenchik
Форумчанин
 
Аватар для Polotenchik
 
Регистрация: 04.12.2008
Сообщений: 260
По умолчанию

Aent, никак не можете больше помочь с кодом?
Я бы изменил мир, но Бог не дает исходники...
Polotenchik вне форума Ответить с цитированием
Старый 19.02.2011, 17:49   #15
Aent
Форумчанин
 
Аватар для Aent
 
Регистрация: 17.07.2009
Сообщений: 519
По умолчанию

У меня нет 2007. В 2010 проблем не наблюдается.

Могу только предложить сменить технологию с элементов управления контентом
на поле MACROBUTTON. Cсылку на вариант с эмуляцией чек бокса я давал выше.
Меню имитируется элементарно: просто по кнопке поля показываете пользовательскую форму с обычным списком или комбо боксом (MSFORM) на ней.
Из макроса, события формы выполняете необходимые замены. Можно менять
закладку, можно поле, можно вообще пустить замену спецстроки по документу.
Вариантов куча.
Aent вне форума Ответить с цитированием
Старый 13.03.2011, 18:15   #16
Polotenchik
Форумчанин
 
Аватар для Polotenchik
 
Регистрация: 04.12.2008
Сообщений: 260
По умолчанию

Aent, прошу еще раз прощение за беспокойство. А нельзя ли сделать так, что бы этот код
Код:
Private Sub Document_ContentControlOnExit(ByVal ContentControl As ContentControl, Cancel As Boolean)
    ActiveDocument.Fields.Update
End Sub
срабатывал не на весь документ, а только для того списка, в котором мы в данный момент что-то выбрали? Просто сейчас когда мы выбрали что-то из списка он обновляет все поля всего документа и когда их много он и думает долго, а хотелось бы, что бы он обновил только поля данного списка.

Цитата:
Добавтьте код для поля SEQ во вставляемый текст.

Настоятельно рекомендую внимательно ознакомься со статьёй
http://msdn.microsoft.com/en-us/libr...ice.10%29.aspx
для первичного понимания вопроса.
Хоть убейте, так и не смог применить. Код SEQ HdLevel1 \* ROMAN вставляет номера, а они у меня уже стоят, мне лишь надо, что бы текст перешел на новый абзац, словно нажали ентер!

Более подробно:

На заседании были:
а) Дима был{ IF { СПИСОК } = Да "Вася был"}
б) Петя был
в) Алеша был

а) б) в) - это нумерация. Т.е если поставить курсор после Алеша был и нажать ентер, то ниже автоматически появится г)

Так вот, теперь мы выбираем из списка "ДА" и должно появиться так:
а) Дима был
б) Вася был
в) Петя был
г) Алеша был

а если выбрать нет, то сного должно стать
а) Дима был
б) Петя был
в) Алеша был

Реально такое?
Я бы изменил мир, но Бог не дает исходники...

Последний раз редактировалось Polotenchik; 14.03.2011 в 11:06.
Polotenchik вне форума Ответить с цитированием
Старый 14.03.2011, 15:58   #17
Aent
Форумчанин
 
Аватар для Aent
 
Регистрация: 17.07.2009
Сообщений: 519
По умолчанию

Цитата:
срабатывал не на весь документ, а только для того списка, в котором мы в данный момент что-то выбрали? Просто сейчас когда мы выбрали что-то из списка он обновляет все поля всего документа и когда их много он и думает долго
Анализируйте в обработчике событий свойство .Tag для элемента управления
контентом. Cответственно ему обновляйте не все поля а только нужные.
Например, обновляйте поля ранга, связанного с закладкой.
Поле SEQ не имеет ключа для кириллической нумерации. В вашем примере нумерация списка задана стилем. Симмитировать ENTER как вы хотите не получится.
Я бы порекомендовал вообще сделать всё по другому.
По кнопке MACROBUTTON вызвать пользовательскую форму со списком с чекбоксами. При нажатии на кнопку на форме обработать список людей,
сформировать необходимый текст и вставить его в документ по закладке.
Если есть коммерческий интерес к такому коду - пишите на E-MAIL предложения.
Можно не вставлять текст из кода а установить для элемента списка переменную
документа и затем проверять её с помощью полей IF и DOCVARIABLE
И работать будет начиная с word 97...
Aent вне форума Ответить с цитированием
Старый 14.03.2011, 15:58   #18
Aent
Форумчанин
 
Аватар для Aent
 
Регистрация: 17.07.2009
Сообщений: 519
По умолчанию

Цитата:
срабатывал не на весь документ, а только для того списка, в котором мы в данный момент что-то выбрали? Просто сейчас когда мы выбрали что-то из списка он обновляет все поля всего документа и когда их много он и думает долго
Анализируйте в обработчике событий свойство .Tag для элемента управления
контентом. Cответственно ему обновляйте не все поля а только нужные.
Например, обновляйте поля ранга, связанного с закладкой.
Поле SEQ не имеет ключа для кириллической нумерации. В вашем примере нумерация списка задана стилем. Симмитировать ENTER как вы хотите не получится.
Я бы порекомендовал вообще сделать всё по другому.
По кнопке MACROBUTTON вызвать пользовательскую форму со списком с чекбоксами. При нажатии на кнопку на форме обработать список людей,
сформировать необходимый текст и вставить его в документ по закладке.
Если есть коммерческий интерес к такому коду - пишите на E-MAIL предложения.
Можно не вставлять текст из кода а установить для элемента списка переменную
документа и затем проверять её с помощью полей IF и DOCVARIABLE
И работать будет начиная с word 97...
Aent вне форума Ответить с цитированием
Старый 14.03.2011, 16:10   #19
Polotenchik
Форумчанин
 
Аватар для Polotenchik
 
Регистрация: 04.12.2008
Сообщений: 260
По умолчанию

Да дело в том, что коммерческого интереса мало, так как у меня документ большой и мне надо самому понять, что бы я мог дальше делать сам. Вы же не будите мне весь документ делать, а потом их много разных. Если вы за денюшку сделаете на одном конкретном примере, я смогу по аналогии дальше сделать сам?

Цитата:
Анализируйте в обработчике событий свойство .Tag для элемента управления
контентом. Cответственно ему обновляйте не все поля а только нужные.
Этот момент не могли бы показать на примере за спасибо ? У меня списку присвоено имя Tag - Test. Как добавить проверку?

Вот так: { IF {q}=1 {MACROBUTTON Макрос1}}
никак не заставить макрос запуститься?
Я бы изменил мир, но Бог не дает исходники...

Последний раз редактировалось Polotenchik; 14.03.2011 в 16:24.
Polotenchik вне форума Ответить с цитированием
Старый 14.03.2011, 20:04   #20
Aent
Форумчанин
 
Аватар для Aent
 
Регистрация: 17.07.2009
Сообщений: 519
По умолчанию

Ну, вообще то, как раз автоматизированные документы клиентам я и делаю ...
В принципе сделать большой сложный документ с автоматизацией от начала до конца вполне реально. Всё конечно зависит от уровня оплаты.
Как правило счёт за 1 документ идёт на тысячи...Очень редко больше 10.
Мне кажется, что "за спасибо" я уже сказал достаточно...
Повторение примера зависит от сходства задач и уровня понимания ...
Как правило верный путь это когда клиент даёт шаблон документа, выделяет в нём
изменяемые места и даёт чёткую формулировку что реально должно быть и что
выбирае/вводит пользователь. Как это реализовать уже моя проблема.
Исходники я не закрываю.
Персональное удалённое обучение (например, детальное объяснение примера
по SKYPE) так же возможно. Но стоит дороже разработки.
И лучше пишите или в личку или на E-Mail/ICQ
Цитата:
{ IF {q}=1 {MACROBUTTON Макрос1}}
- загадочная конструкция...
Цитата:
У меня списку присвоено имя Tag - Test. Как добавить проверку?
Код:
Private Sub Document_ContentControlOnExit(ByVal ContentControl As ContentControl, Cancel As Boolean)
    Select Case ContentControl.Tag
        Case "test"
            ActiveDocument.Bookmarks("zone1").Range.Fields.Update
            ActiveDocument.Bookmarks("zone2").Range.Fields.Update
        Case "Test2"
            ActiveDocument.Bookmarks("zone3").Range.Fields.Update
        Case Else
            '....
    End Select
End Sub
Здесь Zone1-Zone3 имена закладок в рангах которых мы обновляем поля.
Aent вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выпадающий список tsergey Помощь студентам 2 24.01.2010 15:34
Многоуровневый список и стили в Word 2007 CaptainNemo Microsoft Office Word 12 08.06.2009 23:45
Выпадающий список Акашаев Нурлан Общие вопросы Delphi 3 27.06.2008 16:58
выпадающий список SunKnight БД в Delphi 1 24.03.2008 22:44
выпадающий список Toxa Microsoft Office Excel 2 23.04.2007 09:40