Разработка программного изделия по автоматизации прихода материалов «Склад 313», страница 4

            «Поставщики»

Код поставщика

Наименование поставщика

Адрес поставщика

Телефон

            «Склад»

Код склада

Наименование склада

Адрес склада

Телефон

Программный модуль с процедурами и функциями для формы «Материалы»

unit Unit5;

interface

uses

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

  StdCtrls, ComCtrls, ToolWin;

type

  TFMaterial = class(TForm)

    ListView1: TListView;

    ToolBar1: TToolBar;

    add: TToolButton;

    ToolButton2: TToolButton;

    ToolButton3: TToolButton;

    ToolButton4: TToolButton;

    Button1: TButton;

    Button2: TButton;

    search: TLabel;

    Restore: TToolButton;

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

    procedure FormShow(Sender: TObject);

    procedure ListView1DblClick(Sender: TObject);

    procedure addClick(Sender: TObject);

    procedure ToolButton2Click(Sender: TObject);

    procedure ToolButton3Click(Sender: TObject);

    procedure ToolButton4Click(Sender: TObject);

    procedure RestoreClick(Sender: TObject);

    procedure Button1Click(Sender: TObject);

    procedure Button2Click(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

var

  FMaterial: TFMaterial;

implementation

uses Unit8, Unit4, Unit6, Unit2, Unit1;

{$R *.DFM}

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

begin

FMaterial.FormStyle:=fsNormal;

FMaterial.Visible:=false;

Dob_Mat.Visible:=false;

main.N2.Checked:=false;

main.N6.Checked:=false;

  listview1.MultiSelect:=true;

  fprihod.Enabled:=true;

  fSklad.Enabled:=true;

  Fpostav.Enabled:=true;

end;

procedure TFMaterial.FormShow(Sender: TObject);

var

TheItem:TListItem;

begin

ListView1.Items.Clear;

main.query1.sql.clear;

if fmaterial.Caption='Óäàëåííûå ìàòåðèàëû' then

 main.Query1.sql.Add('select dbo.Material.NN, dbo.Material.naim, dbo.Material.cena from dbo.Material where del=1 '+search.Caption)

 else main.Query1.sql.Add('select dbo.Material.NN, dbo.Material.naim, dbo.Material.cena from dbo.Material where del=0 '+search.Caption);

main.Query1.open;

   while not main.query1.Eof do

   begin

           TheItem:=ListView1.Items.Add;

           TheItem.Caption:=main.query1.Fields[0].AsString;

           TheItem.SubItems.Add(main.query1.Fields[1].AsString);

           TheItem.SubItems.Add(main.query1.Fields[2].AsString);

           main.Query1.Next;

   end;

main.query1.close;

end;

procedure TFMaterial.ListView1DblClick(Sender: TObject);

begin

if listView1.Selected<>nil then

 begin

  dob_Mat.NN.text:=listView1.selected.Caption;

  dob_Mat.naim.Text:=listView1.selected.SubItems.Strings[0];

  dob_Mat.cena.text:=listView1.selected.SubItems.Strings[1];

  Dob_Mat.visible:=true;

  Dob_Mat.Caption:='Ðåäàêòèðîâàíèå';

  dob_Mat.NN.enabled:=false;

 end;

end;

procedure TFMaterial.addClick(Sender: TObject);

begin

with dob_mat do

begin

   NN.Enabled:=true;

   NN.text:='';

   naim.text:='';

   Cena.text:='';

   visible:=true;

   Caption:='Äîáàâëåíèå íîâîãî ìàòåðèàëà';

end;

end;

procedure TFMaterial.ToolButton2Click(Sender: TObject);

var

I:integer;

Msg:string;

to_del: array[0..100] of integer;

begin

if listView1.Selected<>nil then

begin

dob_mat.nn.Enabled:=true;

msg:='Áóäóò óäàëåíû ìàòåðèàëû ñ íîìåðàìè: ';

to_del[100]:=0;  //â ñïèêå ê óäàëåíèþ 0 ýëåìåíòîâ

for i:=listView1.Items.Count-1 downTo 0 do

  if listView1.Items.Item[i].Selected then

     begin

     to_del[to_del[100]]:=i;

     to_del[100]:=To_del[100]+1;

     msg:=msg+listView1.Items.Item[i].Caption+', ';

     end;

if to_del[100]<>0 then

   if Application.MessageBox(pChar(msg),'Óäàëåíèå',

                              MB_OKCANCEL) = IDOK then

   for i:=0 to to_del[100]-1 do

      begin

           Main.query1.sql.clear;

           if fmaterial.Caption='Óäàëåííûå ìàòåðèàëû' then

                Main.Query1.sql.Add('delete from dbo.Material where NN='''+listView1.Items.Item[to_del[i]].Caption+''' and naim='''+listView1.Items.Item[to_del[i]].SubItems.Strings[0]+''' and cena='''+listView1.Items.Item[to_del[i]].SubItems.Strings[1]+''' and del=1')

                else Main.Query1.sql.Add('update dbo.Material set del=1 where NN='''+listView1.Items.Item[to_del[i]].Caption+'''');

           main.Query1.ExecSQL;

           listView1.Items.Item[to_del[i]].Delete;

      end

end else application.MessageBox('Âû íè ÷åãî íå âûáðàëè.', 'Îøèáêà.', MB_OK);

end;

procedure TFMaterial.ToolButton3Click(Sender: TObject);

begin

with dob_mat do

begin

   NN.Enabled:=true;

   NN.text:='';

   naim.text:='';

   cena.text:='';

   visible:=true;

   Caption:='Ïîèñê';

end;

end;

procedure TFMaterial.ToolButton4Click(Sender: TObject);

var

i:integer;

begin

for i:=listView1.Items.Count-1 downTo 0 do

  if listView1.Items.Item[i].Selected then

  begin

  dob_Mat.NN.enabled:=false;

  dob_mat.NN.text:=listView1.Items.Item[i].Caption;

  dob_mat.naim.Text:=listView1.Items.Item[i].SubItems.Strings[0];

  dob_mat.cena.text:=listView1.Items.Item[i].SubItems.Strings[1];

  Dob_mat.visible:=true;

  Dob_mat.Caption:='Ðåäàêòèðîâàíèå';

  break;

  end;

end;

procedure TFMaterial.RestoreClick(Sender: TObject);

var

I:integer;

Msg:string;

to_del: array[0..100] of integer;

begin

if listView1.Selected<>nil then

begin

dob_mat.nn.Enabled:=true;

msg:='Áóäóò âîññòàíîâëåíû ìàòåðèàëû ñ íîìåðàìè: ';