Рейтинг блогов

Visual Basic 6.0 - Экспорт DataReport в Microsoft Word

дата добавления: 17 июля 2006 / 19:12, просмотров: 8973, комментариев: 0
Это мой перевод статьи с английского автора John D. Conway.

В этой статье мы создадим пример базы данных Microsoft Access и пользовательский интерфейс в среде Visual Basic 6.0. Сделать это будет относительно несложно, поскольку для работы с нашей базой данных мы будем использовать компонент ADODC Componenet (Microsoft ADO Data Control 6.0 (OLEDB)).

 

Мы добавим DataEnvironment и  DataReport и буквально, в течении минуты, мы уже сможем экспортировать наш DataReport в Microsoft Word Document (.doc).

 

Создание базы данных в Microsoft Access

 

Создайте новую базу данных Microsoft Access и назовите ее: DataReport. Теперь создайте новую таблицу в режиме конструктора и введите имена полей и типы данных как показано на рисунке ниже. Сохраните таблицу с именем: Customers.

 

 

Примечание от автора перевода:

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

Имя поля

Тип данных

CustID

Счетчик

LastName

Текстовой

FirstName

Текстовой

MI

Текстовой

Phone

Текстовой

Address

Текстовой

City

Текстовой

State

Текстовой

Zip

Текстовой

 

 

 

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

 

Теперь откройте эту таблицу и введите данные, примерно так, как показано на рисунке ниже.

 

 

Теперь перейдем к созданию пользовательского интерфейса в Visual Basic 6.0. Ничего сложного в этом нет, мы просто разместим на форме несколько контролов и за несколько минут экспортируем наш DataReport в Microsoft Word (.doc)!.

 

Создание пользовательского интерфейса в среде Visual Basic 6.0

 

Откройте Visual Basic и создайте Стандартный EXE проект (Standard EXE). Добавьте компонент ADODC Component, для этого выберите меню Проект (Projects) -> Компоненты (Components) и выберите Microsoft ADO Data Control 6.0 (OLEDB). Нажмите Применить (Apply), а затем Закрыть (Cancel). Теперь этот компонент должен появиться на вашей Панели инструментов. Добавьте на форму 9 элементов TextBox, по умолчанию, они буду иметь имена: Text1, Text2, Text3 и так далее. Теперь добавьте 9 элементов Label, по умолчанию, они будут иметь имена: Label1, Label2, Label3 и так далее. Измените свойство Caption у всех Label, как показано на рисунке ниже. Теперь, разместите на форме компонент ADODC Control, ему компоненту будет присвоено имя по умолчанию: ADODC1. Добавьте элемент CommandButton, ему будет присвоено имя по умолчанию: Command1. Измените свойство Caption на Показать отчет. Теперь, нам осталось сделать связь с базой данных.

 

Примечание от автора перевода:

Текстовые поля и Label соответствуют полям таблицы созданной ранее базы данных, у элементов Label свойство Caption должно быть таким же как имена полей таблицы «Customers», т.е.: Label1.Caption = «CustID», Label2.Caption = «LastName» и т.д. Текстовые поля размещается напротив этих Label.

 

Если вы хотите  экспортировать DataReport в Microsoft Word, то я полагаю, что вы уже знаете что надо делать. Эта информация будет полезна только новичкам и состоит всего из нескольких не сложных шагов.

 

Правой кнопкой мышки кликните по компоненту ADODC1, который размещен на форме (Form1) и выберите меню ADODC Properties. В появившемся окне выберите опцию Use Connection String и нажмите кнопку Build. Затем выберите Microsoft Jet 4.0 OLE DB Provider и нажмите Next (Далее), далее, укажите расположение созданного ранее файла базы данных MS Access. Для проверки подключения, нажмите на кнопку Test connection (Проверить подключение). Если все прошло нормально, то появится сообщение Test connection succeeded (Проверка подключения выполнена), нажмите Ok, чтобы закрыть окно сообщения и еще раз Ok, чтобы выйти из окна свойств связи с данными.

 

Теперь, в окне свойств ADODC, выберите вкладку RecordSource. В списке Command Type выберите 2 - adCmdTable. Далее в разделе Table or Stored Procedure Name выберите имя, ранее созданной, таблицы – Customers (или как вы ее там назвали), затем просто нажмите кнопку Apply (Применить) и затем Ok.

 

Теперь мы установим свойства DataSource и DataField у элементов TextBox размещенных на форме.

 

Выберите Text1 в окне свойств, установить свойство DataSource равное ADODC1 и свойство DataFiled равное CustID. Примечание: Свойство DataSource у всех компонентов TextBox должно быть равное ADODC1.

 

Примечание от автора перевода:

Чтобы установить свойство DataSource у всех элементов TextBox сразу, выделите их всех (левой кнопкой мышки, удерживая клавишу Ctrl).

 

Затем, выберите Text2 и установите свойство DataField равное LastName. У Text3FirstName, и так далее у всех оставшихся компонентов TextBox.

 

 

Добавление DataEnvironment и DataReport

 

Перейдите в меню Проект (Project) и выберите Добавить Data Environment. Далее, одиночным нажатием паровой кнопкой мышки кликните по Connection1 и выберите Properties. В появившемся окне выберите Microsoft Jet 4.0 OLE DB и нажмите Next (Далее), далее, укажите расположение созданного ранее файла базы данных MS Access. Для проверки подключения, нажмите на кнопку Test connection (Проверить подключение). Если все прошло нормально, то появится сообщение Test connection succeeded (Проверка подключения выполнена), нажмите Ok, чтобы закрыть окно сообщения и еще раз Ok, чтобы выйти из окна свойств связи с данными.

 

Правой кнопкой мышки нажмите на Connection1 и в появившемся меню выберите Add command (Добавить команду). В списке должен появиться пункт Command1, кликните по нему правой кнопкой мышки  и в появившемся меню выберите Properties (Свойства). В списке DataObject выберите Table и в поле ObjectName укажите имя вашей таблицы (в данном случае Customers). Нажмите Apply (Применить) и Ok.

 

Результат проделанной нами работы можно посмотреть на рисунке ниже.

 

 

Ну вот, теперь, мы готовы добавить DataReport.

Перейдите в меню Проект (Project) и выберите меню Добавить Data Report (Add Data Report). Установите размер DataEnviroment и DataReport, как показано на рисунке ниже.

 

Кликните по DataReport. Перейдите к свойству DataSource  и выберите DataEnviroment1, а свойство DataMember установите Command1.

 

Теперь, в окне DataEnviroment кликните по CustID и зажав левую кнопку мышки, перетащите его в окно  DataReport в секцию Detail (Section1).

 

Вы увидите два CustID. Выберите один и левой кнопкой перетащите на верх в секцию PageHeading. Сделайте тоже самое с LastName, FirstName, MI, Phone, Address, City, State и Zip.

 

 

Теперь двойным нажатием на кнопку Command1 перейдите в режим редактора кода. В событие Command1_Click, введите следующий код: DataReport1.Show (см. рисунок ниже).

 

 

Запустите проект (клавиша F5) и нажмите на кнопку Показать отчет. Результат работы программы вы можете посмотреть на рисунке ниже.

 

Обратите внимание на две кнопки расположенные на верху слева. Эти кнопки позволяют распечатать либо экспортировать данные.

 

Возможно данные не будут вмещаться в колонки, но поскольку мы собираемся экспортировать данные в MS Word, нас это не должно волновать.

 

 

Экспорт DataReport в Microsoft Word (.doc)

 

Запустите проект и кликните по кнопке Показать отчет. Кликните по кнопке Export. Выберите путь, куда вы хотите создать документ. Укажите имя файла DataReport.doc. Обратите внимание: вы должны указать расширение .doc  в конце имени файла. Теперь в списке выберите тип файла TXT (*.txt) и нажмите Сохранить.

 

Перейдите в папку, в которую вы сохранили DataReport и двойным нажатием кнопки мышки откройте его. Вы увидите сообщение: Microsoft Word can't import the specified format. The feature is not currently installed. Would you like to install it now? (Microsoft Word не можете импортировать специфический формат, поскольку компонент не установлен. Хотите установить его сейчас?). Выберите Нет. DataReport откроется в MS Word. Если Report в MS Word выглядит не так как надо, то перейдите в меню Файл -> Параметры страницы, в появившемся окне перейдите на вкладку Размер страницы и выберите LandSpace, затем нажмите Ok. Вот и все!

 

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

 

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

 

 


Несколько слов от автора перевода...

 

Довольно интересная статья, честно признаюсь, я никогда не использовал какие-либо визуальные компоненты для работы с базами данных MS Access, мне гораздо удобней работать непосредственно с Microsoft DAO 3.6 Object Library :), возможностей больше. Хотя на производстве, описанный в этой статье метод довольно эффективный, буквально за несколько минут можно сделать относительно не плохой отчет с кодом всего в одну строку.

Удачи!

Файлы (всего: 1)

+ Пример к статье (38.65 Kb)

Комментарии (всего: 0)

Добавить комментарий rss

В этой записи пока еще нет комментариев...

Добавить комментарий

Добавлять комментарии могут только зарегистрированные пользователи сайта.
Если у Вас уже есть учётная запись на этом сайте, пройдите процудуру авторизации.
В противном случае, зарегистрируйтесь на сайте.