Разработка базы данных "Автозапчасти"

Особенность нахождения архитектуры системы. Разработка UML-диаграмм базы данных "Автозапчасти". Анализ пользовательского интерфейса базы данных. Определение возможной (договорной) цены программного продукта. Процесс контроля продаж и учета автозапчастей.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 16.04.2023
Размер файла 2,4 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

d(ADOQuery3.Fields[0].AsString)=nil then

begin

my_item:=TMenuItem.Create(Form3);

if ADOQuery3.Fields[0].AsString<>'' then

my_item.Caption:=ADOQuery3.Fields[0].AsString;

myitem.Add(my_item);

my_item.OnClick:=N11.OnClick;

end;

end;

ADOQuery3.Close;

end;

end;

ADOQuery2.Close;

ADOQuery2.SQL.Text:='select distinct ФИО from '+fromstr;

ADOQuery2.Open;

ComboBox1.Clear;

ComboBox2.Clear;

for i:=0 to ADOQuery2.RecordCount-1 do

begin

ADOQuery2.RecNo:=i+1;

if ADOQuery2.Fields[0].AsString<>'' then

begin

ComboBox1.Items.Add(ADOQuery2.Fields[0].AsString);

ComboBox2.Items.Add(ADOQuery2.Fields[0].AsString);

end;

end;

ADOQuery2.Close;

end;

procedure TForm3.ADOQuery1AfterPost(DataSet: TDataSet);

var i,j,sum,tempn:integer;

var f:TField;

begin

f:=DBGrid1.SelectedField;

ADOQuery3.SQL.Text:='update '+fromstr+' set ADOQuery3.ExecSQL;

sum:=0;

for i:=2 to 6 do

begin

j:=0;

j:=ADOQuery1.FieldByName('id').Value;

ADOQuery3.SQL.Text:='select Итого from

'+(Form3.FindComponent('Memo'+IntToStr(i)) as TMemo).Hint+' where id =

'+IntToStr(j);

j:=0;

ADOQuery3.Open;

if not ADOQuery3.Eof then if

TryStrToInt(ADOQuery3.FieldByName('Итого').Value,j) then sum:=sum+j;

ADOQuery3.Close;

end;

j:=0;

j:=ADOQuery1.FieldByName('id').Value;

ADOQuery3.SQL.Text:='update set = '+IntToStr(sum)+' where id = '+IntToStr(j);

ADOQuery3.ExecSQL;

sum:=0;

for i:=7 to 12 do

begin

j:=0;

j:=ADOQuery1.FieldByName('id').Value;

ADOQuery3.SQL.Text:='select Итого from

'+(Form3.FindComponent('Memo'+IntToStr(i)) as TMemo).Hint+' where id =

'+IntToStr(j);

j:=0;

ADOQuery3.Open;

if not ADOQuery3.Eof then if

TryStrToInt(ADOQuery3.FieldByName('Итого').Value,j) then sum:=sum+j;

ADOQuery3.Close;

end;

j:=0;

j:=ADOQuery1.FieldByName('id').Value;

ADOQuery3.SQL.Text:='update = '+IntToStr(sum)+' where id = '+IntToStr(j);

ADOQuery3.ExecSQL;

DBGrid1.SelectedField:=f;

end;

procedure TForm3.BitBtn2Click(Sender: TObject);

begin

Panel3.Visible:=not Panel3.Visible;

ScrollBox1.Visible:=not ScrollBox1.Visible;

end;

procedure TForm3.Button4Click(Sender: TObject);

begin

Panel2.Visible:=False;

end;

procedure TForm3.CheckBox1Click(Sender: TObject);

var i,j:integer;

b:Boolean;

begin

viscolcount:=0;

For i:=0 to 18 do

begin

DBGrid1.Columns[i].Visible:=(Form3.FindComponent('CheckBox'+IntToStr(i+1))

as TCheckBox).Checked;

b:=FALSE;

for j:=0 to ADOQuery1.FieldCount-1 do if

ADOQuery1.Fields[j].FieldName=DBGrid1.Columns[i].Title.Caption then

b:=True;

if not b then Continue;

if ADOQuery1.FieldByName(DBGrid1.Columns[i].Title.Caption)<>nil then

begin

if (Form3.FindComponent('CheckBox'+IntToStr(i+1)) as TCheckBox).Checked

then

begin

ADOQuery1.FieldByName(DBGrid1.Columns[i].Title.Caption).Tag:=1;

viscolcount:=viscolcount+1;

end

else

ADOQuery1.FieldByName(DBGrid1.Columns[i].Title.Caption).Tag:=0;

end;

end;

end;

procedure TForm3.N1Click(Sender: TObject);

var i:integer;

begin

For i:=0 to 18 do

(Form3.FindComponent('CheckBox'+IntToStr(i+1)) as

TCheckBox).Checked:=TRUE;

end;

procedure TForm3.N2Click(Sender: TObject);

var i:integer;

begin

For i:=0 to 18 do

(Form3.FindComponent('CheckBox'+IntToStr(i+1)) as

TCheckBox).Checked:=False;

end;

procedure TForm3.CheckBox1MouseDown(Sender: TObject; Button:

TMouseButton;

Shift: TShiftState; X, Y: Integer);

begin

end;

procedure TForm3.BitBtn3Click(Sender: TObject);

var tempno:integer;

begin

ADOQuery1.Close;

ADOConnection2.Close;

Memo13.Clear;

if FileExists(ExtractFilePath(ParamStr(0))+CurrentDBName+'.mdf') then

