Исходники.Ру - Программирование
Исходники
Статьи
Книги и учебники
Скрипты
Новости RSS
Магазин программиста

Главная » Статьи по программированию » .NET - Все статьи »

Обсудить на форуме Обсудить на форуме

Анализ данных в сводной таблице Microsoft

В статье описывается сценарий создания в VS.net (VB.net) Windows приложения со сводной таблицей Microsoft , подключаемой к базе данных MSAccess.
Используя нетрудоемкую технологию визуального программирования и применения программных объектов высокого уровня можно за короткое время создать высокоэффективное средство анализа данных, хранящихся в табличной форме.

Такой анализ необходим в первую очередь в области И-бизнеса, где данные о проведенных торговых операциях сохраняются с целью дальнейшего возможного контроля и анализа. Существуют специальные программные средства для просмотра и анализа таких данных. Microsoft создала для этих целей сводные таблицы (PivotTable) , входящие в состав Office Web Components , являющиеся частью Microsoft Office, а именно MSOffice 2000 (OWC9), MSOffice XP (OWC10), MSOffice 2003 (OWC11).

Полноценное использование Office Web Components возможно при установленной на локальном компьютере соответствующей версии MSOffice. Для ограниченного использования Office Web Components достаточно установить только одни Office Web Components , при этом можно только просматривать данные в форме, подготовленной программистом на другом компьютере.

В качестве начальной фазы использования сводных таблиц можно предложить создание Windows приложения на локальном компьютере в VisualStudio.net (VisualBasic.net). В статье описывается работа со сводной таблицей из OWC10, все действия с таблицами OWC9 и OWC11 выполняются аналогичным образом.

I Создание Windows приложения методами визуального программирования

В первой части статьи познакомимся с элементом управления PivotTable из комплекта Office Web Components и создадим вполне работоспособное Windows приложение пользуясь возможностями визуального программирования VS.net ( без написания какого-либо программного кода).

Создадим новый проект

Открываем VS.net на домашней странице, нажимаем кнопку "Новый проект" ("New Project"). В открывшемся окне выполняем действия:

  1. В левом дереве "Типы проектов" ("Project Types") выбираем "VB проект" ("Visual Basic Projects");
  2. В правом окне списка "Шаблоны" ("Templates") выбираем "Windows приложение" ("Windows Application");
  3. В строку "Имя" ("Name") вводим имя проекта (например, Pvt10_1);
  4. В строку "Размещение" ("Location") вводим папку для размещения файлов будущего проекта (например, …Мои документы\VB7prj\Pvt10_1). Для выбора папки размещения проекта можно воспользоваться услугами построителя, нажав кнопку "Обзор" ("Browse…").

После нажатия кнопки "Ok" в VS.net будет создан новый проект и появится новое окно VB проекта с пустой Windows формой.

Разместим на форме сводную таблицу

  1. Добавим элемент Microsoft Office PivotTable 10 на палитру инструментов формы (из контекстного меню палитры инструментов);
  2. Разместим элемент управления PivotTable10 на форме;
  3. Подключим сводную таблицу к источнику данных, например, к базе данных Nwind (Борей) MSAccess, входящих в комплект примеров MSOffice (кнопка "Панель свойств" на панели инструментов сводной таблицы);
    ! Не забывайте периодически сохранять изменения проекта. Доступность некоторых свойств и возможностей появляется после сохранения проекта .
  4. Подключимся к таблице (запросу) базы данных, например, "Продажи товаров в 1997" ("Product Sales for 1997") (кнопка "Панель свойств" на панели инструментов сводной таблицы);
  5. Поместим в области сводной таблицы поля таблицы базы данных (кнопка "Список полей" на панели инструментов сводной таблицы).

Работу сводной таблицы по представлению и анализу данных хорошо видно в процессе проектирования в VS.net. Посмотреть как выглядит таблица в Windows приложении можно запустив отладку программы клавишей F5. При этом в "папке проекта\debug\bin" будет создан откомпилированный образец приложения. Завершив все работы по форматированию сводной таблицы этот образец можно использовать как рабочую программу на данном локальном компьютере.

Создание дистрибутива для переноса приложения на другой компьютер

Для переноса приложения на другой компьютер необходимо создать дистрибутив. Дистрибутив создается в составе того же решения добавлением проекта дистрибутива.

  1. Из меню "File" VS.net выбрать "Add project" -- "New project …" . В открывшемся диалоге в левом дереве выбрать "Setup and Deployment projects". В правом списке выбрать "Setup Wizard". В строку "Name" вписать имя проекта дистрибутива, например, "SetupPVT10_1", в строке "Location" по умолчанию уже записана папка решения (…\PVT10_1).
    После нажатия кнопки "Ok" в VS.net автоматически будет создан проект дистрибутива.
  2. Активизируем окно "FileSystem(SetupPVT10_1". Из меню "Build" выполняем "Build SetupPVT10_1". Будет создан дистрибутив (комплект файлов) в папке (…\SetupPVT10_1\Debug).
    Таким образом, мы создали переносимое Windows приложение для анализа данных таблицы базы данных MSAccess.

II Интерактивное подключение к таблице базы данных

 

 

Опишем сценарий создания Windows приложения, в котором пользователь будет иметь возможность интерактивного подключения к таблице в базе данных MSAccess и настройки формата сводной таблицы.

За исходную позицию примем проект, созданный по сценарию I части статьи.

Попробуем управлять подключением к таблице БД программно. Для этого в процедуру обработки события загрузки формы (Form1_Load) запишем следующий код:

 

