Advertisement
Guest User

Untitled

a guest
Dec 13th, 2018
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Delphi 11.26 KB | None | 0 0
  1. unit Unit1;
  2.  
  3. interface
  4.  
  5. uses
  6.   Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
  7.   System.Classes, Vcl.Graphics,
  8.   Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Data.DB, Vcl.Grids, Vcl.DBGrids,
  9.   Data.Win.ADODB, Vcl.StdCtrls, Vcl.Imaging.pngimage, Vcl.ExtCtrls,
  10.   Vcl.DBCtrls;
  11.  
  12. type
  13.   TForm1 = class(TForm)
  14.     GroupBox1: TGroupBox;
  15.     AttrTable: TADOTable;
  16.     AttrData: TDataSource;
  17.     ADOConnection1: TADOConnection;
  18.     DBGrid1: TDBGrid;
  19.     GroupBox2: TGroupBox;
  20.     DBGrid2: TDBGrid;
  21.     ClientTable: TADOTable;
  22.     ClientData: TDataSource;
  23.     Button1: TButton;
  24.     Button2: TButton;
  25.     Button3: TButton;
  26.     Button4: TButton;
  27.     Button5: TButton;
  28.     Button6: TButton;
  29.     GroupBox3: TGroupBox;
  30.     DBGrid3: TDBGrid;
  31.     TicketsTable: TADOTable;
  32.     TicketsData: TDataSource;
  33.     Button7: TButton;
  34.     Edit1: TEdit;
  35.     Edit2: TEdit;
  36.     Button8: TButton;
  37.     Image1: TImage;
  38.     Button9: TButton;
  39.     CheckBox1: TCheckBox;
  40.     SotrTable: TADOTable;
  41.     SotrData: TDataSource;
  42.     Label1: TLabel;
  43.     Label2: TLabel;
  44.     Label3: TLabel;
  45.     Label4: TLabel;
  46.     Button10: TButton;
  47.     Label5: TLabel;
  48.     Label6: TLabel;
  49.     Edit3: TEdit;
  50.     Button11: TButton;
  51.     GroupBox4: TGroupBox;
  52.     Label7: TLabel;
  53.     Label8: TLabel;
  54.     Label9: TLabel;
  55.     Label10: TLabel;
  56.     Timer1: TTimer;
  57.     procedure Button1Click(Sender: TObject);
  58.     procedure Button2Click(Sender: TObject);
  59.     procedure Button3Click(Sender: TObject);
  60.     procedure Button4Click(Sender: TObject);
  61.     procedure FormCreate(Sender: TObject);
  62.     procedure Button5Click(Sender: TObject);
  63.     procedure Button6Click(Sender: TObject);
  64.     procedure Button7Click(Sender: TObject);
  65.     procedure Button8Click(Sender: TObject);
  66.     procedure Button9Click(Sender: TObject);
  67.     procedure FormClose(Sender: TObject; var Action: TCloseAction);
  68.     procedure Button10Click(Sender: TObject);
  69.     procedure Timer1Timer(Sender: TObject);
  70.   private
  71.     { Private declarations }
  72.   public
  73.     { Public declarations }
  74.   end;
  75.  
  76. var
  77.   Form1: TForm1;
  78.  
  79. implementation
  80.  
  81. uses AttrAdd, ClientAdd, Login;
  82. {$R *.dfm}
  83.  
  84. procedure TForm1.Button10Click(Sender: TObject);
  85. begin
  86.   TicketsTable.Delete; //Удаление билета
  87.   Label4.Caption := inttostr(DBGrid3.DataSource.DataSet.RecordCount); //Обновление статистики
  88. end;
  89.  
  90. procedure TForm1.Button1Click(Sender: TObject);
  91. begin
  92.   if AddAttr.ShowModal = mrok then
  93.   begin
  94.     AttrTable.Append; //Добавление новой строки в конец
  95.     AttrTable['Название'] := AddAttr.Edit1.Text;
  96.     AttrTable['Описание'] := AddAttr.Edit2.Text;
  97.     AttrTable['Стоимость'] := strtoint(AddAttr.Edit3.Text);  //Заполнение
  98.     if AddAttr.CheckBox1.Checked then
  99.       AttrTable['Активен'] := 'True'
  100.     else
  101.       AttrTable['Активен'] := 'False';
  102.     AttrTable.Post; //Занос в таблицу
  103.   end;
  104. end;
  105.  
  106. procedure TForm1.Button2Click(Sender: TObject);
  107. begin
  108.   AddAttr.Edit1.Text := AttrTable['Название'];
  109.   AddAttr.Edit2.Text := AttrTable['Описание']; //Заполнение изменяемых полей
  110.   AddAttr.Edit3.Text := AttrTable['Стоимость'];
  111.   if AddAttr.ShowModal = mrok then
  112.   begin
  113.     AttrTable.Edit; //Открытие для изменения
  114.     AttrTable['Название'] := AddAttr.Edit1.Text;
  115.     AttrTable['Описание'] := AddAttr.Edit2.Text;  //Изменение
  116.     AttrTable['Стоимость'] := strtoint(AddAttr.Edit3.Text);
  117.     if AddAttr.CheckBox1.Checked then
  118.       AttrTable['Активен'] := 'True'
  119.     else
  120.       AttrTable['Активен'] := 'False';
  121.     AttrTable.Post; //Занос в таблицу
  122.   end;
  123. end;
  124.  
  125. procedure TForm1.Button3Click(Sender: TObject);
  126. begin
  127.   AttrTable.Delete;//Удаление
  128. end;
  129.  
  130. procedure TForm1.Button4Click(Sender: TObject);
  131. begin
  132.   if AddClient.ShowModal = mrok then
  133.   begin
  134.     ClientTable.Append; //Добавление
  135.     ClientTable['Фамилия'] := AddClient.Edit1.Text;
  136.     ClientTable['Имя'] := AddClient.Edit2.Text; //Соответствие с полями
  137.     ClientTable['Отчество'] := AddClient.Edit4.Text;
  138.     ClientTable['Дата рождения'] := AddClient.DateTimePicker1.Date;
  139.     ClientTable.Post; //Занос в таблицу
  140.   end;
  141. end;
  142.  
  143. procedure TForm1.Button5Click(Sender: TObject);
  144. begin
  145.   AddClient.Edit1.Text := ClientTable['Фамилия'];
  146.   AddClient.Edit2.Text := ClientTable['Имя'];
  147.   AddClient.Edit4.Text := ClientTable['Отчество'];
  148.   AddClient.DateTimePicker1.Date := ClientTable['Дата рождения'];
  149.   if AddClient.ShowModal = mrok then
  150.   begin
  151.     ClientTable.Edit; // Изменение
  152.     ClientTable['Фамилия'] := AddClient.Edit1.Text;
  153.     ClientTable['Имя'] := AddClient.Edit2.Text;
  154.     ClientTable['Отчество'] := AddClient.Edit4.Text;
  155.     ClientTable['Дата рождения'] := AddClient.DateTimePicker1.Date;
  156.     ClientTable.Post; // Занос в таблицу
  157.   end;
  158. end;
  159.  
  160. procedure TForm1.Button6Click(Sender: TObject);
  161. begin
  162.   ClientTable.Delete; //Удаление
  163. end;
  164.  
  165. procedure TForm1.Button7Click(Sender: TObject);
  166. begin
  167.   if not AttrTable.Locate('IdАттракциона', Edit1.Text,
  168.     [loCaseInsensitive, loPartialKey]) then //Поиск по ИД
  169.     ShowMessage('Запись не найдена');
  170. end;
  171.  
  172. procedure TForm1.Button8Click(Sender: TObject);
  173. begin
  174.   if not ClientTable.Locate('IdКлиента', Edit2.Text,
  175.     [loCaseInsensitive, loPartialKey]) then // Поиск по ИД
  176.     ShowMessage('Запись не найдена');
  177. end;
  178.  
  179. procedure TForm1.Button9Click(Sender: TObject);
  180. var
  181.   a, i, pr: integer;
  182. begin
  183. pr:=0;
  184.   TicketsTable.Append;
  185.   if DBGrid1.SelectedField.Value then //Проверка на выделение
  186.   begin
  187.     if AttrTable['Активен'] = True then //Проверка на работу аттракциона
  188.     begin
  189.       TicketsTable['Аттракцион'] := AttrTable['Название'];
  190.       if DBGrid2.SelectedField.Value then //Проверка на выделение
  191.         TicketsTable['Клиент'] := (ClientTable['Фамилия']);
  192.       TicketsTable['Сотрудник'] := (SotrTable['Фамилия']);
  193.       if CheckBox1.Checked then //Проверка на чекбокс
  194.       begin
  195.         TicketsTable['Детский'] := 'True';
  196.         a := AttrTable['Стоимость'];
  197.         a := round(a / 2); //Подсчет детского билета
  198.         TicketsTable['Цена билета'] := a
  199.       end
  200.       else
  201.       begin
  202.         TicketsTable['Детский'] := 'False';
  203.         TicketsTable['Цена билета'] := AttrTable['Стоимость'];
  204.       end;
  205.       TicketsTable.Post; //Занос в таблицу
  206.     end
  207.     else
  208.       ShowMessage('Выбранный аттракцион не работает');
  209.     while not TicketsData.DataSet.Eof do
  210.     begin
  211.       for i := 1 to TicketsData.DataSet.RecordCount do
  212.       begin
  213.         pr := pr + TicketsTable['Цена билета']; //Подсчет выручки
  214.       end;
  215.       TicketsData.DataSet.Next;
  216.     end;
  217.      Label6.Caption := inttostr(pr);
  218.   end;
  219. end;
  220.  
  221. procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
  222. begin
  223.   Login.SotrLogin.Close; //Закрытие формы
  224. end;
  225.  
  226. procedure TForm1.FormCreate(Sender: TObject);
  227. var
  228.   pr, i: integer;
  229. begin
  230.   pr:=0;
  231.   DBGrid1.columns.Items[0].width := 20;
  232.   DBGrid1.columns.Items[1].width := 190;
  233.   DBGrid1.columns.Items[2].width := 260;
  234.   DBGrid1.columns.Items[3].width := 60;
  235.   DBGrid1.columns.Items[4].width := 84;
  236.   DBGrid2.columns.Items[0].width := 15;
  237.   DBGrid2.columns.Items[1].width := 150; //Размеры колонок вручную
  238.   DBGrid2.columns.Items[2].width := 150;
  239.   DBGrid2.columns.Items[3].width := 160;
  240.   DBGrid2.columns.Items[4].width := 140;
  241.   DBGrid3.columns.Items[0].width := 30;
  242.   DBGrid3.columns.Items[1].width := 90;
  243.   DBGrid3.columns.Items[2].width := 180;
  244.   DBGrid3.columns.Items[3].width := 90;
  245.   DBGrid3.columns.Items[4].width := 90;
  246.   TicketsTable.First;
  247.   while not TicketsTable.Eof do begin
  248.     begin
  249.       for i := 1 to TicketsTable.RecordCount do
  250.       begin
  251.         pr := pr + TicketsTable['Цена Билета']; //Подсчет выручки
  252.       end;
  253.       TicketsTable.Next;
  254.     end;
  255.   end;
  256.      Label6.Caption := inttostr(pr);
  257.   end;
  258.  
  259. procedure TForm1.Timer1Timer(Sender: TObject);
  260. var
  261.   i, a: integer;
  262. begin
  263.   a := 0;
  264.   Label1.Caption := SotrTable['Имя']; //Данные сотрудника
  265.   with AttrTable do
  266.   begin
  267.     for i := 1 to AttrTable.RecordCount do
  268.       if AttrTable['Активен'] = True then
  269.         inc(a);
  270.     Label8.Caption := inttostr(a); //Количество работающих аттракционов
  271.   end;
  272.   Label10.Caption := inttostr(ClientTable.RecordCount); //Количество клиентов
  273.   Label4.Caption := inttostr(DBGrid3.DataSource.DataSet.RecordCount); //Количество проданных билетов
  274. end;
  275.  
  276. end.
  277.  
  278. unit Login;
  279.  
  280. interface
  281.  
  282. uses
  283.   Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
  284.   System.Classes, Vcl.Graphics,
  285.   Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.DBCtrls;
  286.  
  287. type
  288.   TSotrLogin = class(TForm)
  289.     Button1: TButton;
  290.     GroupBox1: TGroupBox;
  291.     Edit1: TEdit;
  292.     Edit2: TEdit;
  293.     procedure Button1Click(Sender: TObject);
  294.  
  295.   private
  296.     { Private declarations }
  297.   public
  298.     { Public declarations }
  299.   end;
  300.  
  301. var
  302.   SotrLogin: TSotrLogin;
  303.   x: boolean;
  304.  
  305. implementation
  306.  
  307. uses unit1;
  308. {$R *.dfm}
  309.  
  310. procedure TSotrLogin.Button1Click(Sender: TObject);
  311. var
  312.   i: integer;
  313.   s1,s2:string;
  314. begin
  315.   form1.SotrData.DataSet.First;
  316.   for i := 1 to Form1.SotrData.DataSet.RecordCount do
  317.   begin
  318.     s1 := form1.SotrData.DataSet.FieldByName('Логин').Asstring;
  319.     s2 := form1.SotrData.DataSet.FieldByName('Пароль').Asstring;
  320.    if (edit2.Text=s1) and (Edit1.Text=s2) then //Проверка на совпадение данных с БД
  321.    begin
  322.       Form1.ShowModal;
  323.       SotrLogin.Visible:=false;
  324.       break
  325.    end
  326.     else
  327.       form1.SotrData.DataSet.Next;
  328.   end;
  329.   ShowMessage('Неверный логин или пароль');
  330. end;
  331.  
  332. end.
  333.  
  334. unit ClientAdd;
  335.  
  336. interface
  337.  
  338. uses
  339.   Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  340.   Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ComCtrls;
  341.  
  342. type
  343.   TAddClient = class(TForm)
  344.     Edit1: TEdit;
  345.     Edit2: TEdit;
  346.     Edit4: TEdit;
  347.     Button1: TButton;
  348.     DateTimePicker1: TDateTimePicker;
  349.   private
  350.     { Private declarations }
  351.   public
  352.     { Public declarations }
  353.   end;
  354.  
  355. var
  356.   AddClient:TAddClient;
  357.  
  358. implementation
  359.  
  360. {$R *.dfm}
  361.  
  362. end.
  363.  
  364. unit AttrAdd;
  365.  
  366. interface
  367.  
  368. uses
  369.   Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  370.   Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;
  371.  
  372. type
  373.   TAddAttr = class(TForm)
  374.     Edit1: TEdit;
  375.     Edit2: TEdit;
  376.     Button1: TButton;
  377.     CheckBox1: TCheckBox;
  378.     Edit3: TEdit;
  379.   private
  380.     { Private declarations }
  381.   public
  382.     { Public declarations }
  383.   end;
  384.  
  385. var
  386.   AddAttr: TAddAttr;
  387.  
  388. implementation
  389.  
  390. {$R *.dfm}
  391.  
  392. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement