, наконец, нам следует сохранить документ и освободить ресурсы:// Сохраняем документDoc.SaveAs('D:\SOT\Custrep.doc');// Закрываем Word и освобождаем ресурсыWd.Quit; Wd:=Unassigned;4.5.2 Создание генерации отчетов с помощью Microsoft ExcelКак и в предыдущем случае, нам следует также объявить глобальные переменные для объектов Application, WorkBook и WorkSheet:varForml: TForm1;. . .// Переменные для объектов Excel Application, WorkBook и WorkSheet Xl, Wb, Ws: Variant;Реализуем генерацию табличного отчета в обработчике события OnClick компонента Button2:procedure TForm1.Report_ExcelClick(Sender: TObject);var I, Rcnt:integer;begin// Открываем базу данных и подсчитываем количество записей ADODataSet1.Open;Rcnt := ADODataSet1.RecordCount; // Запускаем Microsoft Excel Xl := CreateOleObject('Excel.Application'); // Отображаем окно Microsoft Excel Xl.Visible := True; // Создаем рабочую книгу Xl.WorkBooks.Add; Wb := XL.WorkBooks[1]; Ws := Wb.WorkSheets[1]; Ws.Name := 'Центр данных'; // Создаем заголовок отчета Ws.Cells[1,1] := 'Центр данных'; Ws.Cells[1,1].Font.Bold := True; Ws.Cells[1,1].Font.Size := 16; Ws.Cells[2,1] := 'Комп'; Ws.Cells[2,2] := 'Игрок'; Ws.Cells[2,3] := 'Дата'; Ws.Cells[2,4] := 'Продолжительность'; Ws.Cells[2,5] := 'Код услуги'; Ws.Cells[2,6] := 'Админ'; for I:=1 to 6 do Ws.Cells[2,i].Font.Bold := True; // Перемещаемся на первую запись набора данных ADODataSet1.First; for I:=1 to Rcnt do begin // Добавляем значения полей текущей записи в новую строку Ws.Cells[i+2,1] := ADODataSet1.Fields[0].AsString; Ws.Cells[i+2,2] := ADODataSet1.Fields[1].AsString; Ws.Cells[i+2,3] := ADODataSet1.Fields[2].AsString; Ws.Cells[i+2,4] := ADODataSet1.Fields[3].AsString; Ws.Cells[i+2,5] := ADODataSet1.Fields[4].AsString; Ws.Cells[i+2,6] := ADODataSet1.Fields[5].AsString; ADODataSet1.Next; end; // Изменяем ширину колонок Xl.Columns[1].ColumnWidth:=Xl.Columns[1].ColumnWidth+5; Xl.Columns[2].ColumnWidth:=Xl.Columns[2].ColumnWidth+5; Xl.Columns[3].ColumnWidth:=Xl.Columns[3].ColumnWidth+5; Xl.Columns[4].ColumnWidth:=Xl.Columns[4].ColumnWidth+5; Xl.Columns[5].ColumnWidth:=Xl.Columns[5].ColumnWidth+5; Xl.Columns[6].ColumnWidth:=Xl.Columns[6].ColumnWidth+5; // Подавляем вывод диагностических сообщений Xl.DisplayAlerts:=false; // Сохраняем документ Wb.SaveAs('D:\SOT\Custrer.xls'); // Закрываем Excel и освобождаем ресурсы //Xl.Quit; Xl:=Unassigned; end; Откомпилируем приложение и проверьте работу кнопки «Отчет с использованием MS Excel». При выполнении этого приложения создается документ с отчетом по базе данный club.mdb (рис.4.5).Пояснения к приведенному выше фрагменту кодаВо-первых, мы должны создать копию Microsoft Excel, сделав ее видимой и создать новую рабочую книгу:// Запускаем Microsoft Excel Xl := CreateOleObject('Excel.Application'); // Отображаем окно Microsoft Excel Xl.Visible := True; // Создаем рабочую книгу Xl.WorkBooks.Add; Wb := XL.WorkBooks[1]; Ws := Wb.WorkSheets[1]; Ws.Name := ' Список клиентов ';Затем нужно создать заголовок отчета и заголовки колонок будущей таблицы, добавляя текст в соответствующие ячейки т меняя характеристики шрифта ячеек: // Создаем заголовок отчетаWs.Cells[1,1] := 'Центр данных'; Ws.Cells[1,1].Font.Bold := True; Ws.Cells[1,1].Font.Size := 16; Ws.Cells[2,1] := 'Комп'; Ws.Cells[2,2] := 'Игрок'; Ws.Cells[2,3] := 'Дата'; Ws.Cells[2,4] := 'Продолжительность'; Ws.Cells[2,5] := 'Код услуги'; Ws.Cells[2,6] := 'Админ'; for I:=1 to 6 do Ws.Cells[2,i].Font.Bold := True;Затем следует, перемещаясь по записям набора данных, добавит в документ строки, соответствующие этим записям:// Перемещаемся на первую запись набора данных ADODataSet1.First; for I:=1 to Rcnt do begin// Добавляем значения полей текущей записи в новую строку Ws.Cells[i+2,1] := ADODataSet1.Fields[0].AsString; Ws.Cells[i+2,2] := ADODataSet1.Fields[1].AsString; Ws.Cells[i+2,3] := ADODataSet1.Fields[2].AsString; Ws.Cells[i+2,4] := ADODataSet1.Fields[3].AsString; Ws.Cells[i+2,5] := ADODataSet1.Fields[4].AsString; Ws.Cells[i+2,6] := ADODataSet1.Fields[5].AsString; ADODataSet1.Next;end;Как и в предыдущем случае, нам следует изменить размер колонок на листе рабочей книги, чтобы корректно отобразить содержащиеся в них данные: // Изменяем ширину колонок Xl.Columns[1].ColumnWidth:=Xl.Columns[1].ColumnWidth+5; Xl.Columns[2].ColumnWidth:=Xl.Columns[2].ColumnWidth+5; Xl.Columns[3].ColumnWidth:=Xl.Columns[3].ColumnWidth+5; Xl.Columns[4].ColumnWidth:=Xl.Columns[4].ColumnWidth+5; Xl.Columns[5].ColumnWidth:=Xl.Columns[5].ColumnWidth+5; Xl.Columns[6].ColumnWidth:=Xl.Columns[6].ColumnWidth+5;Теперь нам нужно сохранить документ, подавив при этом вывод диагностических сообщений Excel. Как и в Word, приложение Excel может быть запущено удаленно, и в этом случае пользователь также может не иметь возможности взаимодействовать с диалоговыми окнами Excel:// Подавляем вывод диагностических сообщений Xl.DisplayAlerts:=false; // Сохраняем документWb.SaveAs('D:\SOT\Custrep.xls');Наконец, нам следует закрыть Excel и освободить ресурсы: // Закрываем Excel и освобождаем ресурсы Xl.Quit; Xl:=Unassigned;Добавление строки с новыми записями в базу данных.procedure TForm1.Button6Click(Sender: TObject);beginwith form1.ADOQuery2 do begin//Close; // закрыть файл-результат выполнения предыдущего запросаSQL.Clear; // удалить текст предыдущего запроса// записываем новый запрос в свойство SQLSQL.Add('INSERT INTO Админ (Админ, ФИО, Адрес, Ставка) VALUES ("Annie", "Бойко А.К.", "Засекречено:)", 1000);');ExecSQL;end;Так же программа имеет возможность выполнять набранные запросы (РисКод программы приведен в Додатке В.ЗАКЛЮЧЕНИЕВ ходе данной курсовой работы была разработана автоматизированная информационно-справочная система хранения и обработки информации компьютерного клуба, которая способствует быстрому поиску необходимых данных при минимальных затратах времени, а также программная реализация системы, в основе которой лежит проектирование предметной области и логической схемы БД, являющейся информационным ресурсом разрабатываемой системы. Для решения современных проблем применяются современные методы их решения. Проблема методов управления в организациях любых форм собственности предполагает использование системы управления базами данных для принятия решений на основе эффективного использования информационного ресурса, что позволяет получить большую экономическую отдачу и решать задачи планирования и управления с использованием современных информационных технологий.Хорошо спроектированная система может расширяться с ростом информационных потребностей пользователей и при этом сохраняет уже существующую информацию. Современные методы проектирования предполагают в качестве первого этапа проектирования разработку инфологической модели предметной области. Разработанная в курсовом проекте инфологическая схема позволяет уяснить структуру предметной области с целью отображения ее логической схемы в базе данных.При проектировании информационных систем использование реляционной модели базы данных является самым подходящим методом. Нормализация отношений разработанной базы данных позволила устранить ошибки внесения, удаления, обновления, дублирования данных, что особенно важно при работе с базой данных пользователей непрофессионалов. Практическая реализация информационной системы выполнена с использованием СУБД Access , однако приведенные в работе программы создания таблиц средствами SQL позволяют реализовать разработку в ином коммерческом пакете реляционного типа, где кроме языка запросов используется язык определения данных для создания базовых таблиц.Таким образом, путем автоматизации приложений Microsoft Office мы можем создавать сложные отчеты, содержащие таблицы, диаграммы, вычисляемые значения, равно как и использовать для этой цели другие возможности Microsoft Office (например, сервисы построения сводных таблиц).Разработанная база данных является законченным программным продуктом для поддержания информационных потребностей и может быть легко расширена при изменении информационных потребностей пользователя. СПИСОК ЛИТЕРАТУРЫ Буслик М.М. Модели и структуры данных. Мартин Дж. Организация баз данных в вычислительных системах.-М.: Мир, 1980.-608с. Глушаков С.В., Мельников И.В. Базы данных,включая SQL2 и SQL SERVER:Учебник для вузов.-Харьков.: Фолио,2000-250 с. Вейскас Дж. Эффективная работа с Access.-СПб:Питер.1997-848с. Боуман Дж.,Эмерсон С. Дарновски М. Практичесское руководство по SQL.-К:Диалектика,1998-565с. Дейт К. Введение в системы баз данных.- 6-е изд.-К:Диалектика, 1998.-784с. Холигвэрт, Джарод, Баттерфилд, Дэн, Сворт, Боб, и др. С++Builder 5. Руководство разработчика, том 2. Сложные вопросы программирования : Пер. с англ. - М.: Издательский дом “Вильямс”, 2001. - 832 с.: ил. - Парал. тит. англ. Архангельский А.Я. Приемы программирования в Delphi. Изд. 2-е, пере раб. и доп. - М.: ООО «Бином-Пресс», 2004 г. - 848 с.: ил. Приложение В Код программы unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComObj, ActiveX, DB, ADODB, StdCtrls, Grids, DBGrids, ComCtrls, OleServer, ExcelXP; type TForm1 = class(TForm) Report_Word: TButton; Report_Excel: TButton; CreatePivotTable: TButton; ADOConnection1: TADOConnection; ADODataSet1: TADODataSet; PageControl1: TPageControl; TabSheet1: TTabSheet; TabSheet2: TTabSheet; TabSheet3: TTabSheet; ADOTable1: TADOTable; DataSource1: TDataSource; DBGrid1: TDBGrid; RadioButton1: TRadioButton; ComboBox1: TComboBox; RadioButton2: TRadioButton; ComboBox2: TComboBox; DBGrid2: TDBGrid; ADOQuery1: TADOQuery; DataSource2: TDataSource; Select: TMemo; Button1: TButton; DBGrid3: TDBGrid; DataSource3: TDataSource; TabSheet4: TTabSheet; ADOQuery2: TADOQuery; DataSource4: TDataSource; DBGrid4: TDBGrid; Button4: TButton; ADODataSet3: TADODataSet; Button5: TButton; TabSheet5: TTabSheet; DBGrid5: TDBGrid; DataSource5: TDataSource; Button6: TButton; procedure Report_WordClick(Sender: TObject); procedure Report_ExcelClick(Sender: TObject); procedure CreatePivotTableClick(Sender: TObject); procedure RadioButton1Click(Sender: TObject); procedure ComboBox1Click(Sender: TObject); procedure RadioButton2Click(Sender: TObject); procedure ComboBox2Click(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button4Click(Sender: TObject); procedure Button5Click(Sender: TObject); procedure Button6Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; Wd, Doc, Rng, Tbl, Xl, Wb, Ws, Ch, Z : Variant; implementation {$R *.dfm} procedure TForm1.Report_WordClick(Sender: TObject); var I, Rcnt:integer; begin // Открываем базу данных и подсчитываем количество записей ADODataSet1.Open; Rcnt:=ADODataSet1.RecordCount; // Запускаем MS Word wd:= CreateOleObject('Word.Application'); // Отображаем на экране окно MS Word wd.Visible :=True; // Создаем новый документ wd.Documents.Add; Doc:= wd.Documents.Item(1); // Добавляем новый абзац Doc.Paragraphs.Add; // Меняем его стиль Doc.Paragraphs.Item(1).Style:='Заголовок 1'; // Создаем заголовок отчета Rng := Doc.Range(0); Rng.InsertBefore('Центр данных'); // Создаем заголовки колонок Doc.Paragraphs.Add; Rng.InsertAfter('Комп: Игрок: Дата: Продолжительность: Код услуги: Админ'); // Перемещаемся на первую запись набора данных
Страницы: 1, 2, 3, 4
|