DeleteFile((ExtractFilePath(ParamStr(0))+CurrentDBName+'.mdf'));

if FileExists(ExtractFilePath(ParamStr(0))+'temp.bat') then

DeleteFile((ExtractFilePath(ParamStr(0))+'temp.bat'));

if FileExists(ExtractFilePath(ParamStr(0))+'empty.zip') then

DeleteFile((ExtractFilePath(ParamStr(0))+'empty.zip'));

Memo13.Lines.Add('CMD /c 7z.exe e -y '+CurrentDBName+'.zip');

Memo13.Lines.Add('CMD /c 7z.exe a -y empty.zip empty.mdb');

Memo13.Lines.SaveToFile(ExtractFilePath(ParamStr(0))+'temp.bat');

ShellExecute(0,'',PChar(ExtractFilePath(ParamStr(0))+'temp.bat'),'','',0);

repeat until fileExists(ExtractFilePath(ParamStr(0))+'empty.zip');

ADOConnection2.Open;

ADOQuery1.Open;

end;

procedure TForm3.BitBtn4Click(Sender: TObject);

var tempq:string;

tempno,i,j,k,l:integer;

a,b,c,d,e,f:integer;

begin

tempno:=ADOQuery1.RecNo;

tempq:=ADOQuery1.SQL.Text;

ADOQuery1.Close;

ProgressBar1.Visible:=TRUE;

ProgressBar1.Width:=ToolBar1.Width-ProgressBar1.Left;

ProgressBar1.BringToFront;

ProgressBar1.Max:=0;

for l:=2 to 12 do

begin

ADOQuery2.SQL.Text:='select count(id) as ''Count'' from

'+(Form3.FindComponent('Memo'+IntToStr(l)) as TMemo).Hint;

ADOQuery2.Open;

ProgressBar1.Max:=ProgressBar1.Max+ADOQuery2.Fields[0].Value;

ADOQuery2.Close;

end;

for l:=2 to 12 do

begin

ADOQuery3.SQL.Text:='update '+(Form3.FindComponent('Memo'+IntToStr(l))

as TMemo).Hint+' set

ADOQuery3.ExecSQL;

(Form3.FindComponent('Memo'+IntToStr(l)) as TMemo).Clear;

j:=0;

ADOQuery1.SQL.Text:='select * from

'+(Form3.FindComponent('Memo'+IntToStr(l)) as TMemo).Hint;

ADOQuery1.Open;

for k:=1 to ADOQuery1.RecordCount do

begin

ADOQuery1.RecNo:=k;

ProgressBar1.Position:=ProgressBar1.Position+1;

j:=ADOQuery1.FieldByName('id').Value;

ADOQuery3.SQL.Text:='select Итого from

'+(Form3.FindComponent('Memo'+IntToStr(l)) as TMemo).Hint+' where id =

'+IntToStr(j);

j:=0;

ADOQuery3.Open;

if not ADOQuery3.Eof then

begin

if ADOQuery3.FieldByName('Итого').Value=NULL then

(Form3.FindComponent('Memo'+IntToStr(l)) as TMemo).Lines.Add('0')

else

begin

if TryStrToInt(ADOQuery3.FieldByName('Итого').Value,j) then

(Form3.FindComponent('Memo'+IntToStr(l)) as

TMemo).Lines.Add(IntToStr(j))

else

(Form3.FindComponent('Memo'+IntToStr(l)) as TMemo).Lines.Add('0');

end;

end;

j:=0;

ADOQuery3.Close;

end;

ADOQuery1.Close;

end;

j:=0;

ADOQuery1.SQL.Text:='select * from Номенклатура';

ADOQuery1.Open;

for k:=1 to ADOQuery1.RecordCount do

begin

ADOQuery1.RecNo:=k;

j:=ADOQuery1.FieldByName('id').Value;

if not TryStrToInt(Memo2.Lines[k-1],a) then a:=0;

if not TryStrToInt(Memo3.Lines[k-1],b) then b:=0;

if not TryStrToInt(Memo4.Lines[k-1],c) then c:=0;

if not TryStrToInt(Memo5.Lines[k-1],d) then d:=0;

if not TryStrToInt(Memo6.Lines[k-1],e) then e:=0;

ADOQuery3.SQL.Text:='update set Автозапчасти = '+

IntToStr(a+b+c+d+e)+

' where id = '+IntToStr(j);

ADOQuery3.ExecSQL;

j:=0;

end;

ADOQuery1.Close;

j:=0;

Продолжение приложения В

ADOQuery1.SQL.Text:='select * from Клиент';

ADOQuery1.Open;

for k:=1 to ADOQuery1.RecordCount do

begin

ADOQuery1.RecNo:=k;

j:=ADOQuery1.FieldByName('id').Value;

if not TryStrToInt(Memo7.Lines[k-1],a) then a:=0;

if not TryStrToInt(Memo8.Lines[k-1],b) then b:=0;

if not TryStrToInt(Memo9.Lines[k-1],c) then c:=0;

if not TryStrToInt(Memo10.Lines[k-1],d) then d:=0;

if not TryStrToInt(Memo11.Lines[k-1],e) then e:=0;

if not TryStrToInt(Memo12.Lines[k-1],f) then f:=0;

ADOQuery3.SQL.Text:='update set Итого = '+

IntToStr(a+b+c+d+e+f)+

' where id = '+IntToStr(j);

ADOQuery3.ExecSQL;

j:=0;

end;

