powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / передача значений в шаблон Word
14 сообщений из 14, страница 1 из 1
передача значений в шаблон Word
    #33692335
Snow Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
НА форуме FoxClub Владимир Максимов объяснял, как можно вставить данные в существующий вордовский шаблон с помощью объктов "Поле". Не знаю, откуда у меня растут руки :) но у меня не получается вставить таким образом данные. Может кто в состоянии разжевать тугодоходящему человеку, как нормально это можно сделать. Пожалуста!!
На форуме приводиться такой способ
*Создаем новый документ MS WORD на базе ранее созданного шаблона
LOCAL loWord, loDoc
loWord = CREATEOBJECT( 'WORD.APPLICATION')
loDoc=m.loWord.Documents.Add('Полный_путь_доступа'+'Имя_файла_шаблона.dot')

* Подставляем необходимые значения в поля
m.loDoc.Fields(число_порядковый_номер_поля).Result.text="Текст"

* Для заполнения данных таблиц WORD принцип такой
m.loDoc.Tables(число_порядковый_номер_таблицы).Cell(число_ряд,число_колонка).Range.Text="Текст"

* Делаем созданный документ видимым
m.loWord.Visible = .T.

Я попыталась это немного переделать (по Базияну)
oDoc=Createobject('word.application')
oDoc.Visible = .t.
With oDoc
.documents.Add('forma.dot',false)
.selection.Fields(1).Result.text="Текст"

endwith

Пути доступа определены ранее установкой set default to
...
Рейтинг: 0 / 0
передача значений в шаблон Word
    #33692391
AleksMed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А по Максимову ты не прбовал что ли?
...
Рейтинг: 0 / 0
передача значений в шаблон Word
    #33692416
Snow Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пробовала но не получается. :( Может неправильно пробовала (скорее всего неправильно :) ). вот в надежде, что может обьяснят, как правильно, и пишу. Фокс стоит 8.
...
Рейтинг: 0 / 0
передача значений в шаблон Word
    #33692419
5631
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А где ошибка ?
...
Рейтинг: 0 / 0
передача значений в шаблон Word
    #33692424
AleksMed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Возьми код Максимова и так как у тебя заполнение по полям, то убери из него то что относится к заполнению таблиц Wordа.
Я не думаю что у Базияна написана так как ты привела в посте или приведи полный код.
...
Рейтинг: 0 / 0
передача значений в шаблон Word
    #33692425
PilgrimIT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А офис какой?
У меня по Максимову все прекрасно работает!
Может шаблон неправильно сделан?
...
Рейтинг: 0 / 0
передача значений в шаблон Word
    #33692428
Snow Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
По варианту В.Максимово получилось. Таки руки не отуда растут :)
Но хотелось бы узнать, можно ли сделать по варианту, который приводила я. Чтобы не переписывать предыдущий код (мой, который там дальше идет а программе).
Заранее спасибо за ответ.
...
Рейтинг: 0 / 0
передача значений в шаблон Word
    #33692441
PilgrimIT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не вижу смысла переделывать и особой красоты в Вашем коде не нахожу :))
Мне кажется, проблема в .selection
...
Рейтинг: 0 / 0
передача значений в шаблон Word
    #33692500
AleksMed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ты конечно можешь подправить свой код, думаю что вместо selection должно быть Documents(1) или ActiveDocument (вот тут не уверен), НО приучайся писАть как Максимов. :)
...
Рейтинг: 0 / 0
передача значений в шаблон Word
    #33692502
5631
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А может, просто подойдет Tools-Wizards- Mail Merge ?
...
Рейтинг: 0 / 0
передача значений в шаблон Word
    #33692560
Snow Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ты конечно можешь подправить свой код, думаю что вместо selection должно быть Documents(1) или ActiveDocument (вот тут не уверен), НО приучайся писАть как Максимов. :)

Я постараюсь! :)
Всем огромное спасибо!
...
Рейтинг: 0 / 0
передача значений в шаблон Word
    #33698304
Snow Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Еще один вопрос.
Есть такой код
i=1
SCAN FOR i<=(k+1)
i=i+1
m.loDoc.Tables(1).Cell(i,1).Range.Text=i-1
m.loDoc.Tables(1).Cell(i,2).Range.Text=kod
m.loDoc.Tables(1).Cell(i,3).Range.Text=nazva
m.loDoc.Tables(1).Cell(i,4).Range.Text=kilkist
m.loDoc.Tables(1).Cell(i,5).Range.Text=prise
m.loDoc.Tables(1).Cell(i,6).Range.Text=o_sum
m.loDoc.Tables(1).Cell(i,7).Range.Text=prisez
m.loDoc.Tables(1).Cell(i,8).Range.Text=o_summaz
ENDSCAN

Как добавить следующую строку. Точнее передыдущие. Потому что при передаче в Ворд отображается только последняя запись. В Вордовском шаблоне есть только шапка таблицы и одна пустая строка
Заранее спастбо всем откликнувшимся. :)
...
Рейтинг: 0 / 0
передача значений в шаблон Word
    #33698309
Snow Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Еще один вопрос.
Есть такой код
i=1
SCAN FOR i<=(k+1)
i=i+1
m.loDoc.Tables(1).Cell(i,1).Range.Text=i-1
m.loDoc.Tables(1).Cell(i,2).Range.Text=kod
m.loDoc.Tables(1).Cell(i,3).Range.Text=nazva
m.loDoc.Tables(1).Cell(i,4).Range.Text=kilkist
m.loDoc.Tables(1).Cell(i,5).Range.Text=prise
m.loDoc.Tables(1).Cell(i,6).Range.Text=o_sum
m.loDoc.Tables(1).Cell(i,7).Range.Text=prisez
m.loDoc.Tables(1).Cell(i,8).Range.Text=o_summaz
ENDSCAN

Как добавить следующую строку. Точнее передыдущие. Потому что при передаче в Ворд отображается только последняя запись. В Вордовском шаблоне есть только шапка таблицы и одна пустая строка
Заранее спастбо всем откликнувшимся. :)
...
Рейтинг: 0 / 0
передача значений в шаблон Word
    #33698719
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Snow OwlЯ попыталась это немного переделать (по Базияну)
oDoc=Createobject('word.application')
oDoc.Visible = .t.
With oDoc
.documents.Add('forma.dot',false)
.selection.Fields(1).Result.text="Текст"

endwith

Пути доступа определены ранее установкой set default to

SET DEFAULT - это настройка FoxPro.

Команда oDoc.documents.Add() - это некоторая "функция", которая принимает некий символьный параметр. Разбор этого параметра происходит уже не в среде FoxPro, а непосредственно в COM-объекте. Этот COM-объект ничего не знает о настройках FoxPro. Поэтому SET DEFAULT ему ничего не скажет.

Надо передать имя файла с полным путем доступа. Можно так:

Код: plaintext
1.
2.
3.
4.
5.
LOCAL loWord, loDoc
loWord=Createobject('word.application')
m.loWord.Visible = .t. 
loDoc = m.loWord.documents.Add(FULLPATH('forma.dot'),false)
m.loDoc.Fields( 1 ).Result.text="Текст"

Функция FullPath() как раз и сформирует необходимую символьную строку имени файла с полным путем доступа относительно текущей директории.

Snow OwlКак добавить следующую строку.

m.loDoc.Tables(1).Rows.Add()

вставляет одну строку после последней строки данной таблицы. Соответсвенно получаем:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
LOCAL lnI, lnK
lnI= 1 
SCAN FOR m.lnI<=(m.lnK+ 1 )
	m.lnI=m.lnI+ 1 
	IF (m.lnI> 2 )
		m.loDoc.Tables( 1 ).Rows.Add() 
	ENDIF
	m.loDoc.Tables( 1 ).Cell(m.lnI, 1 ).Range.Text=m.lnI- 1 
	m.loDoc.Tables( 1 ).Cell(m.lnI, 2 ).Range.Text=kod
	m.loDoc.Tables( 1 ).Cell(m.lnI, 3 ).Range.Text=nazva
	m.loDoc.Tables( 1 ).Cell(m.lnI, 4 ).Range.Text=kilkist
	m.loDoc.Tables( 1 ).Cell(m.lnI, 5 ).Range.Text=prise
	m.loDoc.Tables( 1 ).Cell(m.lnI, 6 ).Range.Text=o_sum
	m.loDoc.Tables( 1 ).Cell(m.lnI, 7 ).Range.Text=prisez
	m.loDoc.Tables( 1 ).Cell(m.lnI, 8 ).Range.Text=o_summaz
ENDSCAN
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / передача значений в шаблон Word
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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