powered by simpleCommunicator - 2.0.41     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Вывод в Word (SaveAs)
11 сообщений из 11, страница 1 из 1
Вывод в Word (SaveAs)
    #39175489
miv32
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!

Создаю документ на основании шаблона.

Код: sql
1.
2.
	thisform.loWord = CREATEOBJECT('Word.Application')
	oDoc=thisform.loWord.Documents.Add(FULLPATH(lcNameShab))



В поля документа попадают данные из базы данных. Документ потом редактируется.

При "Сохранить как..." документа хочу в диалоговом окне получить <имя файла (12345)>

Решается

Код: sql
1.
 oDoc.SaveAs(<имя файла (12345))



Но вот беда - в диалоговое окно нужное имя попадает, но при этом файл УЖЕ создается на диске по пути, прописанном в Word
по умолчанию. А он мне там совершенно не нужен.

Как из шаблона сразу создавать файл с нужным мне именем или может есть свойство. в котором имя файла в создаваемом мной объекте Word задается по умолчанию?
...
Рейтинг: 0 / 0
Вывод в Word (SaveAs)
    #39175515
miv32Решается

Код: sql
1.
 oDoc.SaveAs(<имя файла (12345))



Но вот беда - в диалоговое окно нужное имя попадает, но при этом файл УЖЕ создается на диске по пути, прописанном в Word
по умолчанию. А он мне там совершенно не нужен.

Как из шаблона сразу создавать файл с нужным мне именем или может есть свойство. в котором имя файла в создаваемом мной объекте Word задается по умолчанию?Детсад, штаны на лямках... А кто-то запрещает имя файла указывать полностью, вместе с полным путём?
...
Рейтинг: 0 / 0
Вывод в Word (SaveAs)
    #39175593
miv32
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Исходный шаблон lcNameShab = 'qqqqq.docx'. Он один для всех юзеров.
Юзеры работают с базой. У каждой записи свой ID-шник.
В каждой записи естественно свой набор данных.
Надо распечатать документ. Но в документе приходится что-то править.

Через .Add(FULLPATH(lcNameShab)) открываем.
Что-то в нем правим.

Надо чтобы в диалоговом окне, которое предлагает ворд при Сохранить как... было qqqqq (ID-шник).
Т.е. надо чтобы этот (ID-шник) уже предлагался в имени файла. Как так сделать?

Один юзер сам выбирает папку \1000\ и правит имя на ему нужное не меняя значение в скобках.
Другой юзер сам выбирает папку \2000\ и правит имя на ему нужное не меняя значение в скобках.

Если использовать SaveAs("имя"), собирая "имя" через конкатенацию 'qqqqq (' + transform(ID) + ')'
то все работает, но как я сказал ранее - валится мусор вида qqqqq (ID-шник).docx в папку ворда по умолчанию,
который создает SaveAs.
...
Рейтинг: 0 / 0
Вывод в Word (SaveAs)
    #39176052
miv32Если использовать SaveAs("имя"), собирая "имя" через конкатенацию 'qqqqq (' + transform(ID) + ')'
то все работает, но как я сказал ранее - валится мусор вида qqqqq (ID-шник).docx в папку ворда по умолчанию,
который создает SaveAs.Какая еще "папка ворда по умолчанию"? Что мешает сочинить имя фала и спросить паку для сохранения ДО вывода в ворд и подсунуть ворду в SaveAs() ПОЛНОЕ имя с путём?
...
Рейтинг: 0 / 0
Вывод в Word (SaveAs)
    #39176067
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если поискать на просторах интернета (вопрос ОЧЕНЬ старый и часто задавался), то предлагаются два решения:

1. Перехватываешь вызов SaveAs в самом Excel и подсовываешь ему сформированное имя файла, как имя по умолчанию. Но это надо писать макрос Excel. Как это делается, легко найдешь в поисковиках

2. Формируешь шаблон с нужным именем и уже его открываешь

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
* Формирую шаблон с нужным именем
COPY FILE "Исходный шаблон" TO "Шаблон с нужным именем"

thisform.loWord = CREATEOBJECT('Word.Application')
oDoc=thisform.loWord.Documents.Add("Шаблон с нужным именем")

* Удаляю уже не нужный шаблон
DELETE FILE "Шаблон с нужным именем"



Единственный недостаток, это дополнительная цифра 1 в конце имени, присваиваемая Excel автоматически, как номер версии файла
...
Рейтинг: 0 / 0
Вывод в Word (SaveAs)
    #39176072
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, перепутал Word и Excel. Но, думаю, в данном случае это без разницы
...
Рейтинг: 0 / 0
Вывод в Word (SaveAs)
    #39176108
miv32
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вариант с удалением ненужного файла был очевиден, но хотелось добраться до переменной.
Ок, спасибо.
...
Рейтинг: 0 / 0
Вывод в Word (SaveAs)
    #39176235
miv32
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Теперь другая беда
Во первых:

Код: sql
1.
oDoc=thisform.loWord.Documents.Add("Шаблон с нужным именем")



Не работает. Создает не "Шаблон с нужным именем" (у меня Документ1)

Заменил на

Код: sql
1.
oDoc=thisform.loWord.Documents.Open("Шаблон с нужным именем")



Это работает. Сформировал документ, при Сохранить как... предложил нужное мне имя.
Сохраняю, допустим в c:\1

Формирую новый документ, но Word для сохранения опять предлагает папку, где лежит "Шаблон с нужным именем",
а не c:\1 игнорируя свои же собственные настройки.

Беда...
...
Рейтинг: 0 / 0
Вывод в Word (SaveAs)
    #39178055
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На всякий случай уточню. Под термином "шаблон" я понимаю файл с расширением XLT или XLTX. Для их получения надо при использовании SaveAs задать тип файла "Шаблон Excel (*.xltx)"

Если Вы используете файлы с расширением XLS или XLSX, то это НЕ шаблоны в терминах Excel. Это обычные рабочие книги Excel. И для них действуют немного другие правила. Чем и объясняется "глюк" использования Add()

Насколько я понимаю, однажды выбранный путь для сохранения файла будет сохранен в рамках одной "сессии" Excel. Т.е. до тех пор, пока экземпляр Excel не будет закрыт. Обратите внимание, не файл (рабочая книга), а сам экземпляр Excel
...
Рейтинг: 0 / 0
Вывод в Word (SaveAs)
    #39178058
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Опять сбился на Excel

Для Word шаблон имеет расширение DOT или DOTX, в отличие от документов с расширением DOC или DOCX
...
Рейтинг: 0 / 0
Вывод в Word (SaveAs)
    #39178140
miv32
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Оговорочки по Фрейду. :)

Пожалуй да, не совсем шаблон в терминологии Word.
Под шаблоном я подразумеваю заготовку формата *.docx в котором набран некий текст и есть
несколько полей, вставленных через "Разработчик", в которые процедурой я загоняю данные из базы.

Таких заготовок несколько в выпадающем меню.

В принципе при использовании SaveAs скапливающийся "мусор" ложиться в папку по умолчанию, которая
прописана в настройках Ворда. Народ потом чистит периодически. Но зато запоминается своя папка, куда юзер
сохраняет уже скорректированный документ.

Но вот с COPY - увы... "Мусора" нет, но и каждый раз выбирать из каталога нужный путь, да он еще по сети...
Вижу как вариант запоминать путь к папке где-нибудь. (в свойстве, переменной, базе)
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Вывод в Word (SaveAs)
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]