:: Visual Foxpro, Foxpro for DOS
Заполнение шаблона в Word
lili
Автор

Сообщений: 436
Откуда: Сыктывкар
Дата регистрации: 07.11.2005
Здравствуйте!
Заполняю шаблон следующим методом:
.Content.Find.Execute("|||1",,True,,,,,,,lStr)
Получаю ошибку "слишком длинный строковый параметр".
Может, тут можно какие-то параметры задать, чтобы lStr большой длины вставлять?
Ratings: 0 negative/0 positive
Re: Заполнение шаблона в Word
Дмитрий Петров

Сообщений: 3071
Откуда: Пермь
Дата регистрации: 09.07.2001
Вроде параметр c замещающим текстом не "на месте" стоит

UPD: проверил. Поставьте его 10-м по счету



Исправлено 2 раз(а). Последнее : Дмитрий Петров, 07.12.17 15:29
Ratings: 0 negative/0 positive
Re: Заполнение шаблона в Word
Pliskin

Сообщений: 2959
Откуда: Новосибирск
Дата регистрации: 19.11.2003
Дмитрий Петров
Поставьте его 10-м по счету

Так он на 10-м и стоит.
Ratings: 0 negative/0 positive
Re: Заполнение шаблона в Word
of63

Сообщений: 25244
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
Заменить за 1 раз на заменитель длиннее 255 (гдето) не получится, но делается так:
-Разбиваем заменитель на кусочки по 100 символов например, и справа добавляем заменяемое (в сумме должно получиться не длиннее 250)
-к последнему кусочку НЕ добавляем заменяемое
-производим замены для каждого получившегося кусочка
Ratings: 0 negative/0 positive
Re: Заполнение шаблона в Word
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
На кой чёрт такое извращение, если достаточно просто вордовскими закладками пользоваться?
oWordDocument.Bookmarks("имя_закладки").Range.Text = переменная_с_кучей_текста_хоть_на_500_страниц


------------------
WBR, Igor
Ratings: 0 negative/1 positive
Re: Заполнение шаблона в Word
of63

Сообщений: 25244
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
Как это понять?... Я заменяю просто текст на текст, типа "||заменяемое1||" на "длинный текст". А закладки - это надо исходный документ готовить с закладками?
Ratings: 0 negative/0 positive
Re: Заполнение шаблона в Word
lili
Автор

Сообщений: 436
Откуда: Сыктывкар
Дата регистрации: 07.11.2005
С закладками выглядит заманчиво, но что-то не получается.
Добавила в шаблон закладку z1.
Делаю так:
oDoc=oword.Documents.Open(my_doc, True, False,False,"","",False,"","",1)
WITH oDoc
.Bookmarks("z1").Range.Text=lStr
ENDWITH
Получаю:"Запрашивамый номер семейства не существует".
Что не так?
Ratings: 0 negative/0 positive
Re: Заполнение шаблона в Word
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Версия ворда, формат открываемого файла...
Для Word 2013 с родным docx всё работает. Конечно без ненужных параметров при открытии - в частности wdOpenFormatDocument - той что 1 в методе Open.
Ну и да, файл .docx НЕ является "шаблоном" - это обычный документ. Шаблоны это несколько иное, и они используются в методе Documents.Add() - чтобы создать новый документ на основе этого самого шаблона - расширение по умолчанию для новых форматов .dotx или .dotm, для старых - .dot


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Заполнение шаблона в Word
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
of63
Как это понять?... Я заменяю просто текст на текст, типа "||заменяемое1||" на "длинный текст". А закладки - это надо исходный документ готовить с закладками?
Конечно. На то он и "шаблон документа", даже если формально шаблоном word и не является.
А что, текст типа "||заменяемое1||" не надо специальным образом прописывать в исходный документ
Помимо закладок есть ещё "поля слияния" - но я не уверен что там не вылезет ограничение на размер текста. Вставлять их в документ несколько геморройнее, зато они явно видны на листе.


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Заполнение шаблона в Word
of63

Сообщений: 25244
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
Вроде это называлось "Именованные поля", только не удалось применить, кнопку не нашел в редакторе (кстати, в экселе это выглядит как .Range("Имя")... ). Да, тоже надо прописывать, но прописано в тексте в виде ||заменяемое||, и переделывать нет смысла.
Ratings: 0 negative/0 positive
Re: Заполнение шаблона в Word
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
of63
(кстати, в экселе это выглядит как .Range("Имя")... ).
В экселе именованный диапазон как раз является аналогом закладки. А никак не текста "||заменяемое||"
of63
прописано в тексте в виде ||заменяемое||, и переделывать нет смысла.
Если устраивает, то переделывать, наверное, нет смысла.

