Проблема кавычек в полях (Field) MS Word
Модератор: Naeel Maqsudov
- Aent
- Сообщения: 1129
- Зарегистрирован: 01 окт 2006, 14:52
- Откуда: Saratov,Russia
- Контактная информация:
Как известно, Word в полях считает фигурные кавычки (« и » ) эквивалентными обычным двойным кавычкам ("). Соответственно,
воспринимает их как терминатор строки. Поэтому приходится либо квотировать их \«, делая затем символ \ невидимым (причём использовать скрытый шрифт для символа \ не получается), устанавливая для его шрифта цвет фона, либо использовать поле SYMBOL ( как кстати и рекомендует Microsoft).
При применении второго способа возникает проблема переноса текста. Даже если после поля SYMBOL стоит символ неразрывной связи, Word может перенести текст после кавычки на другую строку, что нарушает правила оформления документов.
Поэтому я использую первый способ, устанавливая для символа \ при квотировании цвет белый (на белом) и размер шрифта 1.
Есть ли ещё какие идеи как можно бороться с этой проблемой ?
воспринимает их как терминатор строки. Поэтому приходится либо квотировать их \«, делая затем символ \ невидимым (причём использовать скрытый шрифт для символа \ не получается), устанавливая для его шрифта цвет фона, либо использовать поле SYMBOL ( как кстати и рекомендует Microsoft).
При применении второго способа возникает проблема переноса текста. Даже если после поля SYMBOL стоит символ неразрывной связи, Word может перенести текст после кавычки на другую строку, что нарушает правила оформления документов.
Поэтому я использую первый способ, устанавливая для символа \ при квотировании цвет белый (на белом) и размер шрифта 1.
Есть ли ещё какие идеи как можно бороться с этой проблемой ?
- Naeel Maqsudov
- Сообщения: 2570
- Зарегистрирован: 20 фев 2004, 19:17
- Откуда: Moscow, Russia
- Контактная информация:
Да. Проблеме в том, что после поля Word может переносить текст не взирая на неразрывный пробел. Это однозначно глюк. Так не должно быть.Даже если после поля SYMBOL стоит символ неразрывной связи, Word может перенести текст после кавычки на другую строку
Я обычно пользовался одинарными кавычками. Попробуйте открыть и закрыть строку одинарными кавычками, а внутри использовать двойные по вкусу. Получилось?
- Aent
- Сообщения: 1129
- Зарегистрирован: 01 окт 2006, 14:52
- Откуда: Saratov,Russia
- Контактная информация:
Нет не получилось. Какой конкретно символ Вы используете вместо " ?Я обычно пользовался одинарными кавычками.Попробуйте открыть и закрыть строку одинарными кавычками, а внутри использовать двойные по вкусу. Получилось?
Как будет выглядеть Ваш эквивалент поля {if 1 = 1 "ЗАО \« Рога и Копыта \»" }, возвращающий
ЗАО « Рога и Копыта » ?
Андрей Энтелис,
aentelis.livejournal.com
aentelis.livejournal.com
- Naeel Maqsudov
- Сообщения: 2570
- Зарегистрирован: 20 фев 2004, 19:17
- Откуда: Moscow, Russia
- Контактная информация:
Да-а-а-а... Полная фигня получается... Удалось сделать только
if 1 = 1 "ЗАО ''Рога и Копыта''"
Перед "Рога" стоят две одинарные кавычки. Ну, и после копыт тоже. С парными кавычками ничего не выходит...
if 1 = 1 "ЗАО ''Рога и Копыта''"
Перед "Рога" стоят две одинарные кавычки. Ну, и после копыт тоже. С парными кавычками ничего не выходит...

- Aent
- Сообщения: 1129
- Зарегистрирован: 01 окт 2006, 14:52
- Откуда: Saratov,Russia
- Контактная информация:
Naeel Maqsudov,
Проблема ещё в том, что по правилам оформления документов которые я формирую, название юр. лица должно быть заключено в парные фигурные кавычки. Никак иначе. Думал сделать специальный шрифт из 2-х символов. Но таскать его за собой то же не здорово
Так и я о том же ... В описании полей в Word явно указывается, что текст должен быть заключён в двойные кавычки.С парными кавычками ничего не выходит
Проблема ещё в том, что по правилам оформления документов которые я формирую, название юр. лица должно быть заключено в парные фигурные кавычки. Никак иначе. Думал сделать специальный шрифт из 2-х символов. Но таскать его за собой то же не здорово

Андрей Энтелис,
aentelis.livejournal.com
aentelis.livejournal.com
- Naeel Maqsudov
- Сообщения: 2570
- Зарегистрирован: 20 фев 2004, 19:17
- Откуда: Moscow, Russia
- Контактная информация:
1
Если документ, ипользующий нестандаритный шрифт надо кому-то передать, то можно включить шрифт в документ:
Tools/Options/Save/[v]Embed TyrueType fonts
Все будет отображаться корректно. И даже редактировать будет можно.
2
Можно написать макрос для встаквки кавычек Вашим способом (с изменением цвета и размера Escape-символа)
PS
Хуже нет системы, ведущей себя непредсказуемо!
Попробуйте вот это:
{if 1 = 1 "\«ццц\»"}
У меня виден только второй Escape-символ, а первый прячется как ему и положено! Наверное из-за того, что он в начале строки......
ДУРДОМ!
Если документ, ипользующий нестандаритный шрифт надо кому-то передать, то можно включить шрифт в документ:
Tools/Options/Save/[v]Embed TyrueType fonts
Все будет отображаться корректно. И даже редактировать будет можно.
2
Можно написать макрос для встаквки кавычек Вашим способом (с изменением цвета и размера Escape-символа)
PS
Хуже нет системы, ведущей себя непредсказуемо!
Попробуйте вот это:
{if 1 = 1 "\«ццц\»"}
У меня виден только второй Escape-символ, а первый прячется как ему и положено! Наверное из-за того, что он в начале строки......
ДУРДОМ!
- Aent
- Сообщения: 1129
- Зарегистрирован: 01 окт 2006, 14:52
- Откуда: Saratov,Russia
- Контактная информация:
1.Насчёт внедрения TTF - cогласен. Однако поразмыслив пришёл к выводу, что менять шрифт кавычек, что квотирующего символа - морока одинаковая. Макрос соответствующий я давно сделал.
2.Однозначно, прячется не первый Escape-символ, а Escape-символ, являющийся первым символом строки.
3.Язык полей в MS WORD в целом - полный дурдом. Меня бесит отсутствие аналога Mid$.
А если бы можно было использовать собственные VBA функции в полях .... Увы - несбыточные мечты
Cобственно у меня базовый макрос генератора документов обходит коллекцию FIELDS, выбирает поля ADDIN и сам их интерпретирует.
Но раз уж есть родной механизм хотелось пользоваться им. Жаль такой кривой
2.Однозначно, прячется не первый Escape-символ, а Escape-символ, являющийся первым символом строки.
3.Язык полей в MS WORD в целом - полный дурдом. Меня бесит отсутствие аналога Mid$.
А если бы можно было использовать собственные VBA функции в полях .... Увы - несбыточные мечты

Cобственно у меня базовый макрос генератора документов обходит коллекцию FIELDS, выбирает поля ADDIN и сам их интерпретирует.
Но раз уж есть родной механизм хотелось пользоваться им. Жаль такой кривой

Андрей Энтелис,
aentelis.livejournal.com
aentelis.livejournal.com
- Naeel Maqsudov
- Сообщения: 2570
- Зарегистрирован: 20 фев 2004, 19:17
- Откуда: Moscow, Russia
- Контактная информация:
К сожалению не знаю специфики Вашей задачи. Может можно название этого ЗАО брать из свойств документа, где оно будет введено уже с кавычками; или например, из БД (или Таблицы Word) средствами Слияния документов?
- Aent
- Сообщения: 1129
- Зарегистрирован: 01 окт 2006, 14:52
- Откуда: Saratov,Russia
- Контактная информация:
Увы, слияние не спасает. Cуть задачи такова. Имеется реализованный на VBA конструктор, который позволяет, взяв за основу уже отформатированный кем-то DOC файл без полей, внедрить туда поля ADDIN, cодержащие ссылку на некоторую сущность (ФИО, должность, количество, сумму,дату и т.д) и информацию о модификации значения этой сущности и её представлении. Так одних вариантов суммы в рублях и копейках - 6 штук. Естественно падежи, различные прописи и т.д. Шаблон сохраняется. Дале пользователь работает с некой UserForm. Часть информации вводится непосредственно, часть берётся из базы. Держать в базе все возможные варианты и просто брать соответствующее поле не удобно. Тем более что довольно часто добавляются новые сущности. А уж новые форматы информации - постоянно. Спасибо отечественной бюрократии
. На основании всей этой информации и шаблона создаётся экземпляр документа. Да, ещё, модификатор может содержать информацию о способе подстановки поля. Cкажем, довольно часто приходится вписывать текст посимвольно в таблицу. Или связывать два подстановочных несмежных поля в цепочку (о надписях и возможности их сцепления я знаю - неподходит).
Вобщем то проблема давно решена. Мне просто было интересно - не предложит ли кто лучшего решения. Вдруг я что просмотрел.
Спасибо Вам за проявленный интерес к проблеме.

Вобщем то проблема давно решена. Мне просто было интересно - не предложит ли кто лучшего решения. Вдруг я что просмотрел.
Спасибо Вам за проявленный интерес к проблеме.
- Naeel Maqsudov
- Сообщения: 2570
- Зарегистрирован: 20 фев 2004, 19:17
- Откуда: Moscow, Russia
- Контактная информация:
Понятно. BTW, ворд сам умеет писать числительные и денежные суммы прописью. См. ключи форматирования полей CardText и др. Может пригодится в следующих проектах.