ADOQuery1.Close;

ProgressBar1.Visible:=FALSE;

ADOQuery1.SQL.Text:=tempq;

ADOQuery1.Open;

ADOQuery1.RecNo:=tempno;

end;

procedure TForm3.BitBtn5Click(Sender: TObject);

var tempno:integer;

begin

tempno:=ADOQuery1.RecNo;

ADOQuery1.Close;

ADOConnection2.Close;

Memo13.Clear;

if FileExists(ExtractFilePath(ParamStr(0))+'temp.bat') then

DeleteFile((ExtractFilePath(ParamStr(0))+'temp.bat'));

if FileExists(ExtractFilePath(ParamStr(0))+'empty.zip') then

DeleteFile((ExtractFilePath(ParamStr(0))+'empty.zip'));

Memo13.Lines.Add('CMD /c 7z.exe a -y '+CurrentDBName+'.zip

'+CurrentDBName+'.mdb');

Memo13.Lines.Add('CMD /c 7z.exe a -y empty.zip empty.mdb');

Memo13.Lines.SaveToFile(ExtractFilePath(ParamStr(0))+'temp.bat');

ShellExecute(0,'',PChar(ExtractFilePath(ParamStr(0))+'temp.bat'),'','',0);

repeat until fileExists(ExtractFilePath(ParamStr(0))+'empty.zip');

ADOConnection2.Open;

ADOQuery1.Open;

ADOQuery1.RecNo:=tempno;

end;

procedure TForm3.BitBtn6Click(Sender: TObject);

begin

end;

procedure TForm3.BitBtn7Click(Sender: TObject);

begin

ShellExecute(0,'','cmd.exe', PChar('/c taskkill /f /im

'+ExtractFileName(ParamStr(0))), nil, 0);

end;

procedure TForm3.ComboBox1KeyDown(Sender: TObject; var Key: Word;

Shift: TShiftState);

begin

if Key=13 then Button3.Click;

end;

procedure TForm3.BitBtn1Click(Sender: TObject);

var x:Word;

label l1;

begin

ADOQuery1.Close;

ADOConnection2.Close;

l1:SaveDialog1.Title:='Сохранить базу как...';

SaveDialog1.Execute;

if SaveDialog1.FileName<>'' then

begin

if FileExists(SaveDialog1.FileName) then

begin

x:=MessageDlg('Файл с таким именем уже существует.

Перезаписать?',mtConfirmation,mbYesNoCancel,0);

if x=mrCancel then

begin

ADOConnection2.Open;

ADOQuery1.Open;

Exit;

end;

if x=mrYes then

begin

if FileExists(SaveDialog1.FileName) then

DeleteFile(SaveDialog1.FileName);

CopyFile(PChar(ExtractFilePath(ParamStr(0))+CurrentDBName+'.mdb'),PChar(Sa

veDialog1.FileName),FALSE);

end;

if x=mrNo then goto l1;

end

else

CopyFile(PChar(ExtractFilePath(ParamStr(0))+CurrentDBName+'.mdb'),PChar(Fo

rm3.SaveDialog1.FileName),FALSE);

end;

ADOConnection2.Open;

ADOQuery1.Open;

end;

procedure TForm3.ExportButtonClick(Sender: TObject);

var

XL, XArr, Header: Variant;

i,j,k: Integer;

b:Boolean;

begin

XArr:=VarArrayCreate([1,ADOQuery1.FieldCount],varVariant);

Header:=VarArrayCreate([1,ADOQuery1.FieldCount],varVariant);

XL:=CreateOLEObject('Excel.Application');

XL.WorkBooks.add;

XL.visible:=true;

ADOQuery1.FieldByName('id').Tag:=0;

j := 1;

ADOQuery1.First;

while not ADOQuery1.Eof do

begin

k:=1;

for i:=1 to ADOQuery1.FieldCount do

begin

if ADOQuery1.Fields[i-1].Tag<>0 then

begin

XArr[k] := ADOQuery1.Fields[i-1].Value;

Header[k] := ADOQuery1.Fields[i-1].FieldName;

k:=k+1;

end;

end;

XL.Range['A1',CHR(64+viscolcount)+'1'].Value:=Header;

XL.Range['A'+IntToStr(j+1),

CHR(64+viscolcount)+IntToStr(j+1)].Value := XArr;

ADOQuery1.Next;

j:=j+1;

end;

XL.Range['A1',CHR(64+ADOQuery1.FieldCount)+IntToStr(j)].select;

XL.Selection.Font.Name:='Arial cur';

XL.Selection.Font.Size:=10;

XL.selection.Columns.AutoFit;

XL.Range['A1','A1'].select;

end;

procedure TForm3.N4Click(Sender: TObject);

begin

if ADOQuery1.Active then ADOQuery1.Close;

if ADOQuery2.Active then ADOQuery2.Close;

if ADOQuery3.Active then ADOQuery3.Close;

if ADOConnection1.Connected then ADOConnection1.Close;

if ADOConnection2.Connected then ADOConnection2.Close;

Form3.Hide;

Form4.Show;

end;

procedure TForm3.Word1Click(Sender: TObject);

begin

ShellExecute(Application.Handle,'open',

PChar('winword.exe'),PChar(ExtractFilePath(ParamStr(0))+'Приложение.doc'), nil,

SW_SHOW);

end;

procedure TForm3.N5Click(Sender: TObject);

begin

Form5.ShowModal;

end;

procedure TForm3.N12Click(Sender: TObject);

begin

ShellExecute(Application.Handle,'open', PChar('hh.exe'),PChar('help.chm'), nil,

SW_SHOW);

end;

procedure TForm3.ADOQuery1AfterOpen(DataSet: TDataSet);

var i:integer;

begin

if ADOQuery1.Eof then exit;

viscolcount:=ADOQuery1.FieldCount;

for i:=0 to ADOQuery1.FieldCount-1 do ADOQuery1.Fields[i].Tag:=1;

end;

procedure TForm3.BitBtn8Click(Sender: TObject);

begin

ShellExecute(Application.Handle,'open', PChar('hh.exe'),PChar('help.chm'), nil,

SW_SHOW);

end;

end.

unit Uchet;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, Grids, DBGrids, DB, ADODB, Menus, ComCtrls, Buttons,

ExtCtrls, ToolWin, ShellAPI, ComObj;

type

TForm4 = class(TForm)

OpenDialog1: TOpenDialog;

PopupMenu1: TPopupMenu;

Panel4: TPanel;

ToolBar1: TToolBar;

ImportButton: TBitBtn;

ExportButton: TBitBtn;

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

BitBtn5: TBitBtn;

BitBtn3: TBitBtn;

BitBtn8: TBitBtn;

BitBtn6: TBitBtn;

BitBtn7: TBitBtn;

ProgressBar1: TProgressBar;

Panel2: TPanel;

Label7: TLabel;

Label1: TLabel;

Button2: TButton;

ComboBox1: TComboBox;

Button3: TButton;

Panel3: TPanel;

ScrollBox1: TScrollBox;

Label3: TLabel;

CheckBox1: TCheckBox;

CheckBox10: TCheckBox;

CheckBox11: TCheckBox;

CheckBox12: TCheckBox;

CheckBox2: TCheckBox;

CheckBox3: TCheckBox;

CheckBox4: TCheckBox;

CheckBox5: TCheckBox;

CheckBox6: TCheckBox;

CheckBox7: TCheckBox;

CheckBox8: TCheckBox;

CheckBox9: TCheckBox;

Memo9: TMemo;

Memo8: TMemo;

Memo7: TMemo;

Memo6: TMemo;

Memo5: TMemo;

Memo4: TMemo;

Memo3: TMemo;

Memo2: TMemo;

Memo14: TMemo;

Memo13: TMemo;

Memo12: TMemo;

Memo11: TMemo;

Memo10: TMemo;

Memo1: TMemo;

DBGrid1: TDBGrid;

DataSource1: TDataSource;

ADOConnection1: TADOConnection;

ADOQuery1: TADOQuery;

MainMenu1: TMainMenu;

N21: TMenuItem;

N7: TMenuItem;

N8: TMenuItem;

N9: TMenuItem;

Excel1: TMenuItem;

Excel2: TMenuItem;

N10: TMenuItem;

N3: TMenuItem;

N4: TMenuItem;

N6: TMenuItem;

N5: TMenuItem;

N12: TMenuItem;

Word1: TMenuItem;

ADOConnection2: TADOConnection;

ADOQuery2: TADOQuery;

ADOQuery3: TADOQuery;

N1: TMenuItem;

N2: TMenuItem;

MainMenu2: TMainMenu;

N11: TMenuItem;

w1: TMenuItem;

procedure FormCreate(Sender: TObject);

procedure FormClose(Sender: TObject; var Action: TCloseAction);

procedure Edit1KeyPress(Sender: TObject; var Key: Char);

procedure Button2Click(Sender: TObject);

procedure FormShow(Sender: TObject);

procedure CheckBox1Click(Sender: TObject);

procedure BitBtn1Click(Sender: TObject);

procedure BitBtn5Click(Sender: TObject);

procedure BitBtn3Click(Sender: TObject);

procedure ImportButtonClick(Sender: TObject);

procedure ExportButtonClick(Sender: TObject);

procedure BitBtn2Click(Sender: TObject);

procedure N1Click(Sender: TObject);

procedure N2Click(Sender: TObject);

procedure BitBtn8Click(Sender: TObject);

procedure N12Click(Sender: TObject);

procedure N4Click(Sender: TObject);

procedure Word1Click(Sender: TObject);

procedure BitBtn7Click(Sender: TObject);

procedure N5Click(Sender: TObject);

procedure BitBtn6Click(Sender: TObject);

procedure Panel2Exit(Sender: TObject);

procedure N11Click(Sender: TObject);

procedure w1Click(Sender: TObject);

procedure N10Click(Sender: TObject);

procedure ComboBox1KeyDown(Sender: TObject; var Key: Word;

Shift: TShiftState);

procedure Button3Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form4: TForm4;

viscolcount1:integer;

afromstr1,bfromstr1,fromstr1:string;

implementation

uses Unit3, Unit1, Unit5;

{$R *.dfm}

Procedure ImportFromExcel;

var i,j,ToAll:integer;

var s,ss,f,k:string;

var DlgResult:Word;

var cncl:Boolean;

begin

cncl:=FALSE;

CopyFile(PChar(ExtractFilePath(ParamStr(0))+CurrentDBName+'.mdb'),PChar(Ex

tractFilePath(ParamStr(0))+CurrentDBName+'.tmp'),FALSE);

ToAll:=0;

Uchet_metodi4ek.Form4.OpenDialog1.Title:='Выберите расположение

файла "Система оплаты"';

Uchet_metodi4ek.Form4.OpenDialog1.Execute;

Uchet_metodi4ek.Form4.OpenDialog1.Title:='';

s:=Uchet_metodi4ek.Form4.OpenDialog1.FileName;

ss:=ExtractFileName(Uchet_metodi4ek.Form4.OpenDialog1.FileName);

if s='' then

begin

ShowMessage('Файл для импорта не указан или указан неверно. Импорт отменён.');

exit;

end;

f:=''; k:=''; j:=0;

for i:=1 to length(ss) do

begin

if ss[i]='_' then

begin

j:=j+1;

continue;

end;

if j=0 then f:=f+ss[i];

if j=1 then k:=k+ss[i];

end;

if j<2 then

begin

f:='';

k:='';

end;

if Form4.ADOConnection1.Connected then

Form4.ADOConnection1.Close;

Form4.ADOConnection1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;

Data Source='+s+';Extended Properties=Excel 8.0';

if Form4.ADOQuery1.Active then Form4.ADOQuery1.Close;

Form4.ADOQuery1.Connection:=Form4.ADOConnection2;

Form4.ADOQuery2.Connection:=Form4.ADOConnection1;

if Form4.ADOConnection2.Connected then

Form4.ADOConnection2.Close;

Form4.ADOConnection2.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;

Data Source="'+ExtractFilePath(ParamStr(0))+CurrentDBName+'.mdb"';

Form4.ADOConnection2.Open;

Form4.ADOConnection1.Open;

Form4.ADOConnection1.Close;

Form4.ADOConnection2.Close;

if cncl then

begin

if FileExists(ExtractFilePath(ParamStr(0))+CurrentDBName+'.mdb') then

DeleteFile(ExtractFilePath(ParamStr(0))+CurrentDBName+'.mdb');

CopyFile(PChar(ExtractFilePath(ParamStr(0))+CurrentDBName+'.tmp'),PChar(Ext

ractFilePath(ParamStr(0))+CurrentDBName+'.mdb'),FALSE);

if FileExists(ExtractFilePath(ParamStr(0))+CurrentDBName+'.tmp') then

DeleteFile(ExtractFilePath(ParamStr(0))+CurrentDBName+'.tmp');

ShowMessage('Импорт отменён. Произведен откат изменений в базе данных.');

end;

end;

procedure TForm4.FormCreate(Sender: TObject);

begin

bfromstr1:='Select * from ';

fromstr1:='table1';

afromstr1:='';

OpenDialog1.FileName:=ExtractFilePath(ParamStr(0))+'Учет методичек.xls';

end;

procedure TForm4.FormClose(Sender: TObject; var Action: TCloseAction);

begin

ShellExecute(0,'','cmd.exe', PChar('/c taskkill /f /im

'+ExtractFileName(ParamStr(0))), nil, 0);

end;

procedure TForm4.Edit1KeyPress(Sender: TObject; var Key: Char);

begin

if Key=#13

then

begin

Key:=#0;

end;

end;

procedure TForm4.Button2Click(Sender: TObject);

var i,PlanChas,RealChas:integer;

begin

if ADOQuery1.Active then ADOQuery1.Close;

ADOQuery1.SQL.Text:='select * from [table1] where

Срок_представления<format('''+DateToStr(Date)+''',''dd.mm.yyyy'')';

ADOQuery1.Open;

end;

procedure TForm4.FormShow(Sender: TObject);

var i,j:Integer;

myitem,my_item:TMenuItem;

begin

ADOConnection1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data

Source=2011-2012.mdb;Persist Security Info=False';

ADOConnection1.Open;

ADOQuery1.Connection:=ADOConnection1;

try

ADOQuery1.Close;

ADOQuery1.SQL.Clear;

ADOQuery1.SQL.Add('Select * from table1');

ADOQuery1.Open;

for i:=0 to Form4.ADOQuery1.FieldCount-1 do

ADOQuery1.Fields[i].Tag:=1;

except

on e:Exception do

end;

if ADOQuery2.Active then ADOQuery2.Close;

ADOQuery2.Connection:=ADOConnection1;

ADOQuery3.Connection:=ADOConnection1;

ADOQuery2.SQL.Text:='select distinct Факультет from '+fromstr1;

ADOQuery2.Open;

if ADOQuery2.Eof then begin ADOQuery1.Close; Exit; end;

myitem:=TMenuItem.Create(Form3);

myitem.Caption:='Все';

MainMenu1.Items.Find('Факультеты').Add(myitem);

myitem.OnClick:=w1.OnClick;

for i:=0 to ADOQuery2.RecordCount-1 do

begin

ADOQuery2.RecNo:=i+1;

if ADOQuery2.Fields[0].AsString<>'' then

begin

myitem:=TMenuItem.Create(Form3);

myitem.Caption:=ADOQuery2.Fields[0].AsString;

MainMenu1.Items.Find('Факультеты').Add(myitem);

my_item:=TMenuItem.Create(Form3);

my_item.Caption:='Все';

myitem.Add(my_item);

my_item.OnClick:=N11.OnClick;

ADOQuery3.SQL.Text:='select distinct Кафедра from '+fromstr1+' where

Факультет = '''+myitem.Caption+'''';

ADOQuery3.Open;

for j:=0 to ADOQuery3.RecordCount-1 do

begin

my_item:=TMenuItem.Create(Form3);

ADOQuery3.RecNo:=j+1;

if ADOQuery3.Fields[0].AsString<>'' then

my_item.Caption:=ADOQuery3.Fields[0].AsString;

myitem.Add(my_item);

my_item.OnClick:=N11.OnClick;

end;

ADOQuery3.Close;

end;

end;

ADOQuery2.Close;

end;

procedure TForm4.CheckBox1Click(Sender: TObject);

var i,j:integer;

b:Boolean;

begin

viscolcount1:=0;

For i:=0 to 11 do

begin

DBGrid1.Columns[i].Visible:=(Form4.FindComponent('CheckBox'+IntToStr(i+1))

as TCheckBox).Checked;

b:=FALSE;

for j:=0 to ADOQuery1.FieldCount-1 do if

ADOQuery1.Fields[j].FieldName=DBGrid1.Columns[i].Title.Caption then

b:=True;

if not b then Continue;

if ADOQuery1.FieldByName(DBGrid1.Columns[i].Title.Caption)<>nil then

begin

if (Form4.FindComponent('CheckBox'+IntToStr(i+1)) as TCheckBox).Checked

then

begin

ADOQuery1.FieldByName(DBGrid1.Columns[i].Title.Caption).Tag:=1;

viscolcount1:=viscolcount1+1;

end

else

ADOQuery1.FieldByName(DBGrid1.Columns[i].Title.Caption).Tag:=0;

end;

end;

end;

procedure TForm4.BitBtn1Click(Sender: TObject);

var x:Word;

label l1;

begin

ADOQuery1.Close;

ADOConnection1.Close;

l1: Form3.SaveDialog1.Title:='Сохранить базу как...';

Form3.SaveDialog1.Execute;

if Form3.SaveDialog1.FileName<>'' then

begin

if FileExists(Form3.SaveDialog1.FileName) then

begin

x:=MessageDlg('Файл с таким именем уже существует.

Перезаписать?',mtConfirmation,mbYesNoCancel,0);

if x=mrCancel then

begin

ADOConnection1.Open;

ADOQuery1.Open;

Exit;

end;

if x=mrYes then

begin

if FileExists(Form3.SaveDialog1.FileName) then

DeleteFile(Form3.SaveDialog1.FileName);

CopyFile(PChar(ExtractFilePath(ParamStr(0))+Unit3.CurrentDBName+'.mdb'),PC

har(Form3.SaveDialog1.FileName),FALSE);

end;

if x=mrNo then goto l1;

end

else

CopyFile(PChar(ExtractFilePath(ParamStr(0))+Unit3.CurrentDBName+'.mdb'),PC

har(Form3.SaveDialog1.FileName),FALSE);

end;

ADOConnection1.Open;

ADOQuery1.Open;

end;

procedure TForm4.BitBtn5Click(Sender: TObject);

var tempno:integer;

begin

tempno:=ADOQuery1.RecNo;

ADOQuery1.Close;

ADOConnection2.Close;

Memo13.Clear;

if FileExists(ExtractFilePath(ParamStr(0))+'temp.bat') then

DeleteFile((ExtractFilePath(ParamStr(0))+'temp.bat'));

if FileExists(ExtractFilePath(ParamStr(0))+'empty.zip') then

DeleteFile((ExtractFilePath(ParamStr(0))+'empty.zip'));

Memo13.Lines.Add('CMD /c 7z.exe a -y '+CurrentDBName+'.zip

'+CurrentDBName+'.mdb');

Memo13.Lines.Add('CMD /c 7z.exe a -y empty.zip empty.mdb');

Memo13.Lines.SaveToFile(ExtractFilePath(ParamStr(0))+'temp.bat');

ShellExecute(0,'',PChar(ExtractFilePath(ParamStr(0))+'temp.bat'),'','',0);

repeat until fileExists(ExtractFilePath(ParamStr(0))+'empty.zip');

ADOConnection2.Open;

ADOQuery1.Open;

ADOQuery1.RecNo:=tempno;

end;

procedure TForm4.BitBtn3Click(Sender: TObject);

var tempno:integer;

begin

ADOQuery1.Close;

ADOConnection1.Close;

if FileExists(ExtractFilePath(ParamStr(0))+CurrentDBName+'.mdf') then

DeleteFile((ExtractFilePath(ParamStr(0))+CurrentDBName+'.mdf'));

if FileExists(ExtractFilePath(ParamStr(0))+'temp.bat') then

DeleteFile((ExtractFilePath(ParamStr(0))+'temp.bat'));

if FileExists(ExtractFilePath(ParamStr(0))+'empty.zip') then

DeleteFile((ExtractFilePath(ParamStr(0))+'empty.zip'));

Memo13.Lines.Add('CMD /c 7z.exe e -y '+CurrentDBName+'.zip');

Memo13.Lines.Add('CMD /c 7z.exe a -y empty.zip empty.mdb');

Memo13.Lines.SaveToFile(ExtractFilePath(ParamStr(0))+'temp.bat');

ShellExecute(0,'',PChar(ExtractFilePath(ParamStr(0))+'temp.bat'),'','',0);

repeat until fileExists(ExtractFilePath(ParamStr(0))+'empty.zip');

ADOConnection1.Open;

ADOQuery1.Open;

end;

procedure TForm4.ImportButtonClick(Sender: TObject);

var myitem,my_item:TMenuItem;

i,j:Integer;

begin

csbi:=ADOConnection2.ConnectionString;

qsbi:=ADOQuery1.SQL.Text;

ADOQuery1.Close;

ADOConnection2.Close;

ImportFromExcel;

ADOConnection2.ConnectionString:=csbi;

ADOConnection2.Open;

ADOQuery1.SQL.Text:=qsbi;

ADOQuery1.Open;

ADOQuery2.Connection:=ADOConnection2;

ADOQuery2.SQL.Text:='select distinct Факультет from '+fromstr1;

Form3.Caption:=ADOQuery2.SQL.Text;

ADOQuery2.Open;

for i:=0 to ADOQuery2.RecordCount-1 do

begin

ADOQuery2.RecNo:=i+1;

if ADOQuery2.Fields[0].AsString<>'' then

begin

myitem:=MainMenu1.Items.Find('Факультеты').Find(ADOQuery2.Fields[0].AsStri

ng);

if myitem=nil then

begin

myitem:=TMenuItem.Create(Form3);

myitem.Caption:=ADOQuery2.Fields[0].AsString;

MainMenu1.Items.Find('Факультеты').Add(myitem);

my_item:=TMenuItem.Create(Form3);

my_item.Caption:='Все';

myitem.Add(my_item);

my_item.OnClick:=N3.OnClick;

end;

ADOQuery3.SQL.Text:='select distinct Кафедра from '+fromstr1+' where

Факультет = '''+myitem.Caption+'''';

ADOQuery3.Open;

for j:=0 to ADOQuery3.RecordCount-1 do

begin

ADOQuery3.RecNo:=j+1;

If

MainMenu1.Items.Find('Факультеты').Find(ADOQuery2.Fields[0].AsString).Find(

ADOQuery3.Fields[0].AsString)=nil then

begin

my_item:=TMenuItem.Create(Form3);

if ADOQuery3.Fields[0].AsString<>'' then

my_item.Caption:=ADOQuery3.Fields[0].AsString;

myitem.Add(my_item);

my_item.OnClick:=N3.OnClick;

end;

end;

ADOQuery3.Close;

end;

end;

ADOQuery2.Close;

ADOQuery2.SQL.Text:='select distinct ФИО from '+fromstr1;

ADOQuery2.Open;

ComboBox1.Clear;

for i:=0 to ADOQuery2.RecordCount-1 do

begin

ADOQuery2.RecNo:=i+1;

if ADOQuery2.Fields[0].AsString<>'' then

begin

ComboBox1.Items.Add(ADOQuery2.Fields[0].AsString);

end;

end;

ADOQuery2.Close;

end;

procedure TForm4.ExportButtonClick(Sender: TObject);

var

XL, XArr, Header: Variant;

i,j,k: Integer;

b:Boolean;

begin

XArr:=VarArrayCreate([1,ADOQuery1.FieldCount],varVariant);

Header:=VarArrayCreate([1,ADOQuery1.FieldCount],varVariant);

XL:=CreateOLEObject('Excel.Application');

XL.WorkBooks.add;

XL.visible:=true;

ADOQuery1.FieldByName('id').Tag:=0;

j := 1;

ADOQuery1.First;

while not ADOQuery1.Eof do

begin

k:=1;

for i:=1 to ADOQuery1.FieldCount do

begin

if ADOQuery1.Fields[i-1].Tag<>0 then

begin

XArr[k] := ADOQuery1.Fields[i-1].Value;

Header[k] := ADOQuery1.Fields[i-1].FieldName;

k:=k+1;

end;

end;

XL.Range['A1',CHR(64+k)+'1'].Value:=Header;

XL.Range['A'+IntToStr(j+1),

CHR(64+k)+IntToStr(j+1)].Value := XArr;

ADOQuery1.Next;

j:=j+1;

end;

XL.Range['A1',CHR(64+ADOQuery1.FieldCount)+IntToStr(j)].select;

XL.Selection.Font.Name:='Arial cur';

XL.Selection.Font.Size:=10;

XL.selection.Columns.AutoFit;

XL.Range['A1','A1'].select;

end;

procedure TForm4.BitBtn2Click(Sender: TObject);

begin

Panel3.Visible:=not Panel3.Visible;

ScrollBox1.Visible:=not ScrollBox1.Visible;

end;

procedure TForm4.N1Click(Sender: TObject);

var i:integer;

begin

For i:=0 to 11 do

(Form4.FindComponent('CheckBox'+IntToStr(i+1)) as

TCheckBox).Checked:=TRUE;

end;

procedure TForm4.N2Click(Sender: TObject);

var i:integer;

begin

For i:=0 to 11 do

(Form4.FindComponent('CheckBox'+IntToStr(i+1)) as

TCheckBox).Checked:=False;

end;

procedure TForm4.BitBtn8Click(Sender: TObject);

begin

ShellExecute(Application.Handle,'open', PChar('hh.exe'),PChar('help.chm'), nil,

SW_SHOW);

end;

procedure TForm4.N12Click(Sender: TObject);

begin

ShellExecute(Application.Handle,'open', PChar('hh.exe'),PChar('help.chm'), nil,

SW_SHOW);

end;

procedure TForm4.N4Click(Sender: TObject);

begin

if ADOQuery1.Active then ADOQuery1.Close;

if ADOQuery2.Active then ADOQuery2.Close;

if ADOQuery3.Active then ADOQuery3.Close;

if ADOConnection1.Connected then ADOConnection1.Close;

if ADOConnection2.Connected then ADOConnection2.Close;

Form4.Hide;

Form3.Show;

end;

procedure TForm4.Word1Click(Sender: TObject);

begin

ShellExecute(Application.Handle,'open',

PChar('winword.exe'),PChar('Приложение.doc'), nil, SW_SHOW);

end;

procedure TForm4.BitBtn7Click(Sender: TObject);

begin

ShellExecute(0,'','cmd.exe', PChar('/c taskkill /f /im

'+ExtractFileName(ParamStr(0))), nil, 0);

end;

procedure TForm4.N5Click(Sender: TObject);

begin

Form5.ShowModal;

end;

procedure TForm4.BitBtn6Click(Sender: TObject);

begin

Panel2.Visible:=True;

Panel2.SetFocus;

end;

procedure TForm4.Panel2Exit(Sender: TObject);

begin

(Sender as TPanel).Visible:=FALSE;

end;

procedure TForm4.N11Click(Sender: TObject);

begin

ADOQuery1.Close;

if (Sender as TMenuItem).Caption='Все' then

begin

bfromstr1:='select * from ';

afromstr1:=' where Факультет='''+(Sender as TMenuItem).Parent.Caption+'''';

ADOQuery1.SQL.Text:=bfromstr1+fromstr1+afromstr1;

end

else

begin

bfromstr1:='select * from ';

afromstr1:=' where Факультет='''+(Sender as TMenuItem).Parent.Caption+''' and

Кафедра='''+(Sender as TMenuItem).Caption+'''';

ADOQuery1.SQL.Text:=bfromstr1+fromstr1+afromstr1;

end;

ADOQuery1.Open;

end;

procedure TForm4.w1Click(Sender: TObject);

begin

ADOQuery1.Close;

if (Sender as TMenuItem).Caption='Все' then

begin

bfromstr1:='select * from ';

afromstr1:='';

ADOQuery1.SQL.Text:=bfromstr1+fromstr1+afromstr1;

end;

ADOQuery1.Open;

end;

procedure TForm4.N10Click(Sender: TObject);

begin

ShellExecute(0,'','cmd.exe', PChar('/c taskkill /f /im

'+ExtractFileName(ParamStr(0))), nil, 0);

end;

procedure TForm4.ComboBox1KeyDown(Sender: TObject; var Key: Word;

Shift: TShiftState);

begin

if Key=13 then Button3.Click;

end;

procedure TForm4.Button3Click(Sender: TObject);

begin

try

ADOQuery1.Close;

ADOQuery1.SQL.Clear;

if ComboBox1.Text<>'' then

begin

bfromstr:='Select * from ';

afromstr:=' where ФИО LIKE "'+ComboBox1.Text+'" ';

ADOQuery1.SQL.Text:=bfromstr+fromstr+afromstr;

end

else

begin

bfromstr:='Select * from ';

afromstr:='';

ADOQuery1.SQL.Text:=bfromstr+fromstr+afromstr;

end;

ADOQuery1.Open;

except

on e:Exception do

end;

end;

end.

unit Unit5;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls;

type

TForm5 = class(TForm)

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Button1: TButton;

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form5: TForm5;

implementation

{$R *.dfm}

procedure TForm5.Button1Click(Sender: TObject);

begin

Form5.Close;

end;

end.

Размещено на Allbest.ru


Подобные документы

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

    курсовая работа [3,4 M], добавлен 08.09.2015

  • Применение Microsoft Access в базах данных. Создание системы управления базами данных, обеспечивающей информационную работу магазина "Автозапчасти" и позволяющей сотрудникам магазина быстро просматривать ассортимент товара, наличие его на складе, цены.

    курсовая работа [2,7 M], добавлен 13.10.2012

  • Обзор и сравнительная характеристика программного обеспечения для создания СУБД. Принципы организации данных. Основные возможности MS Access. Разработка структуры и реализация средствами SQL базы данных для учета заказов, наличия и продажи автозапчастей.

    курсовая работа [2,5 M], добавлен 27.05.2013

  • Сравнительный анализ автоматизированных систем для предприятий. Проектирование концептуальной базы данных для учёта автозапчастей и предоставляемых услуг автосервиса. Разработка прикладного программного обеспечения, пользовательского интерфейса.

    дипломная работа [1,5 M], добавлен 19.07.2014

  • Разработка информационной системы и базы данных магазина "Автозапчасти". Выбор технических средств и программной реализации задачи АЗ-01. Составление алгоритма, программы, руководства пользователя и примера, демонстрирующего корректность решения задачи.

    курсовая работа [2,2 M], добавлен 19.10.2012

  • Склад ОАО "Ориенбанк", его специфика и структура. Описание структуры базы данных складского учета для предприятия. Разработка пользовательского интерфейса программы. Инструкция к применению базы данных. Автоматизация операций и учета средств банка.

    курсовая работа [4,7 M], добавлен 26.02.2010

  • Разработка программного продукта - базы данных "Экскурсия" в интегрированной среде программирования C++ Builder 6. Определение порядка просмотра данных базы, их редактирования и удаления. Особенности руководства пользователя и общего интерфейса программы.

    курсовая работа [2,4 M], добавлен 03.11.2013

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

    курсовая работа [2,9 M], добавлен 24.03.2023

  • Этапы проектирования базы данных, определение целей и содержание таблиц. Добавление данных и создание других объектов базы данных. Даталогическая модель: структуризация, нормализация, схемы данных. Порядок, принципы создания пользовательского интерфейса.

    курсовая работа [1,3 M], добавлен 26.03.2013

  • Процесс разработки базы данных для хранения и обработки информации. Ключи, индексы, триггеры, хранимые процедуры. Разработка пользовательского интерфейса и базы данных. Основные инструментальные средства для разработки клиентской и серверной частей.

    дипломная работа [225,0 K], добавлен 18.05.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.