Xreferat.com » Рефераты по информатике и программированию » Информационная система компьютерного клуба

Информационная система компьютерного клуба

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('Комп: Игрок: Дата: Продолжительность: Код услуги: Админ');

// Перемещаемся на первую запись набора данных

ADODataSet1.First;

for I := 1 to Rcnt do begin

// Добавляем новый абзац

Doc.Paragraphs.Add;

// Добавляем поля из текущей записи в новый абзац

Rng.InsertAfter(ADODataSet1.Fields[0].AsString+':'+

ADODataSet1.Fields[1].ASString+':'+

ADODataSet1.Fields[2].AsString+':'+

ADODataSet1.Fields[3].ASString+':'+

ADODataSet1.Fields[4].ASString+':'+

ADODataSet1.Fields[5].ASString);

ADODataSet1.Next;

end;

// Превращаем текст в таблицу

Rng:=Doc.Range(Doc.Paragraphs.Item(3).Range.Start, Doc.Paragraphs.Item(Rcnt+3).Range.End);

Tbl:=Rng.ConvertToTable(':',Rcnt,6);

// Изменяем размеры колонок таблицы

Tbl.Columns.Item(1).Width:=Tbl.Columns.Item(1).Width-30;

Tbl.Columns.Item(2).Width:=Tbl.Columns.Item(2).Width+20;

Tbl.Columns.Item(3).Width:=Tbl.Columns.Item(3).Width-3;

Tbl.Columns.Item(4).Width:=Tbl.Columns.Item(4).Width+20;

Tbl.Columns.Item(5).Width:=Tbl.Columns.Item(5).Width-5;

Tbl.Columns.Item(6).Width:=Tbl.Columns.Item(6).Width+5;

// Подавляем вывод диагностических сообщений

Wd.DisplayAlerts:=False;

// Сохраняем документ

Doc.SaveAs('D:SOTCustrep.doc');

// Закрываем Word и освобождаем ресурсы

//Wd.Quit;

Wd:=Unassigned;

end;

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:SOTCustrer.xls');

// Закрываем Excel и освобождаем ресурсы

//Xl.Quit;

Xl:=Unassigned;

end;

procedure TForm1.CreatePivotTableClick(Sender: TObject);

var

WB,PC,PT:Variant;

const

// Константы Excel

xlExternal = $00000002;

xlCmdSql = $00000002;

xlColumnField = $00000002;

xlDataField = $00000004;

xlPageField = $00000003;

xlRowField = $00000001;

begin

// ADODataSet2.Open;

// Запускаем Microsoft Excel

Xl := CreateOleObject('Excel.Application');

// Делаем окно Excel видимым

Xl.Visible:=true;

// Создаем одну рабочую книгу с одним листом

Xl.WorkBooks.Add(1);

Wb := Xl.WorkBooks[1];

Ws := Wb.WorkSheets[1];

// Создаем кэш для хранения данных

PC := WB.PivotCaches.Add(xlExternal);

// Выбираем источник данных и текст запроса

PC.Connection := 'OLEDB;Provider=Microsoft.Jet.OLEDB.4.0;'+

'Data Source=D:SOTclub.mdb';

PC.CommandType := xlCmdSql;

PC.CommandText := 'SELECT Игрок, Номер_компа,'+' Админ, Код_услуги, Цена FROM 01Cost_more_5';

// Создаем сводную таблицу

PC.CreatePivotTable(WB.Worksheets[1].Cells[1,1],'PivotTable1');

PT := WB.Worksheets[1].PivotTables('PivotTable1');

// Указываем расположение осей и суммируем данные

PT.PivotFields('Игрок').Orientation := xlRowField;

PT.PivotFields('Игрок').Position := 1;

PT.PivotFields('Номер_компа').Orientation := xlRowField;

PT.PivotFields('Номер_компа').Position := 2;

PT.PivotFields('Админ').Orientation := xlPageField;

PT.PivotFields('Код_услуги').Orientation := xlColumnField;

PT.PivotFields('Цена').Orientation := xlDataField;

WB.Worksheets[1].Columns[2].ColumnWidth := 15;

WB.Worksheets[1].Columns[1].ColumnWidth := 20;

end;

procedure TForm1.RadioButton1Click(Sender: TObject);

var i:integer;

begin

ADOConnection1.GetTableNames(ComboBox1.Items);

for i:=Combobox1.Items.Count-1 downto 0 do

if Pos ('0', Combobox1.Items[i])>0 then Combobox1.Items.Delete(i) ;

for i:=Combobox1.Items.Count-1 downto 0 do

if Pos ('1', Combobox1.Items[i])>0 then Combobox1.Items.Delete(i) ;

for i:=Combobox1.Items.Count-1 downto 0 do

if Pos ('2', Combobox1.Items[i])>0 then Combobox1.Items.Delete(i) ;

end;

procedure TForm1.ComboBox1Click(Sender: TObject);

begin

if ADOTable1.Active then ADOTable1.Active:=False;

ADOTable1.TableName:=ComboBox1.Text;ADOTable1.Active:=True;

