Главная » 2018 » Октябрь » 23 » Добавление покупки
19:47
Добавление покупки

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Grids, DBGrids, DB, ADODB;

type
  TForm1 = class(TForm)
    ADOConnection1: TADOConnection;
    ADODataSet1: TADODataSet;
    ADODataSet2: TADODataSet;
    DataSource1: TDataSource;
    DataSource2: TDataSource;
    DBGrid1: TDBGrid;
    DBGrid2: TDBGrid;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
    procedure DBGrid1CellClick(Column: TColumn);
    procedure DBGrid1DblClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

uses
  Unit2;

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
    ADODataSet1.Active:=false;
    ADODataSet1.CommandText:='select surname, name, patronymic from pokupatel';
    ADODataSet1.Active:=true;
end;

procedure TForm1.DBGrid1CellClick(Column: TColumn);
begin
    ADODataSet2.Active:=false;
    ADODataSet2.CommandText:='select name_tov from tovar '+
      'where code_tov in '+
      '(select code_tov from pokupka '+
      'where code_pok in '+
      '(select code_pok from pokupatel '+
      'where surname='+''''+ADODataSet1.FieldValues['surname']+''''+
      ' and name='+''''+ADODataSet1.FieldValues['name']+''''+
      ' and patronymic='+''''+ADODataSet1.FieldValues['patronymic']+''''+'))';
    ADODataSet2.Active:=true;
end;

procedure TForm1.DBGrid1DblClick(Sender: TObject);
begin
   Form2.ShowModal;
end;

end.
 

 

unit Unit2;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Grids, DBGrids, DB, ADODB, StdCtrls;

type
  TForm2 = class(TForm)
    ADODataSet1: TADODataSet;
    DataSource1: TDataSource;
    DBGrid1: TDBGrid;
    Button1: TButton;
    ADODataSet2: TADODataSet;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    Edit5: TEdit;
    Edit6: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    ADOQuery1: TADOQuery;
    ADODataSet3: TADODataSet;
    procedure FormActivate(Sender: TObject);
    procedure DBGrid1CellClick(Column: TColumn);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form2: TForm2;

implementation

uses
  Unit1;

{$R *.dfm}

procedure TForm2.FormActivate(Sender: TObject);
begin
    Label1.Caption:=Form1.ADODataSet1.FieldValues['surname'];
    Label2.Caption:=Form1.ADODataSet1.FieldValues['name'];
    Label3.Caption:=Form1.ADODataSet1.FieldValues['patronymic'];

    ADODataSet1.Active:=false;
    ADODataSet1.CommandText:='select name_tov from tovar';
    ADODataSet1.Active:=true;
end;

procedure TForm2.DBGrid1CellClick(Column: TColumn);
begin
    ADODataSet2.Active:=false;
    ADODataSet2.CommandText:='select * from tovar '+
      'where name_tov='+''''+ADODataSet1.FieldValues['name_tov']+'''';
    ADODataSet2.Active:=true;

    Edit1.Text:=ADODataSet2.FieldValues['name_tov'];
    Edit2.Text:=ADODataSet2.FieldValues['code_tov'];
    Edit3.Text:=ADODataSet2.FieldValues['code_cat'];
    Edit4.Text:=ADODataSet2.FieldValues['kolvo'];
    Edit5.Text:=ADODataSet2.FieldValues['price'];
end;

procedure TForm2.Button1Click(Sender: TObject);
var n:Integer;
    code_pok:Integer;
begin
    ADODataSet3.Active:=false;
    ADODataSet3.CommandText:='select max(n) as maxn from pokupka';
    ADODataSet3.Active:=true;
    n:=ADODataSet3.FieldValues['maxn'];

    ADODataSet3.Active:=false;
    ADODataSet3.CommandText:='select code_pok from pokupatel '+
    'where surname='+''''+Label1.Caption+''''+
    ' and name='+''''+Label2.Caption+''''+
    ' and patronymic='+''''+Label3.Caption+'''';
    ADODataSet3.Active:=true;
    code_pok:=ADODataSet3.FieldValues['code_pok'];

    ADOQuery1.SQL.Text:='insert into pokupka values ('+
      IntToStr(n+1)+','+''''+Edit6.Text+''''+','+
      IntToStr(code_pok)+','+Edit2.Text+','+Edit4.Text+','+Edit3.Text+')';
    ADOQuery1.ExecSQL;
    Form2.Close;
    //Showmessage((ADOQuery1.SQL.Text));

end;

end.
 

Просмотров: 281 | Добавил: denjes | Рейтинг: 0.0/0
Всего комментариев: 0
avatar