Private Sub Form1_Load(ByVal sender As Object, ByVal e As _
System.EventArgs) Handles MyBase.Load
´Подключиться к таблице в БД MSAccess
Me.AxPivotTable1.ConnectionString() = _
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Program "_
& "Files\Microsoft Office\Office\Samples\Борей.mdb; "_
& "Persist Security Info=False;Jet OLEDB:Database Password="
Me.AxPivotTable1.DataMember = "Продажи товаров в 1997"
Me.AxPivotTable1.ActiveView.AutoLayout()
End Sub

 

Список 1

 

! Инструкции: Активизировать окно кода формы (Form1.vb). В левом верхнем списке выбрать (Base Class Events), в правом верхнем списке - (Load). Появится заготовка процедуры "Form1_Load". Удобно подставить значение AxPivotTable1.ConnectionString() и .DataMember из страницы свойств сводной таблицы путем переноса их через буфер обмена. Соответствующие позиции на странице свойств сводной таблицы можно оставить пустыми.

Теперь подключение к таблице базы данных в нашем приложении будет осуществляться программным способом. Убедившись в работоспособности созданного приложения можно перейти к следующему этапу программирования.

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

Создание главного меню

Перетащите мышью с вкладки "Forms" палитры элементов на форму элемент управления "Главное меню" ("MainMenu"). На верхнем уровне создайте пункт "Файл", на втором уровне пункты "Открыть БД MSAccess" и "Выход" (Рис1.).

Создание диалога открытия файла БД

 

Добавьте в проект форму. Введите в строку "Name" формы имя "tbllst". На форме разместите элементы надпись "Label1", список "ListBox1" и кнопку "Button1" (Рис 2.).

 

Рис 1. Вид формы со сводной таблицей

 

 

Рис2. Вид формы tbllst

Ввод программного кода

Создайте модуль DefVar и поместите в него следующий код:

Module DefVar

Public TblName As String ´имя таблицы в БД MSAccess
Public PathFile As String ´путь файла БД

End Module

Список 2

 

В модуль формы Form1 поместите следующий код:

Private Sub MenuItem2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) 
	Handles MenuItem2.Click
´ Открыть загрузить таблицу из файла БД MSAccess
´Диалог поиска файла для открытия
With OpenFileDialog1
.FileName = ""
.Title = "Открытие базы данных MSAccess"
.Filter = "Базы данных MSAccess (*.MDB)|*.mdb|Все _
файлы (*.*)|*.*"
.FilterIndex = 1
.ShowDialog()
End With
´ наполнить значениями глобальную переменную файла путь
PathFile = OpenFileDialog1.FileName
´ выбрать таблицу из БД MSAccess с помощью формы tbllst
Dim frm2tbllst As New Pvt10_3.tbllst()
frm2tbllst.ShowDialog()

´подключить данные к сводной даблице
Me.AxPivotTable1.ConnectionString() = _ 
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & PathFile & _
";Persist Security Info=False;Jet OLEDB:Database Password="
Me.AxPivotTable1.DataMember = TblName
Me.AxPivotTable1.ActiveView.AutoLayout()
End Sub



Private Sub MenuItem3_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MenuItem3.Click
Me.Close()
End Sub

Список 3

В модуль формы tbllst поместите следующий код:

Private Sub Button1_Click(ByVal sender As Object, ByVal e _
As System.EventArgs) Handles Button1.Click
Me.Close()
End Sub

Private Sub tbllst_Load(ByVal sender As Object, ByVal e _
As System.EventArgs) Handles MyBase.Load
´подключение к БД с помощью объектов DAO
Dim daDbe As New DAO.DBEngineClass()
Dim daWoS As DAO.Workspace
Dim DaBa As DAO.Database
Dim DaTa As DAO.TableDef
daWoS = daDbe.CreateWorkspace("nik", "admin", "", )
DaBa = daDbe.OpenDatabase(PathFile)
´вывести в окно список таблиц
For Each DaTa In DaBa.TableDefs
If DaTa.Attributes <> -2147483648L And _
DaTa.Attributes <> 2L Then
Me.ListBox1.Items.Add(DaTa.Name)
End If
Next
daDbe = Nothing
End Sub

Private Sub tbllst_Closing(ByVal sender As Object, ByVal e _
As System.ComponentModel.CancelEventArgs) Handles MyBase._
Closing 
´передача в переменную имени выбранной таблицы
If IsDBNull(Me.ListBox1.SelectedItem) Or (Me.ListBox1.SelectedItem = "") 
	Then ´ если пользователь ничего не выбрал
Me.ListBox1.SelectedIndex = 0
End If
TblName = Me.ListBox1.SelectedItem
End Sub

Private Sub ListBox1_DoubleClick(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles ListBox1.DoubleClick
Me.Close()
End Sub

Private Sub ListBox1_SelectedIndexChanged(ByVal sender As _
Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged
Me.Label1.Text = Me.ListBox1.SelectedItem
End Sub

Список 4

Знакомство с работой сводных таблиц Microsoft поможет в создании приложений для анализа данных таблиц баз данных с большим объемом информации.


Может пригодится:


Автор: Кутиков Николай Симхович
Прочитано: 3635
Рейтинг:
Оценить: 1 2 3 4 5

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

Добавить комментарий
Ваше имя*:
Ваш email:
URL Вашего сайта:
Ваш комментарий*:
Код безопастности*:

Рассылка новостей
Рейтинги
© 2007, Программирование Исходники.Ру