FoxPro Club Главная

Конференция Решения Фотоальбом Сайт М.Дроздова Статьи Файловый архив Книга Visual FoxPro 9.0 Русский Help для Visual FoxPro
Пользователей: 9176
Вход
Взаимодействие VFP и Word

Как вставить данные из БД в Word с форматированием текста.


 
Прислал: Каратаев   Категория: Foxpro и другие приложения


Взаимодействие VFP и Word

Вставлять текст в Word удобнее сразу с форматированием.

Я делаю это так:

*Это готовый prg-файл.

#define cr chr(13)


oword=create('word.application') && Создаем объект Word

oword.documents.add() && Добавляем чистый лист

oword.caption='Мой Word' && При желании - заголовок окна Word

oWordRef = GetObject('','word.basic') && Инструментарий доступа к объектам Word

***********

owordRef.insert(cr) && Вставляем строку

oWordRef.Font("Times New Roman",18) && Определяем параметры шрифта ...

oWordRef.Bold

oWordRef.Italic

oWordRef.CharColor(2)

owordRef.insert('Дата: '+dtoc(date())+cr) && Вставляем текст и т.д.

owordRef.insert(cr)

************

owordRef.insert(cr)

oWordRef.Font("Times New Roman",12)

oWordRef.Bold(0)

oWordRef.Italic(0)

oWordRef.SelectCurWord

oWordRef.CharColor(0)

owordRef.insert(repl('_',25))

owordRef.insert(cr)

***********

for i=1 to 10

owordRef.insert(cr)

oWordRef.Font("Times New Roman",14)

oWordRef.Bold

oWordRef.Italic(0)

oWordRef.CenterPara

oWordRef.Underline

oWordRef.CharColor(0)

owordRef.insert('Заголовок'+str(i))

owordRef.insert(cr)

oWordRef.Font("Times New Roman",14)

oWordRef.Bold(0)

oWordRef.Italic

oWordRef.JustifyPara

oWordRef.CharColor(0)

owordRef.insert('Текст'+str(i))

owordRef.insert(cr)

ENDFOR


owordRef.insert(cr)

oWordRef.Font("Times New Roman",12)

oWordRef.Bold(0)

oWordRef.Italic(0)

oWordRef.SelectCurWord

oWordRef.CharColor(6)

owordRef.insert('Конец файла '+repl('_',25))

owordRef.insert(cr)


END=oword.activedocument.Bookmarks("EndofDoc").select


oword.visible= .t.


 
Сделайте оценку этого решения Плохо Удовлетворительно Так себе Хорошо Отлично Текущая оценка: (4.961)
Дополнения пользователей
Взаимодействие VFP и Word
[+][?]
Артём
23.06.03 18:35:55

1. Даёт ошибку в следующей строчке
END=oword.activedocument.Bookmarks("EndofDoc").select 
с ремаркой нормально сразу запускает WORD
2. Я Не понял, как вставлять данные из БД
Артём
23.06.03 18:36:58

1. Даёт ошибку в следующей строчке
END=oword.activedocument.Bookmarks("EndofDoc").select 
с ремаркой нормально сразу запускает WORD
2. Я Не понял, как вставлять данные из БД
Александр
24.06.03 06:00:11

1. Строка END=oword.activedocument.Bookmarks("EndofDoc").select 
позиционирует указатель в конце документа. Странно, что у Вас выдает ошибку. Вы первый, может дело
в Word? В любом случае эту строку можно отключить.
2. Данные из БД... ну вот вместо строки
owordRef.insert('Текст'+str(i))
вставляйте свои данные, какие угодно, например: 
owordRef.insert(таблица.поле), тут масса вариантов..., а вместо цикла for endfor можно
использовать scan endscan.
Это же только болванка, показывающая некоторые способы форматирования.
Юрий
18.07.03 10:25:26

Чем это лучше описанного в книгах способа передачи данных из FoxPro в Word?
Александр
18.07.03 10:38:05

На самом деле это решение было размещено где-то в середине - конце 90-х годов. Тогда со
взаимодействием VFP и Word были непонятки (по крайней мере для меня). Здесь в решениях я нашел
пример, но без форматирования. Поэтому посидел, покорпел и выложил свое данное решение. Просто
потом у меня поменялись регистрационные данные, и это решение оказалось как-бы не моим. Хорошо
добрые люди помогли - решение в конце - концов вернулось в разряд моих, но только как-бы оно стало
новым.
А книги такой, где описан способ передачи данных в Word с форматированием текста у меня нет. Да и
у многих наверное тоже. Пользуются тем, кому что доступно.
Юрий
18.07.03 13:27:55

Вопрос снят. Данное решение работает намного быстрее книжного. Единственное, не смог установить
нужную красную строку. В вордовой справке по бейсику приводятся команды, которые для этого решения
не проходят. Если подскажете, как установить нужный формат абзаца (красная строка, отступы слева и
справа, интервал и т. д.), либо адресуете к конкретной книге, буду очень признателен.
Александр
18.07.03 15:13:59

Честно говоря я эти махинации не делал, но их можно посмотреть следующим образом: Открыть Word,
записать макрос с необходимым форматированием, зайти в режим изменения макроса, скопировать оттуда
код и попытаться довернуть его до фокса (макрос на VBA). Я всегда так делал, иногда приходиться и
повозиться, пока код станет читаемым для фокса. А литературы такой я не встречал.
[Дополнить]



© 2000-2017 Fox Club 
При размещении любых материалов с сайта на других ресурсах- прямая ссылка на www.foxclub.ru обязательна
Яндекс.Метрика