Разработка базы данных "Автозапчасти"
Особенность нахождения архитектуры системы. Разработка 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