TabSheet1.Caption:= ComboBox1.Text;

end;

procedure TForm1.RadioButton2Click(Sender: TObject);

var i:integer;

begin

ADOConnection1.GetTableNames(ComboBox2.Items);

for i:=Combobox2.Items.Count-1 downto 0 do

if Pos ('Админ', Combobox2.Items[i])>0 then Combobox2.Items.Delete(i) ;

for i:=Combobox2.Items.Count-1 downto 0 do

if Pos ('Данные', Combobox2.Items[i])>0 then Combobox2.Items.Delete(i) ;


for i:=Combobox2.Items.Count-1 downto 0 do

if Pos ('Инфо игрока', Combobox2.Items[i])>0 then Combobox2.Items.Delete(i) ;

for i:=Combobox2.Items.Count-1 downto 0 do

if Pos ('Комп', Combobox2.Items[i])>0 then Combobox2.Items.Delete(i) ;

for i:=Combobox2.Items.Count-1 downto 0 do

if Pos ('Услуги', Combobox2.Items[i])>0 then Combobox2.Items.Delete(i) ;

for i:=Combobox2.Items.Count-1 downto 0 do

if Pos ('~', Combobox2.Items[i])>0 then Combobox2.Items.Delete(i) ;

end;

procedure TForm1.ComboBox2Click(Sender: TObject);

begin

if ADOTable1.Active then ADOTable1.Active:=False;

ADOTable1.TableName:=ComboBox2.Text;ADOTable1.Active:=True;

TabSheet1.Caption:= ComboBox2.Text;

end;

procedure TForm1.Button1Click(Sender: TObject);

begin

if ADOQuery2.Active then ADOQuery2.Active:=False;

ADOQuery2.SQL:=Select.Lines;ADOQuery2.Active:=True;

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

if ADOTable1.Active then ADOTable1.Active:=False;

ADOTable1.TableName:=ComboBox1.Text;ADOTable1.Active:=True;

TabSheet1.Caption:= ComboBox1.Text;

end;

procedure TForm1.Button4Click(Sender: TObject);

{var

fam: string[30];

begin

fam:=InputBox('Выборка информации из БД',

'Укажите фамилию и щелкните на OK.', '');

if fam <> '' // пользователь ввел фамилию

then }

begin

with form1.ADOQuery2 do begin

Close; // закрыть файл-результат выполнения предыдущего запроса

SQL.Clear; // удалить текст предыдущего запроса

// записываем новый запрос в свойство SQL

SQL.Add('SELECT Админ, ФИО, Ставка');

SQL.Add('FROM Админ');

Open; // активизируем выполнение запроса

end;

{if ADOQuery2.RecordCount <> 0 then

DataSource1.DataSet:=ADOQuery2 // отобразить рез-т выполнения запроса

else begin

ShowMessage('В БД нет записей, удовлетворяющих критерию запроса.');

DataSource1.DataSet:=ADOTable1;

end; }

end;

procedure TForm1.Button5Click(Sender: TObject);

var I, Rcnt:integer;

begin

// Открываем базу данных и подсчитываем количество записей

ADODataSet3.Open;

Rcnt := ADODataSet3.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] := 'Ставка';

for I:=1 to 4 do

Ws.Cells[2,i].Font.Bold := True;

// Перемещаемся на первую запись набора данных

ADODataSet3.First;

for I:=1 to Rcnt do

begin

// Добавляем значения полей текущей записи в новую строку

Ws.Cells[i+2,1] := ADODataSet3.Fields[0].AsString;

Ws.Cells[i+2,2] := ADODataSet3.Fields[1].AsString;

Ws.Cells[i+2,3] := ADODataSet3.Fields[2].AsString;

Ws.Cells[i+2,4] := ADODataSet3.Fields[3].AsString;

ADODataSet3.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.DisplayAlerts:=false;

// Сохраняем документ

Wb.SaveAs('D:SOTCustrer2.xls');

// Закрываем Excel и освобождаем ресурсы

//Xl.Quit;

Xl:=Unassigned;

end;

procedure TForm1.Button6Click(Sender: TObject);

begin

with form1.ADOQuery2 do begin

//Close; // закрыть файл-результат выполнения предыдущего запроса

SQL.Clear; // удалить текст предыдущего запроса

// записываем новый запрос в свойство SQL

SQL.Add('INSERT INTO Админ (Админ, ФИО, Адрес, Ставка) VALUES ("Annie", "Бойко А.К.", "Засекречено:)", 1000);');

ExecSQL;

// активизируем выполнение запроса

end;

end;

end.

Если Вам нужна помощь с академической работой (курсовая, контрольная, диплом, реферат и т.д.), обратитесь к нашим специалистам. Более 90000 специалистов готовы Вам помочь.
Бесплатные корректировки и доработки. Бесплатная оценка стоимости работы.

Поможем написать работу на аналогичную тему

Получить выполненную работу или консультацию специалиста по вашему учебному проекту
Нужна помощь в написании работы?
Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Пишем статьи РИНЦ, ВАК, Scopus. Помогаем в публикации. Правки вносим бесплатно.

Похожие рефераты: