⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 spzl_unit.~pas

📁 用DELPHI实现的销售管理系统
💻 ~PAS
字号:
unit spzl_unit;

interface

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

type
  Tspzl_form = class(TForm)
    GroupBox1: TGroupBox;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Label11: TLabel;
    Label13: TLabel;
    Label16: TLabel;
    Label17: TLabel;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    Edit5: TEdit;
    Edit6: TEdit;
    Edit7: TEdit;
    Edit8: TEdit;
    Edit9: TEdit;
    Edit10: TEdit;
    Edit11: TEdit;
    Edit12: TEdit;
    SpeedButton1: TSpeedButton;
    SpeedButton2: TSpeedButton;
    GroupBox6: TGroupBox;
    SpeedButton15: TSpeedButton;
    SpeedButton16: TSpeedButton;
    SpeedButton17: TSpeedButton;
    SpeedButton18: TSpeedButton;
    SpeedButton3: TSpeedButton;
    SpeedButton4: TSpeedButton;
    SpeedButton5: TSpeedButton;
    SpeedButton6: TSpeedButton;
    StatusBar1: TStatusBar;
    PopupMenu1: TPopupMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    U1: TMenuItem;
    F1: TMenuItem;
    R1: TMenuItem;
    Edit13: TEdit;
    LV: TListView;
    QryTemp: TADOQuery;
    procedure SpeedButton18Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure SpeedButton15Click(Sender: TObject);
    procedure SpeedButton16Click(Sender: TObject);
    procedure SpeedButton17Click(Sender: TObject);
    procedure SpeedButton3Click(Sender: TObject);
    procedure SpeedButton4Click(Sender: TObject);
    procedure SpeedButton6Click(Sender: TObject);
    procedure N1Click(Sender: TObject);
    procedure U1Click(Sender: TObject);
    procedure N2Click(Sender: TObject);
    procedure F1Click(Sender: TObject);
    procedure R1Click(Sender: TObject);
    procedure SpeedButton5Click(Sender: TObject);
    procedure Edit1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure Edit2KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure Edit3KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure Edit4KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure Edit5KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure Edit6KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure Edit7KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure Edit8KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure Edit9KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure Edit10KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure Edit11KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure Edit12KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure Edit11KeyPress(Sender: TObject; var Key: Char);
    procedure Edit12KeyPress(Sender: TObject; var Key: Char);
    procedure SpeedButton1Click(Sender: TObject);
    procedure SpeedButton2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  spzl_form: Tspzl_form;

implementation

uses data_unit, spzl_find_unit, spfl_unit, spzl_spfl_find_unit,
  spzl_dw_find_unit, main_unit;

{$R *.dfm}

procedure Tspzl_form.SpeedButton18Click(Sender: TObject);
begin
  close;
end;

procedure Tspzl_form.FormCreate(Sender: TObject);
begin
  self.Top := 74;
  self.Left := 11;
  self.Height := 491;
  self.Width := 767;
  with database do
  begin
    adoq1.Connection := adoc;
    adoq1.SQL.Clear;
    adoq1.SQL.Add('select 商品编码,商品名称,拼音简码,简称,类别,规格,型号,单位,产地,备注,库存上限,库存下限 from spzl ');
    adoq1.active := true;
    statusbar1.Panels[1].Text := inttostr(adoq1.Recordset.RecordCount);
    FrmMain.AddData(Lv, AdoQ1);
  end;

end;

procedure Tspzl_form.SpeedButton15Click(Sender: TObject);
var
  SqlStr: string;
  ValueArray: array of string;
  ArrayCount: Integer;
begin
  try
    if trim(Edit1.Text) = '' then
    begin
      showmessage('商品编码为空,请填写');
      Edit1.SetFocus;
      Exit;
    end;

    if trim(Edit2.Text) = '' then
    begin
      showmessage('商品名称为空,请填写');
      Edit2.SetFocus;
      Exit;
    end;

    if FrmMain.CheckExistCount('商品编码', Edit1.Text, 'spzl') >= 1 then
    begin
      ShowMessage('对不起,商品代码重复,请检查重新录入!');
      Edit1.SetFocus;
      Exit;
    end;

    SqlStr :=
      'insert into spzl(商品编码,商品名称,拼音简码,简称,类别,规格,型号,单位,产地,备注,库存上限,库存下限) values(';
    //通过函数InsStr把sql语句连接起来。组成一个完成的sql语句,通过ExceSql来完成添加操作。当增加操作失误时,返回事务处理。
    FRMMAIN.InsStr(SqlStr, Edit1.text, ',');
    FRMMAIN.InsStr(SqlStr, edit2.text, ',');
    FRMMAIN.InsStr(SqlStr, edit3.text, ',');
    FRMMAIN.InsStr(SqlStr, edit4.text, ',');
    FRMMAIN.InsStr(SqlStr, edit5.text, ',');
    FRMMAIN.InsStr(SqlStr, edit6.text, ',');
    FRMMAIN.InsStr(SqlStr, edit7.text, ',');
    FRMMAIN.InsStr(SqlStr, edit8.text, ',');
    FRMMAIN.InsStr(SqlStr, edit9.text, ',');
    FRMMAIN.InsStr(SqlStr, edit10.text, ',');
    FRMMAIN.InsStr(SqlStr, edit11.text, ',');
    FRMMAIN.InsStr(SqlStr, edit12.text, ',');

    //通过ExecSQL来完成修改和增加操作。若是错误,提醒用户,并且返回事务处理
    if FRMMAIN.ExecSQL(SqlStr) then
    else
    begin
      ShowMessage('对不起,商品档案插入记录失败,请检查!');
      exit;
    end;
    SetLength(ValueArray,12);
    ValueArray[0] := edit1.text;
    ValueArray[1] := edit2.text;
    ValueArray[2] := edit3.text;
    ValueArray[3] := edit4.text;
    ValueArray[4] := edit5.text;
    ValueArray[5] := edit6.text;
    ValueArray[6] := edit7.text;
    ValueArray[7] := edit8.text;
    ValueArray[8] := edit9.text;
    ValueArray[9] := edit10.text;
    ValueArray[10] := edit11.text;
    ValueArray[11] := edit12.text;
    ArrayCount := 11;
    FrmMain.AddListView(ValueArray, ArrayCount, lv);
    edit1.Clear;
    edit2.Clear;
    edit3.Clear;
    edit4.clear;
    edit5.Clear;
    edit6.clear;
    edit7.Clear;
    edit8.Clear;
    Edit9.clear;
    Edit10.clear;
    Edit11.clear;
    edit12.Clear;
    edit1.SetFocus;

  except
    showmessage('数据操作错误,请检查');
    Exit;
  end;

end;

procedure Tspzl_form.SpeedButton16Click(Sender: TObject);
var
  VarCode: string;
begin
  if lv.SelCount = 0 then
  begin
    ShowMessage('请选中一条记录进行编辑');
    exit;
  end;

  VarCode := lv.Selected.Caption;
  QryTemp.Close;
  QryTemp.SQL.Text := 'select * from khzl where 商品编码=''' + VarCode + '''';
  QryTemp.Open;

  if QryTemp.Recordset.RecordCount < 0 then
    exit;
  edit1.Text := QryTemp.Fields.Fields[0].AsString;
  edit2.Text := QryTemp.Fields.Fields[1].AsString;
  edit3.Text := QryTemp.Fields.Fields[2].AsString;
  edit4.Text := QryTemp.Fields.Fields[3].AsString;
  edit5.Text := QryTemp.Fields.Fields[4].AsString;
  edit6.Text := QryTemp.Fields.Fields[5].AsString;
  edit7.Text := QryTemp.Fields.Fields[6].AsString;
  edit8.Text := QryTemp.Fields.Fields[7].AsString;
  edit9.Text := QryTemp.Fields.Fields[8].AsString;
  edit10.Text := QryTemp.Fields.Fields[9].AsString;
  edit11.Text := QryTemp.Fields.Fields[10].AsString;
  edit12.Text := QryTemp.Fields.Fields[11].AsString;
  edit1.ReadOnly := true;
  edit2.SetFocus;

end;

procedure Tspzl_form.SpeedButton17Click(Sender: TObject);
begin
  if lv.Items.Count = 0 then
  begin
    ShowMessage('记录集为空,不能够删除');
    exit;
  end;

  if LV.SelCount = 0 then
  begin
    ShowMessage('请选中一条要删除的记录');
    exit;
  end;

  if MessageDlg('是否删除所选中的记录,请确定', mtConfirmation, [mbYes, mbNo], 0)
    = mrYes then
  begin
    if FrmMain.ExecSQL('delete from spzl where 商品编码=''' + lv.Selected.Caption
      + '''') then
    else
    begin
      ShowMessage('删除记录时操作失误,记录未删除,请检查');
      exit;
    end;
  end;
  LV.Selected.Delete;

end;

procedure Tspzl_form.SpeedButton3Click(Sender: TObject);
var
  SqlStr: string;
  ValueArray: array of string;
  ArrayCount: Integer;
begin
  try
    if trim(Edit2.Text) = '' then
    begin
      showmessage('商品名称为空,请填写');
      Edit2.SetFocus;
      Exit;
    end;

    SqlStr := '';

    FrmMain.UpStr(sqlstr, 'spzl');
    FrmMain.UpStr(sqlstr, '商品名称', edit2.text, ',');
    FrmMain.UpStr(sqlstr, '拼音简码', edit3.Text, ',');
    FrmMain.UpStr(sqlstr, '简称', edit4.text, ',');
    FrmMain.UpStr(sqlstr, '类别', edit5.text, ',');
    FrmMain.UpStr(sqlstr, '规格', edit6.text, ',');
    FrmMain.UpStr(sqlstr, '型号', edit7.text, ',');
    FrmMain.UpStr(sqlstr, '单位', edit8.text, ',');
    FrmMain.UpStr(sqlstr, '产地', edit9.text, ',');
    FrmMain.UpStr(sqlstr, '备注', edit10.text, ',');
    FrmMain.UpStr(sqlstr, '库存上限', edit11.text, ',');
    FrmMain.UpStr(sqlstr, '库存下限', edit12.text, ',');
    FrmMain.UpStr(sqlstr, '商品编码', lv.Selected.Caption, ',');

    if FrmMain.execsql(sqlstr) then
    else
    begin
      ShowMessage('操作失误,请检查');
      exit;
    end;
    SetLength(ValueArray,12);
    ValueArray[0] := edit1.text;
    ValueArray[1] := edit2.text;
    ValueArray[2] := edit3.text;
    ValueArray[3] := edit4.text;
    ValueArray[4] := edit5.text;
    ValueArray[5] := edit6.text;
    ValueArray[6] := edit7.text;
    ValueArray[7] := edit8.text;
    ValueArray[8] := edit9.text;
    ValueArray[9] := edit10.text;
    ValueArray[10] := edit11.text;
    ValueArray[11] := edit12.text;
    ArrayCount := 11;
    FrmMain.RefeshOne(ValueArray, ArrayCount, lv);
  except
    showmessage('修改信息操作失误,请检查!');
    Exit;
  end;

end;

procedure Tspzl_form.SpeedButton4Click(Sender: TObject);
begin
  speedbutton15.Enabled := true;
  speedbutton17.Enabled := true;
  edit1.ReadOnly := false;
  edit1.Clear;
  edit2.Clear;
  edit3.Clear;
  edit4.clear;
  edit5.Clear;
  edit6.Text;
  edit7.Clear;
  edit8.Clear;
  edit9.Clear;
  edit10.clear;
  edit11.Text := '0';
  edit12.Text := '0';
  edit1.SetFocus;

end;

procedure Tspzl_form.SpeedButton6Click(Sender: TObject);
begin
  speedbutton15.Enabled := true;
  speedbutton17.Enabled := true;
  edit1.ReadOnly := false;
  edit1.SetFocus;
  with database do
  begin
    adoq1.Connection := adoc;
    adoq1.SQL.Clear;
    adoq1.SQL.Add('select 商品编码,商品名称,拼音简码,简称,类别,规格,型号,单位,产地,备注,库存上限,库存下限 from spzl ');
    adoq1.active := true;
    statusbar1.Panels[1].Text := inttostr(adoq1.Recordset.RecordCount);
    FrmMain.AddData(Lv, AdoQ1);
  end;

end;

procedure Tspzl_form.N1Click(Sender: TObject);
begin
  speedbutton15click(nil);

end;

procedure Tspzl_form.U1Click(Sender: TObject);
begin
  speedbutton16click(nil);

end;

procedure Tspzl_form.N2Click(Sender: TObject);
begin
  speedbutton17click(nil);

end;

procedure Tspzl_form.F1Click(Sender: TObject);
begin
  speedbutton5click(nil);
end;

procedure Tspzl_form.R1Click(Sender: TObject);
begin
  speedbutton6click(nil);
end;

procedure Tspzl_form.SpeedButton5Click(Sender: TObject);
begin
  edit1.Clear;
  edit2.Clear;
  edit3.Clear;
  edit4.clear;
  edit5.Clear;
  edit6.Text;
  edit7.Clear;
  edit8.Clear;
  edit9.Clear;
  edit10.clear;
  edit11.Text := '0';
  edit12.Text := '0';
  edit1.SetFocus;
  speedbutton15.Enabled := true;
  speedbutton17.Enabled := true;
  edit1.ReadOnly := false;
  edit1.SetFocus;
  spzl_find_form := Tspzl_find_form.create(application);
  spzl_find_form.show;

end;

procedure Tspzl_form.Edit1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if key = vk_return then
    edit2.SetFocus;
end;

procedure Tspzl_form.Edit2KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if key = vk_return then
    edit3.SetFocus;

end;

procedure Tspzl_form.Edit3KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if key = vk_return then
    edit4.SetFocus;

end;

procedure Tspzl_form.Edit4KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if key = vk_return then
    edit5.SetFocus;

end;

procedure Tspzl_form.Edit5KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if key = vk_return then
    speedbutton1click(nil);
end;

procedure Tspzl_form.Edit6KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if key = vk_return then
    edit7.SetFocus;

end;

procedure Tspzl_form.Edit7KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if key = vk_return then
    edit8.SetFocus;

end;

procedure Tspzl_form.Edit8KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if key = vk_return then
    speedbutton2click(nil);
end;

procedure Tspzl_form.Edit9KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if key = vk_return then
    edit10.SetFocus;

end;

procedure Tspzl_form.Edit10KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if key = vk_return then
    edit11.SetFocus;

end;

procedure Tspzl_form.Edit11KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if key = vk_return then
    edit12.SetFocus;

end;

procedure Tspzl_form.Edit12KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if key = vk_return then
    speedbutton15click(nil);
end;

procedure Tspzl_form.Edit11KeyPress(Sender: TObject; var Key: Char);
begin
  if not (key in ['0'..'9', '.', #8, #13]) then
  begin
    showmessage('请正确输入数值');
    key := #0;
    edit11.SetFocus;
  end;

end;

procedure Tspzl_form.Edit12KeyPress(Sender: TObject; var Key: Char);
begin
  if not (key in ['0'..'9', '.', #8, #13]) then
  begin
    showmessage('请正确输入数值');
    key := #0;
    edit12.SetFocus;
  end;

end;

procedure Tspzl_form.SpeedButton1Click(Sender: TObject);
begin
  spzl_spfl_find_form := Tspzl_spfl_find_form.create(application);
  spzl_spfl_find_form.show;
end;

procedure Tspzl_form.SpeedButton2Click(Sender: TObject);
begin
  spzl_dw_find_form := Tspzl_dw_find_form.Create(application);
  spzl_dw_find_form.Show;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -