Передача данных из таблиц VFP в MS Word — КиберПедия 

Особенности сооружения опор в сложных условиях: Сооружение ВЛ в районах с суровыми климатическими и тяжелыми геологическими условиями...

История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...

Передача данных из таблиц VFP в MS Word

2017-11-17 1186
Передача данных из таблиц VFP в MS Word 0.00 из 5.00 0 оценок
Заказать работу

Существует целый ряд отчетов, в которых не требуется дополнительных вычислений, но выполненных в формате, который нецелесообразно или невозможно представить стандартным построителем отчетов VFP. Кроме того, стандартные отчеты можно только посмотреть и распечатать, а редактировать никак нельзя. В таких случаях удобно использовать возможности стандартного текстового процессора Microsoft Word.

Работа с текстовым процессором мало чем отличается от работы с табличным процессором. Вначале следует подключить Microsoft Word 9.0 Object Library к списку стандартных типов в настройках технологии IntelliSense. Как это сделать рассмотрено выше, на примере библиотеки Excel.

Затем следует создать объект типа приложения, но в качестве класса указать приложение Word. Это выполняется командой oWord=CREATEOBJECT('Word.Application'). В отличии от Excel, с его развитой структурой подобъектов, в Word достаточно создать новый документ и уже можно с ним работать. Создание нового документа осуществляется методом Add() подобъекта Documents.

Операции с контентом (содержимым документа) в Word осуществляются посредством обращения к подобъекту приложения Selection. Поэтому любые операции будут выглядеть как oWord.Selection.<необходимые действия>. Запись текстовой строки осуществляется методом TypeText(). К сожалению, структурной единицей текста верхнего уровня в Word является не строка, а абзац. Для принудительного перехода к новой строке в документе введенный текст необходимо объявить параграфом. При этом к параграфу применятся настройки, объявленные по умолчанию (отступы, выравнивания и т.п.). Ниже приведен простейший пример программного кода, создающего документ Word и записывающий в него текстовую строку:

 

*создаем объект типа приложения Ворда

oWord=CREATEOBJECT('Word.Application')

*создаем новый документ

oWord.Documents.Add()

*записываем в документ строку текста

oWord.Selection.TypeText("Hello World")

*объявляем ее как параграф

oWord.Selection.TypeParagraph

*делаем Ворд видимым

oWord.visible=.T.

 

Кроме текстовых абзацев документ Word может содержать в себе более сложные объекты. Часто используемым подобъектом текста является таблица. Для вставки новой таблицы в документ следует использовать метод Add() объекта Tables. Этот метод требует указания обязательных параметров, а именно: диапазона (туманное понятие, рекомендуется указывать текущий диапазон), количества строк и столбцов в таблице. На самом деле можно указывать еще множество параметров создаваемой таблицы, но все они являются необязательными и рассматриваться в рамках данной работы не будут. В последствии к таблице можно обращаться по ее индексу, например oWord.Selection.Tables(1).

Таблица в Word является двумерным объектом, состоящим из более простых подобъектов типа ячейки. Соответственно, каждая ячейка имеет две координаты, номер строки и номер столбца. Таким образом, обращение к ячейке третьей строки пятого столбца выглядит как oWord.Selection.Tables(1). Cell(3,5).

Ниже приведен пример программного кода передающего данные из таблицы товаров в текстовый процессор. Набор данных аналогичен примеру с Excel. Оператор WITH … ENDWITH использован сугубо для сокращения размера программного кода. Более подробно с его работой можно ознакомиться в системе помощи VFP.

 

*создаем объект типа приложения Ворда

oWord=CREATEOBJECT('Word.application')

*создаем новый документ

oWord.Documents.Add()

*записываем в документ его заголовок (строку текста)

oWord.Selection.TypeText("Список товаров")

*объявляем ее как параграф

oWord.Selection.TypeParagraph

*две строки пропуска для красоты

oWord.Selection.TypeParagraph

oWord.Selection.TypeParagraph

SELECT goods

GO top

*добавляем в документ таблицу

*первый параметр - в качестве диапазона указываем текущий

*второй параметр - количество строк указываем равным количеству записей в таблице GOODS

*третий параметр - количество столбцов равно 2

oWord.Selection.Tables.Add(oWord.Selection.Range,RECCOUNT(),2)

*i - переменная с номером строки таблицы в Ворде

i=1

*перебираем все записи в GOODS

SCAN

WITH oWord.Selection

*в таблице с индексом 1 выбираем ячейку в первом столбце строки i

.Tables(1).Cell(i,1).Select()

*в выбранную ячейку записываем название товара

.TypeText(goods.cnmgoods)

*во второй столбец строки заносим цену товара

.Tables(1).Cell(i,2).Select()

.TypeText(ALLTRIM(STR(nunitprice)))

ENDWITH

*переходим к следующей строке

i=i+1

ENDSCAN

*для второго столбца таблицы указываем авторазмер

oWord.Selection.Tables(1).Columns(2).autofit()

*делаем Ворд видимым

oWord.visible=.T.

Примечания:

1. Получение данных из офисных продуктов осуществляется аналогичными действиями, только в программном коде источником данных следует прописывать офисное приложение.

2. Синтаксис команд VFP для работы с внешним приложением практически повторяет синтаксис VBA в офисных продуктах. В случае возникновения затруднений рекомендуется записывать макросы в приложениях MS Office и смотреть, какими же командами выполняется нужное действие. После небольшой доработки напильником можно получить вполне рабочий код в формате VFP.

3. Действие практически любой команды следует проверять вначале в командном окне VFP, а только затем включать в программный код. При этом не следует забывать, что для выполнения некоторых команд надо совершить предварительные действия, например, прежде чем пересылать значение в ячейку Excel, было бы неплохо предварительно создать в том же командном окне само приложение, рабочую книгу в нем и получить ссылку на рабочий лист.

4. Описанный метод можно применять к любым объектам, зарегистрированным в операционной системе. Набор команд для работы с этими объектами необходимо изучать/доставать своими силами. К счастью, для продуктов MS Office набор команд выбран на основе интуитивно понятного и простого языка VBA. Для остальных объектов – интернет Вам в помощь.

5. Не забывайте, что для большинства пользователей, использование знакомых программных продуктов значительно повышает юзабилити Вашего приложения. Перереализовывать всем известные интерфейсы текстового процессора (Word) и табличного редактора (Excel) слишком трудоемко. Гораздо более простым решением является использование того, что уже сделано и легко доступно.

6. Все приведенные примеры работают в среде MS Office 2000/2003. Для 2007 версии работоспособность не гарантируется.

 

Задания

1. Передайте в Word полный список менеджеров, зарегистрированных в базе данных.

2. Передайте в Excel данные об именах и телефонах заказчиков. Если телефонов у одного заказчика несколько, его имя должно дублироваться на рабочем листе.

3. Сформируйте в текстовом процессоре Word прайс–лист товаров. Документ должен содержать заголовок в виде отдельной строки текста, а также таблицу из трех колонок. В первой должны располагаться названия товаров, во второй – цена, в третьей – праздничная 15-типроцентная скидка.

4. Для указанного номера заказа сформируйте в табличном процессоре Excel бланк заказа. Документ должен содержать имя заказчика, дату и номер заказа. Ниже в табличном виде должна быть представлена информация о товарах в заказе, а именно название товара, цена за единицу, заказанное количество. Кроме того, в виде формул на рабочем листе должен быть организован столбец, в котором по каждой позиции товаров вычислялась бы итоговая сумма (цена за единицу умноженная на количество). В самом низу, так же в виде формулы Excel, должна подсчитываться общая сумма заказа.

 


Список литературы

1. Информационные системы: Учебное пособие для студентов вузов по специальности «Информационные системы в экономике» / под ред. Волкова В.Н. – СПб.: изд – во СПБГТУ, 1998.

2. Каратыгин С.А., Тихонов А.Ф., Тихонова Л.Н. «Visual FoxPro 6.0» – М.: ЗАО «Издательство БИНОМ», 2000.

3. Ложе И. Информационные системы. Методы и средства. – М.: изд-во «Мир», 1979.

4. Тихонов А.Ф., Тихонова Л.Н. «Visual FoxPro 5.0 (без проблем!)» – М.: Восточная Книжная Компания, 1997.

5. Методические указания для выполнению лабораторных работ по Visual FoxPro 9.0. / сост. Л.К. Скодорова, А.А. Ляху. Рыбница, 2010.

6. http://referat.ru/pub/item/23122

7. http://www.bankreferatov.ru

8. http://referat.ru/pub/item/15853

9. http://yurkovs.narod.ru/Ekolek/Tema5.htm

10. http://www.studzona.com/referats/view/13697

11. http://www.studzona.com/referats/view/13697

12. http://www.bntu.info/referat/work_6450.html

13. http://www.5ballov.ru/referats/preview/38041

14. http://www.aup.ru/books/m67/4.htm

 
 


Учебное издание

 

 

Visual FoxPro 9.0 SP1

Часть II

Лабораторный практикум

 

 

Учебное пособие

 

Формат А4. Уч.-изд., 6,4 п.л.

Тираж – 100 экз.


Поделиться с друзьями:

Археология об основании Рима: Новые раскопки проясняют и такой острый дискуссионный вопрос, как дата самого возникновения Рима...

Наброски и зарисовки растений, плодов, цветов: Освоить конструктивное построение структуры дерева через зарисовки отдельных деревьев, группы деревьев...

Состав сооружений: решетки и песколовки: Решетки – это первое устройство в схеме очистных сооружений. Они представляют...

Типы сооружений для обработки осадков: Септиками называются сооружения, в которых одновременно происходят осветление сточной жидкости...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.017 с.