Связывание и внедрение объектов, экспорт и импорт данных



Глава 21. Связывание и внедрение объектов, экспорт и импорт данных

Связывание и внедрение объектов, экспорт и импорт данных Visual FoxPro и OLE-объекты Внедрение нового OLE-объекта Внедрение OLE-объекта из файла Связывание OLE-объектаКоманда Paste Special Редактирование OLE-объекта Удаление OLE-объекта Передача данных из Visual FoxPro в другие приложения Импорт данных Использование данных из Visual FoxPro в Microsoft Word





Импорт данных



Импорт данных

В настоящем разделе мы обсудим импорт данных из форматов других приложений в таблицу Visual FoxPro. Для импорта данных воспользуемся услугами мастера: Чтобы запустить мастера импорта данных в таблицу Visual FoxPro, в меню Tools (Сервис) выберите команду Wizards (Мастера), а затем Import (Импорт).

Совет
Совет

Для запуска мастера импорта вы также можете воспользоваться командой Import (Импорт) из меню File (Файл). В этом случае на экране открывается диалоговое окно Import (Импорт), в котором необходимо нажать кнопку Import Wizard (Мастер импорта).

На первом шаге импорта данных с помощью мастера (рис. 21.17) вы указываете формат импортируемого файла, используя список File Type (Тип файла). С помощью кнопки Locate (Определить) вы задаете в поле Source File (Файл источника) имя исходного файла. Затем установкой соответствующей опции необходимо указать, в новую таблицу вы импортируете файл или в существующую, и задать имя таблицы.

Завершив установку параметров, нажмите кнопку Next (Далее).



Использование данных из Visual FoxPro в Microsoft Word



Использование данных из Visual FoxPro в Microsoft Word

Данные, содержащиеся в таблицах Visual FoxPro, можно использовать в других приложениях Windows. Например, в Microsoft Word вы можете подготовить этикетки для наклейки на конверты и рассылки своим клиентам, используя для этого данные, размешенные в таблице customer.

Для слияния данных из Visual FoxPro и Microsoft Word необходимо использовать мастер. Чтобы его запустить, в меню Tools (Сервис) выберите команду Wizards (Мастера) и в появившемся подменю — Mail Merge (Составление писем). Слияние данных осуществляется с помощью мастера за несколько шагов:

На первом шаге мастер предлагает выбрать таблицу и поля, используемые для слияния (рис. 21.21). Перенесите необходимые поля в список Selected fields (Выбранные поля) и нажмите кнопку Next (Далее).

Использование объектно-ориентированного программирования



Использование объектно-ориентированного программирования

В Visual FoxPro для управления OLE-объектами можно использовать объектно-ориентированное программирование.

Замечание
Замечание

Для создания OLE-объекта в Visual FoxPro предназначена команда CREATEOBJECT.

Команда Insert Object



Команда Insert Object

Для размещения в поле таблицы Visual FoxPro OLE-объекта со связью с помощью команды Insert Object (Вставить объект) выполните следующие действия: Откройте таблицу Goods в режиме Browse (Обзор). Перейдите в поле типа General (Общий) и дважды щелкните на нем для его открытия. Выберите в меню Edit (Правка) команду Insert Object (Вставить объект). В диалоговом окне Вставка объекта установите опцию Создать из файла. Нажмите кнопку Обзор. В открывшемся диалоговом окне Обзор выберите необходимый файл и нажмите кнопку Открыть. В диалоговом окне Вставка объекта установите флажок Связь (рис. 21.9) и нажмите кнопку ОК. Если необходимо вставить объект в виде значка, установите флажок В виде значка. В результате этих действий в окне просмотра поля типа General (Общий) появится значок файла (рис. 21.10). Чтобы изменить размещенный OLE-объект с использованием OLE-сервера, откройте окно просмотра OLE-объекта и дважды щелкните кнопкой мыши на значке.

Команда Paste Special



Команда Paste Special