Вот только то что ты прописал в 4-м сообщении для обхода лимита в длине заменяемого текста, иначе как г*нокодом не назвать.
Если бы оно работало без нужды в таких извращениях (а оно и будет работать, если вставляемые тексты не больше пары сотен символов) - то почему бы и нет, а так... Но решать то в конечном счёте тебе


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Заполнение шаблона в Word
lili
Автор

Сообщений: 436
Откуда: Сыктывкар
Дата регистрации: 07.11.2005
Word 2013
Документ формата docx. Попробовала открыть без параметров - результат тот же.
Файл прилагаю. Буду очень благодарна за помощь.
Ratings: 0 negative/0 positive
Re: Заполнение шаблона в Word
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
У меня работает.
oWord = CREATEOBJECT("Word.Application")
oDoc = oWord.Documents.Open("D:\otchet.docx")
oDoc.Bookmarks("z1").Range.Text = REPLICATE("Привет мир! ", 200)
* или просто oWord.Visible = .T.
oDoc.SaveAs("D:\otchet1.docx")
oWord.Quit()
Может антивирус, или ещё какие проблемы конкретно на этой машине...


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Заполнение шаблона в Word
spinz

Сообщений: 5263
Дата регистрации: 21.01.2016
Настройки секьюрности м.б. роляют?
Ratings: 0 negative/0 positive
Re: Заполнение шаблона в Word
of63

Сообщений: 25244
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
> Вот только то что ты прописал иначе как г*нокодом не назвать.
По познаниях в г*коде и извращениях не буду тягаться

> Если бы оно работало без нужды в таких извращениях (а оно и будет работать, если вставляемые тексты не больше пары сотен символов) - то почему бы и нет, а так...
А так предложенная метода заменяет на тексты больше пары сотен символов, какие претензии.

(на память. Называется Закладки, в меню Вставка)


2ТС Способ ИК работает в 2007 офисе. Попробуйте тоже самое проделать в Word-е, в окошке Immediate (Alt-F11)



Исправлено 3 раз(а). Последнее : of63, 08.12.17 15:30
Ratings: 0 negative/0 positive
Re: Заполнение шаблона в Word
lili
Автор

Сообщений: 436
Откуда: Сыктывкар
Дата регистрации: 07.11.2005
Igor Korolyov
У меня работает.
oWord = CREATEOBJECT("Word.Application")
oDoc = oWord.Documents.Open("D:\otchet.docx")
oDoc.Bookmarks("z1").Range.Text = REPLICATE("Привет мир! ", 200)
* или просто oWord.Visible = .T.
oDoc.SaveAs("D:\otchet1.docx")
oWord.Quit()
Может антивирус, или ещё какие проблемы конкретно на этой машине...
Взяла прямо ваши пример - результат, увы, тот же ((
Какие проблемы на этой машине могут быть, не знаю даже, что предположить.
Ratings: 0 negative/0 positive
Re: Заполнение шаблона в Word
lili
Автор

Сообщений: 436
Откуда: Сыктывкар
Дата регистрации: 07.11.2005
Не знаю, что изменилось, но "закладка" заработала. Спасибо за совет!
Ratings: 0 negative/0 positive
Re: Заполнение шаблона в Word
igor0108

Сообщений: 175
Дата регистрации: 30.03.2011
/



Исправлено 1 раз(а). Последнее : igor0108, 25.07.18 13:39
Ratings: 0 negative/0 positive
Re: Заполнение шаблона в Word
igor0108

Сообщений: 175
Дата регистрации: 30.03.2011
Igor Korolyov
У меня работает.
oWord = CREATEOBJECT("Word.Application")
oDoc = oWord.Documents.Open("D:\otchet.docx")
oDoc.Bookmarks("z1").Range.Text = REPLICATE("Привет мир! ", 200)
* или просто oWord.Visible = .T.
oDoc.SaveAs("D:\otchet1.docx")
oWord.Quit()
Может антивирус, или ещё какие проблемы конкретно на этой машине...

Добрый день!
В этом примере в закладку помещается одна строка.
А можно ли в одну закладку поместить информацию из Memo-поля, в котором несколько строк ?
Или придется делать несколько закладок на каждый абзац.
Если в Memo-поле одна строка (без символов CHR(13)+CHR(10)), тогда все хорошо работает.
Если несколько строк - ошибка.
Ratings: 0 negative/0 positive
Re: Заполнение шаблона в Word
of63

Сообщений: 25244
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
Вот так работает. Что за ошибка?
oWord = CREATEOBJECT("Word.Application")
oDoc = oWord.Documents.Open("C:\tmp\otchet.docx")
oDoc.Bookmarks("z1").Range.Text = REPLICATE("Привет мир! "+CHR(13)+CHR(10), 200)
oWord.Visible = .T.
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 23 Victoriacom Владимир Максимов  (Гостей: 21)

© 2000-2024 Fox Club 
Яндекс.Метрика