Для размещения в поле типа General (Общий) OLE-объекта со связью с помощью команды Paste Special (Специ&чьная вставка), выполните следующие действия: Откройте приложение-сервер и запомните связываемый объект во временном буфере Windows. Откройте окно редактирования поля типа General (Общий). В меню Edit (Правка) выберите команду Paste Special (Специальная вставка). На экране открывается диалоговое окно Специальная вставка (рис. 21.11). Объект, находящийся во временном буфере Windows, описан в диалоговом окне как Источник. В списке Как перечислены допустимые форматы для этого объекта.

Передача данных из Visual FoxPro в другие приложения



Передача данных из Visual FoxPro в другие приложения

Используя команды Export (Экспорт) и Import (Импорт) из меню File (Файл), можно осуществлять обмен данными между Visual FoxPro и текстовыми файлами, а также наиболее популярными базами данных и электронными таблицами.

Передача данных в Microsoft Excel с помощью OLE



Передача данных в Microsoft Excel с помощью OLE

В рассматриваемом примере используем данные из таблицы Cntcust для построения диаграммы распределения клиентов по городам в программе Microsoft Excel с помощью OLE-объектов. В меню File (Файл) выберите команду New (Новый), установите опиик Program (Программа) и нажмите кнопку New file (Новый файл). Откроется новое окно редактирования программ. Для установления связи с Microsoft Excel, передачи в него данных и построения диаграммы введите следующие команды:

*    Создание OLE-объекта

objExcelSheet=CreateObject("Excel.Sheet")

objExcelSheet.Application.Visible=.T.

objExcelSheet = objExcelSheet.Sheets[1]

* Передача данных из таблицы CntCust в Excel SELECT CNTCUST

nRow=0

SCAN

nRow=nRow+1

objExcelSheet.Cells(nRow,1).Value= CntCust.Город

objExcelSheet.Cells{nRow,2).Value=CntCust.Количество

ENDSCAN

objChart = objExcelSheet. ChartObjects.Add(100, 100, 400, 200)

* Выделение данных и создание диаграммы objExcelSheet.

ChartObjects(1).Chart.;

chartwizard(objExcelSheet.Range(objExcelSheet.Cells(1,1),;

objExcelSheet.Cells(nRow,2)),; -4100,4,1,0,1,1,"","","","")

* Копирование диаграммы в буфер обмена Windows objExcelSheet.ChartObjects(1).Select

obj ExcelSheet.ChartObj ects(1) .Copy

* Закрытие сервера objExcelSheet.application.quit release

objExcelSheet

Проверьте синтаксис и запустите программу на выполнение. Результат выполнения программы представлен на рис. 21.13.

Замечание
Замечание

Наиболее простым способом формирования команд для выполнения действий над OLE-объектами является запись соответствующего макроса на сервере-приложении и использование текста этого макроса в Visual FoxPro.

Редактирование OLE-объекта



Редактирование OLE-объекта

Большинство OLE-объектов можно редактировать. Для этого откройте окно редактирования поля типа General (Общий), содержащее, например, такие OLE-объекты, как электронная таблица Microsoft Excel, документ Word или рисунок Paint, и дважды щелкните мышью. Откроется приложение-сервер для редактирования объекта.

Для редактирования точечных рисунков выберите команду Растровый рисунок Object (Объект) в меню Edit (Правка), а затем команду Изменить или Открыть, которые доступны в окне редактирования поля типа General (Общий). Для редактирования документа Word в меню Edit (Правка) появляется команда Документ Object, а для редактирования электронной таблицы — Лист Object (Объект).





Просмотр в режиме Browse таблицы, содержащей поля типа General



Рис. 21.1. Просмотр в режиме Browse таблицы, содержащей поля типа General


Для вставки OLE-объекта дважды щелкните на поле типа General (Общий), содержащем значение gen. Откроется окно редактирования этого поля (рис. 21.2). В меню Edit (Правка) выберите команду Insert Object (Вставить объект). Откроется диалоговое окно Вставка объекта (рис. 21.3). Это диалоговое окно содержит две опции, предоставляющие два варианта включения OLE-объекта: Создать новый — позволяет создать новый OLE-объект и вставить его в поле; Создать из файла — позволяет разместить в поле таблицы OLE-объект из файла.

Окно редактирования поля типа General



Рис. 21.2. Окно редактирования поля типа General




Диалоговое окно Вставка объекта



Рис. 21.3. Диалоговое окно Вставка объекта


При установке опции Создать новый выберите из предложенного списка Тип объекта сервер, который хотите использовать для создания объекта, и нажмите кнопку ОК. Откроется приложение, в котором создайте объект, после чего вернитесь в Visual FoxPro.

Для использования существующего объекта установите опцию Создать из файла. Диалоговое окно примет другой вид. Воспользовавшись кнопкой Обзор, найдите необходимый файл и вставьте его содержимое в поле таблицы.

Замечание
Замечание

В Visual FoxPro для хранения сложных текстов можно использовать поле типа General (Общий), внедрив в него или связав с ним документ текстового процессора.



Создание изображения товара



Рис. 21.4. Создание изображения товара




Размещение в поле таблицы нового OLE-объекта



Рис. 21.5. Размещение в поле таблицы нового OLE-объекта


Данная команда имеет собственное меню, которое содержит опции Изменить и Открыть, определяющие режим редактирования изображения (см. рис. 21.5). При выборе опции Изменить меню и панели инструментов OLE-сервера внедряются непосредственно в Visual FoxPro (см. рис. 21.4). При выборе опции Открыть открывается приложение OLE-сервера (рис. 21.6), в котором вы можете редактировать изображение поля типа General (Общий).



Открытое приложение OLE-сервера для редактирования изображения



Рис. 21.6. Открытое приложение OLE-сервера для редактирования изображения




Диалоговое окно Вставка объекта при установленной опции Создать из файла



Рис. 21.7. Диалоговое окно Вставка объекта при установленной опции Создать из файла




Вставленный видеоклип в поле типа General



Рис. 21.8. Вставленный видеоклип в поле типа General




Нажмите кнопку Обзор. В открывшемся диалоговом окне Обзор выберите файл, содержащий необходимый объект. Для установки требуемого типа объекта необходимо использовать список Тип файлов, расположенный в нижней части диалогового окна. Выбрав файл, нажмите кнопку Открыть. Возвратившись в диалоговое окно Вставка объекта, нажмите кнопку ОК. OLE-объект будет размещен. На рис. 21.8 показан вставленный видеоклип в поле типа General (Общий).



Установлен флажок Связь



Рис. 21.9. Установлен флажок Связь




Связывание OLE-объекта в виде значка



Рис. 21.10. Связывание OLE-объекта в виде значка




Диалоговое окно Специальная вставка



Рис. 21.11. Диалоговое окно Специальная вставка


Чтобы связать объект с его оригиналом на сервере, установите опцию Вставить связь. Выберите из списка Как формат объекта. Ссылка на объект запоминается в поле типа General (Общий). При каждом изменении оригинала объекта на сервере объект, выводимый в приложении Visual FoxPro, будет автоматически обновляться. Если в момент изменения оригинала приложение Visual FoxPro не открыто, обновление произойдет при первом же открытии приложения Visual FoxPro. Нажмите кнопку ОК для закрытия диалогового окна Специальная вставка.

Ссылка на OLE-объект, запоминаемая в поле типа General (Общий), содержит имя файла (включая путь к нему) оригинала объекта на сервере. Если вы измените имя этого файла, перенесете или удалите его, связь разрывается. Для восстановления связи необходимо воспользоваться командой Links (Связи) из меню Edit.

Совет
Совет

Для изменения объекта в поле типа General (Общий) со связанного на внедренный необходимо удалить объект из поля с помощью команды Cut (Вырезать) из меню Edit (Правка), а после этого вставить объект обратно в поле, но без связывания.

Если OLE-объект был размещен со связью, диалоговое окно Связи позволяет изменить или удалить установленную связь (рис. 21.12). Для его просмотра откройте требуемую таблицу, перейдите в поле со связанным объектом и в меню Edit (Правка) выберите команду Links (Связи).



Диалоговое окно Связи



Рис. 21.12. Диалоговое окно Связи


В списке Связи представлены все связи объекта в табличном виде с указанием пути и имени файла источника, а также типа объекта и режима обновления связи.

В диалоговом окне размещены кнопки, назначение которых описано в табл. 21.1.



Создание диаграммы с помощью OLE



Рис. 21.13. Создание диаграммы с помощью OLE




Диалоговое окно Export



Рис. 21.14. Диалоговое окно Export


Для экспорта данных из таблицы Visual FoxPro выполните команду Export (Экспорт) из меню File (Файл). Открывается диалоговое окно Export (Экспорт) (рис. 21.14), в котором из списка Туре (Тип) вам необходимо выбрать тип экспортируемого формата. Допустимые типы форматов приведены в табл. 21.2.



Диалоговое окно Export Options



Рис. 21.15. Диалоговое окно Export Options


С помощью кнопки Fields (Поля) можно открыть диалоговое окно Field Picker (Выбор поля), в котором выбрать поля исходной таблицы для экспорта (рис. 2I.16).



Диалоговое окно Field Picker



Рис. 21.16. Диалоговое окно Field Picker




Первый шаг работы мастера: выбор типа импортируемого файла



Рис. 21.17. Первый шаг работы мастера: выбор типа импортируемого файла




Просмотр содержимого импортируемого файла



Рис. 21.18. Просмотр содержимого импортируемого файла


На втором шаге работы мастера вам необходимо указать, создается свободная таблица или таблица, входящая в базу данных. Установите соответствующую опцию. Если импортируемая таблица будет размещена в базе данных, то укажите ее название и расположение. На следующих трех шагах вы можете просмотреть содержимое импортируемого файла, указать, в какой строке находятся наименования полей и с какой строки начать импортировать данные (рис. 21.18), задать разделители полей, определить заголовки и типы создаваемых полей (рис. 21.19).

Определение заголовков и типов полей



Рис. 21.19. Определение заголовков и типов полей




Задание форматов отображения данных



Рис. 21.20. Задание форматов отображения данных




На шестом шаге работы мастера импорта задаются форматы отображения дат, кодовых страниц, денежных единиц и чисел (рис. 21.20). После завершения установок на последнем шаге работы мастера нажмите кнопку Finish (Готово), и на основе данных импортируемого файла будет создана таблица Visual FoxPro.



Выбор таблицы и полей



Рис. 21.21. Выбор таблицы и полей


На втором шаге необходимо указать, с каким редактором вы будете работать далее. По умолчанию установлена опция Microsoft Word. Нажмите кнопку Next (Далее) для перехода к следующему шагу (рис. 21.22).

Выбор текстового редактора



Рис. 21.22. Выбор текстового редактора




На данном шаге вы можете выбрать созданный ранее документ



Рис. 21.23. На данном шаге вы можете выбрать созданный ранее документ


На третьем шаге мастер предлагает поместить данные в новый или уже существующий документ (рис. 21.23). При установке опции Use existing document (Существующий документ) становится доступной кнопка File (Файл), открывающая диалоговое окно Open (Открыть) для выбора ранее подготовленного документа. Если вы хотите разместить данные во вновь создаваемом документе. то на четвертом шаге мастера необходимо определить тип создаваемою файла (рис. 21.24), установив одну из опций списка Select a document type (Выбор типа документа). В табл. 21.3 описаны опции списка Select a document type (Выбор типа документа) и типы создаваемых файлов.

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



Рис. 21.24. Выбор типа создаваемого документа


На последнем шаге работы мастера следует нажать кнопку Finish (Готово). Если установлен драйвер ODBC, то все завершится успешно. Запустится Microsoft Word и откроется документ Word, в котором будет установлена связь с выбранными данными. Обратите внимание на имеющуюся в окне панель инструментов, предназначенную для работы с таблицей базы данных.

Microsoft Word с установленной связью с выбранными данными



Рис. 21.25. Microsoft Word с установленной связью с выбранными данными


Разместите текст в документе. Для вставки полей установите курсор в требуемое место, нажмите на панели инструментов кнопку Добавить поле слияния и выберите из раскрывающегося списка то поле, которое нужно. Поясняющий текст вставляется непосредственно в область ввода (рис. 21.25). Нажмите на панели инструментов кнопку Объединить. Откроется окно Слияние (рис. 21.26), в котором вы можете указать параметры слияния. В нашем примере выберите из списка Назначение опцию Новый документ и оставьте остальные параметры без изменения. Возможность отбора записей не представляет большого интереса, так как средства создания запроса в Visual FoxPro намного богаче. Для окончательного объединения данных нажмите кнопку Объединить.

Результат слияния данных приведен на рис. 21.27.



Диалоговое окно Слияние



Рис. 21.26. Диалоговое окно Слияние




Документ, полученный в результате слияния



Рис. 21.27. Документ, полученный в результате слияния




Рисунок Paintbrush. Нажмите кнопку...



Рисунок Paintbrush. Нажмите кнопку ОК. Visual FoxPro откроет указанное вами приложение и разместит его меню и панели инструментов в своем главном окне. Создайте изображение товара, которое будет использовано в качестве нового OLE-объекта (рис. 21.4). Закройте сервер OLE. Для этого щелкните в любом месте окна вне области редактирования, после чего созданный вами объект будет размещен в поле типа General (Общий) (рис. 21.5).

Если вам потребуется внести изменения во встроенный OLE-объект, откройте таблицу в режиме Browse (Обзор) и дважды щелкните на требуемом значении. В результате откроется окно редактирования поля типа General (Общий). Для редактирования изображения используется команда Точечный рисунок Object (Объект) из меню Edit (Правка).



Связывание и внедрение объектов, экспорт и импорт данных



Связывание и внедрение объектов, экспорт и импорт данных

В Visual FoxPro имеется возможность хранить в таблицах сами объекты или связь с объектами, которые созданы в приложении, поддерживающем механизм связывания и внедрения (OLE). Основное отличие между связыванием и внедрением состоит в том, каким образом данные запоминаются и обновляются после того, как их поместили в базу данных.

При связывании данные обновляются, когда изменяется исходный файл. Связанные данные запоминаются в исходном файле; в базе данных сохраняются только сведения о месте расположения исходного файла.

Внедренные объекты сохраняются в базе данных. Если установить на внедренный объект указатель и дважды щелкнуть мышью, откроется приложение, в котором объект был создан. В нем можно редактировать внедренный объект, при этом измененные данные записываются в базу данных.

Объект, который внедряется или связывается, называется OLE-объектом. Исходное приложение, в котором был создан OLE-объект, называется приложением-сервером, а приложение, в которое внедряется или с которым связывается OLE-объект, — приложением-клиентом.





Связывание OLE-объекта



Связывание OLE-объекта

Чтобы связать OLE-объект с основной копией объекта на сервере, можно воспользоваться командой Insert Object (Вставка объекта) или Paste Special (Специальная вставка) из меню Edit (Правка). Рассмотрим оба варианта.

Назначение кнопок диалогового окна Связи



Таблица 21.1. Назначение кнопок диалогового окна Связи

Кнопка Назначение
Обновить сейчас Обновляет выделенную связь
Открыть источник Открывает исходный файл для выделенной связи
Сменить источник Заменяет исходный файл для выделенной связи, с помощью диалогового окна Смена источника
Разорвать связь Разрывает указанную связь. В результате объект становится статическим, не допускающим изменения или обновления

Переключатель Обновление определяет режим обновления связи и содержит две опции: Автоматическое, Вручную. При установленной опции Автоматическое обновление связанных объектов осуществляется автоматически. Если установлена опция Вручную, тогда для обновления объектов необходимо нажать кнопку Обновить сейчас.





Типы экспортируемых форматов



Таблица 21.2. Типы экспортируемых форматов

Тип Кодовое обозначение Назначение
Visual FoxPro 3.0 (DBF) Копирование одной таблицы в другую
FoxPro для Windows 2.x (DBF) FOX2X Экспорт в формат FoxPro для Windows 2.x
FoxBASE+ (DBF) FOXPLUS Экспорт в формат FoxBASE+
dBASE IV (DBF)   Экспорт в формат dBASE IV
Delimited Text   Экспорт в текстовый файл с разделителями
Microsoft Excel 5.0 (XLS) XL5 Экспорт в формат электронной таблицы Microsoft Excel 5.0
Microsoft Excel 2.0, 3.0, and 4.0 (XLS) XLS Экспорт 8 формат электронных таблиц Microsoft 2.0, 3.0 и 4.0
Lotus 1-2-3 2.x (WK1) WK1 Экспорт в формат электронной таблицы Lotus 1-2-3 2.x
Lotus 1-2-3 1-A (WKS) WKS Экспорт в формат электронной таблицы Lotus 1-2-3 1-А
Symphony 1.10 (WR1) WR1 Экспорт в формат электронной таблицы Symphony 1.10
Symphony 1.01 (WRK) WRK Экспорт в формат электронной таблицы Symphony 1.01
MultiPlan 4.01 (MOD) MOD Экспорт в формат электронной таблицы MultiPlan 4.01
Data Interchange Format (DIF) DIF Экспорт в текстовый файл, используемый приложением VisiCalc
System Data Format (SDF) SDF Экспорт в стандартный текстовый файл
Symbolic Link Format SYLK Экспорт в текстовый файл, используемый электронной таблицей MultiPlan

В поле ввода From (Из) диалогового окно Export (Экспорт) необходимо указать имя экспортируемой таблицы, а в поле То (В) — имя файла, в который будет записываться результат экспорта.

После того как вы указали имя исходной таблицы, становится доступной кнопка Options (Параметры), при нажатии на которой открывается диалоговое окно Export Options (Параметры экспорта) (рис. 21.15). В этом диалоговом окне для выбора записей таблицы, экспортируемых в выходной файл, вы можете использовать кнопки Scope (Граница), For (Для), While (Пока).



Опции списка Select a document type



Таблица 21.3. Опции списка Select a document type

Опция Тип создаваемого документа

Form Letter Письмо
Label Этикетка
Envelope Конверт
Catalog Каталог

Выбрав необходимую опцию, нажмите кнопку Next (Далее) для перехода к последнему шагу мастера.



Удаление OLE-объекта



Удаление OLE-объекта

Чтобы удалить OLE-объект из поля типа General (Общий), выполните команду Clear (Очистить) из меню Edit (Правка).

Visual FoxPro и OLE-объекты



Visual FoxPro и OLE-объекты

В Visual FoxPro OLE-объекты могут храниться и отображаться только в полях типа General (Общий). Для внедрения OLE-объекта в таблицу Visual FoxPro выполните следующие действия: Создайте в таблице, предназначенной для хранения OLE-объекта, поле типа General. Откройте таблицу в режиме Browse (Обзор) (рис. 21.1), выполнив команду Browse (Обзор) из меню View (Вил) или нажав кнопку Browse (Обзор) окна проекта. Откроется окно просмотра таблицы.

Замечание
Замечание

Если поле типа General (Общий) пусто, то при просмотре таблицы в нем появляется пометка gen. Если поле содержит OLE-объект, то пометка принимает вид Gen.

Внедрение нового OLE-объекта



Внедрение нового OLE-объекта

Рассмотрим процедуру внедрения нового OLE-объекта на примере поля glmage таблицы Goods: В окне проекта установите курсор на таблицу Goods базы данных sales. Данная таблица содержит поле gimage типа General (Общий), в котором вы предполагаете разместить изображение товара. Чтобы открыть окно просмотра, выполните команду Browse (Обзор) из меню View (Вид) или нажмите кнопку Browse (Обзор) окна проекта. Для вставки OLE-объекта установите курсор на поле типа General (Общий) и дважды щелкните на нем. Откроется окно редактирования поля. Выполните команду Insert Object (Вставить объект) из меню Edit (Правка). В открывшемся диалоговом окне Вставка объекта в списке Тип объекта перечислены все OLE-серверы, установленные в вашей системе. В качестве примера выберите

Внедрение OLE-объекта из файла



Внедрение OLE-объекта из файла

Для внедрения в поле таблицы OLE-объекта из файла выполните следующие действия. Откройте таблицу в режиме Browse (Обзор). Установите курсор на поле типа General (Общий) и дважды щелкните кнопкой мыши. Откроется окно редактирования поля. В меню Edit (Правка) выберите команду Insert Object (Вставить объект). В открывшемся диалоговом окне Вставка объекта установите опцию Создать из файла. Окно примет вид, представленный на рис. 21.7.