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

📄 uspjbxx.~pas

📁 delphi 开发的完整的仓库管理系统(带数据库)
💻 ~PAS
字号:
unit USPJBXX;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons, ExtCtrls;

type
  TSPJBXX = class(TForm)
    GroupBox1: TGroupBox;
    Label1: TLabel;
    Label3: TLabel;
    Label5: TLabel;
    Label7: TLabel;
    Label9: TLabel;
    Label11: TLabel;
    Label2: TLabel;
    Label4: TLabel;
    Label6: TLabel;
    Label8: TLabel;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    Edit5: TEdit;
    Edit6: TEdit;
    Edit7: TEdit;
    Edit8: TEdit;
    Edit9: TEdit;
    Memo1: TMemo;
    GroupBox2: TGroupBox;
    SpeedButton1: TSpeedButton;
    SpeedButton2: TSpeedButton;
    SpeedButton3: TSpeedButton;
    SpeedButton4: TSpeedButton;
    SpeedButton5: TSpeedButton;
    Edit10: TEdit;
    Label12: TLabel;
    Label13: TLabel;
    Label10: TLabel;
    ComboBox1: TComboBox;
    Bevel1: TBevel;
    Edit11: TEdit;
    procedure SpeedButton5Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure SpeedButton1Click(Sender: TObject);
    procedure SpeedButton2Click(Sender: TObject);
    procedure SpeedButton3Click(Sender: TObject);
    procedure SpeedButton4Click(Sender: TObject);
    procedure Edit2KeyPress(Sender: TObject; var Key: Char);
    procedure Edit3KeyPress(Sender: TObject; var Key: Char);
    procedure Edit4KeyPress(Sender: TObject; var Key: Char);
    procedure Edit5KeyPress(Sender: TObject; var Key: Char);
    procedure Edit6KeyPress(Sender: TObject; var Key: Char);
    procedure Edit7KeyPress(Sender: TObject; var Key: Char);
    procedure Edit8KeyPress(Sender: TObject; var Key: Char);
    procedure Edit9KeyPress(Sender: TObject; var Key: Char);
    procedure ComboBox1DropDown(Sender: TObject);
    procedure ComboBox1KeyPress(Sender: TObject; var Key: Char);
    procedure Edit2Change(Sender: TObject);
    procedure Edit3Change(Sender: TObject);
    procedure Edit4Change(Sender: TObject);
    procedure Edit5Change(Sender: TObject);
    procedure Edit6Change(Sender: TObject);
    procedure Edit7Change(Sender: TObject);
    procedure Edit8Change(Sender: TObject);
    procedure Edit9Change(Sender: TObject);
    procedure Memo1Change(Sender: TObject);
    procedure ComboBox1Change(Sender: TObject);
    procedure Edit10KeyPress(Sender: TObject; var Key: Char);
    procedure Edit11KeyPress(Sender: TObject; var Key: Char);
  private
    { Private declarations }
  public
    procedure GetAll;          //获取数据
    procedure posting;        //提交数据
    Function CanSave: Boolean; //判断是否保存
    procedure bh;             //自动编号
    Procedure tr;             //去除空字符
     { Public declarations }
  end;

var
  SPJBXX: TSPJBXX;

implementation

uses UDM, UMAIN, UGYSXX;

{$R *.dfm}
procedure TSPJBXX.tr;
var
i:integer;
begin
  for i:=ComponentCount - 1 downto 0 do
    if(Components[i] is TEdit) then
    TEdit(Components[i]).Text:=trim(TEdit(Components[i]).Text);
end;
procedure TSPJBXX.GetAll;//获得所有数据
begin
    Edit1.Text:=DM.DSOSPXX.FieldByName('商品编号').AsString;
    Edit2.Text:=DM.DSOSPXX.FieldByName('商品名称').AsString;
    Edit3.Text:=DM.DSOSPXX.FieldByName('规格').AsString;
    Edit4.Text:=DM.DSOSPXX.FieldByName('保质期').AsString;
    Edit5.Text:=DM.DSOSPXX.fieldByName('产地').AsString;
    Edit6.Text:=DM.DSOSPXX.FieldByName('单位').AsString;
    Edit7.Text:=DM.DSOSPXX.FieldByName('商品单价').AsString;
    Edit8.Text:=DM.DSOSPXX.FieldByName('批发价').AsString;
    Edit9.Text:=DM.DSOSPXX.FieldByName('零售价').AsString;
    Edit10.Text:=DM.DSOSPXX.FieldByName('商品简称').AsString;
    Edit11.Text:=DM.DSOSPXX.FieldByName('供应商名称').AsString;
    ComboBox1.Text:=DM.DSOSPXX.FieldByName('供应商编号').AsString;
    Memo1.Text:=DM.DSOSPXX.FieldByName('备注').AsString;
end;
procedure TSPJBXX.Posting;          //提交数据
begin
  if ActionCD='N' then
  BEGIN
  with DM.QSPXX do
  begin
    Close;
    SQL.Clear;
    SQL.Add('INSERT INTO 商品基本信息(商品名称,商品简称,规格,保质期,产地,单位,商品单价,批发价,零售价,供应商编号,供应商名称,备注,商品编号)');
    SQL.Add('Values(:商品名称,:商品简称,:规格,:保持期,:产地,:单位,:商品单价,:批发价,:零售价,:供应商编号,:供应商名称,:备注,:商品编号)');
    Parameters.Items[0].Value:=Edit2.Text;
    Parameters.Items[1].Value:=Edit10.Text;
    Parameters.Items[2].Value:=Edit3.Text;
    Parameters.Items[3].Value:=Edit4.Text;
    Parameters.Items[4].Value:=Edit5.Text;
    Parameters.Items[5].Value:=Edit6.Text;
    Parameters.Items[6].Value:=Edit7.Text;
    Parameters.Items[7].Value:=StrToCurr(Edit8.Text);
    Parameters.Items[8].Value:=StrToCurr(Edit9.Text);
    Parameters.Items[9].Value:=ComboBox1.Text;
    Parameters.Items[10].Value:=Edit11.Text;
    Parameters.Items[11].Value:=Memo1.Text;
    Parameters.Items[12].Value:=Edit1.Text;
    Prepared:=True;
    ExecSQL;
  end;
  END else
  if ActionCD='M' then
  begin
    With DM.QSPXX DO
    begin
      Close;
      SQL.Clear;
      SQL.Add('update 商品基本信息 Set 商品名称=:商品名称1,商品简称=:商品简称1,');
      SQL.Add('规格=:规格1,保质期=:保质期1,产地=:产地1,单位=:单位1,');
      SQL.Add('商品单价=:商品单价1,批发价=:批发价1,零售价=:零售价1,供应商编号=:供应商编号1,供应商名称=:供应商名称1,备注=:备注1 Where 商品编号=:商品编号1');
      Parameters.Items[0].Value:=Edit2.Text;
      Parameters.Items[1].Value:=Edit10.Text;
      Parameters.Items[2].Value:=Edit3.Text;
      Parameters.Items[3].Value:=Edit4.Text;
      Parameters.Items[4].Value:=Edit5.Text;
      Parameters.Items[5].Value:=Edit6.Text;
      Parameters.Items[6].Value:=Edit7.Text;
      Parameters.Items[7].Value:=StrToCurr(Edit8.Text);
      Parameters.Items[8].Value:=StrToCurr(Edit9.Text);
      Parameters.Items[9].Value:=ComboBox1.Text;
      Parameters.Items[10].Value:=Edit11.Text;
      Parameters.Items[11].Value:=Memo1.Text;
      Parameters.Items[12].Value:=DM.DSOSPXX.FieldByName('商品编号').AsString;
      Prepared:=true;
      ExecSQL;
    end;
  end;
end;

function TSPJBXX.CanSave: Boolean;//判断是否保存
begin
  if Edit1.Text='' then
  begin
    Result:=False;
    Application.MessageBox('商品编号不能为空!','提示信息',0+MB_ICONINFORMATION);
    exit;
  end;
  if Edit2.Text='' then
  begin
    Result:=False;
    Application.MessageBox('商品名称不能为空!','提示信息',0+MB_ICONINFORMATION);
    exit;
  end;
  if Edit10.Text='' then
  begin
    Result:=False;
    Application.MessageBox('商品简称不能为空!','提示信息',0+MB_ICONINFORMATION);
    exit;
  end;
  if Edit3.Text='' then
  begin
    Result:=False;
    Application.MessageBox('商品规格不能为空!','提示信息',0+MB_ICONINFORMATION);
    exit;
  end;
  if Edit4.Text='' then
  begin
    Result:=False;
    Application.MessageBox('保质期不能为空!','提示信息',0+MB_ICONINFORMATION);
    exit;
  end;
  if Edit5.Text='' then
  begin
    Result:=False;
    Application.MessageBox('商品产地不能为空!','提示信息',0+MB_ICONINFORMATION);
    exit;
  end;
  if Edit6.Text='' then
  begin
    Result:=False;
    Application.MessageBox('商品单位不能为空!','提示信息',0+MB_ICONINFORMATION);
    exit;
  end;
  if Edit7.Text='' then
  begin
    Result:=False;
    Application.MessageBox('商品进价不能为空!','提示信息',0+MB_ICONINFORMATION);
    exit;
  end;
  if Edit8.Text='' then
  begin
    Result:=False;
    Application.MessageBox('商品批发价不能为空!','提示信息',0+MB_ICONINFORMATION);
    exit;
  end;
  if Edit9.Text='' then
  begin
    Result:=False;
    Application.MessageBox('商品零售价不能为空!','提示信息',0+MB_ICONINFORMATION);
    exit;
  end;
  if ComboBox1.Text='' then
  begin
    Result:=False;
    Application.MessageBox('供应商编号不能为空!','提示信息',0+MB_ICONINFORMATION);
    exit;
  end;
  if Edit11.Text='' then
  begin
    Result:=False;
    Application.MessageBox('供应商名称不能为空!','提示信息',0+MB_ICONINFORMATION);
    exit;
  end;
  if strtofloat(Edit7.Text)>strtofloat(Edit8.Text) then
  begin
    Result:=False;
    Application.MessageBox('进价不能大于批发价!','提示信息',0+MB_ICONINFORMATION);
    exit;
  end;
  if strtofloat(Edit8.Text)>strtofloat(Edit9.Text) then
  begin
    Result:=False;
    Application.MessageBox('批发价不能大于零售价!','提示信息',0+MB_ICONINFORMATION);
    exit;
  end;
  if strtofloat(Edit7.Text)>strtofloat(Edit9.Text) then
  begin
    Result:=False;
    Application.MessageBox('进价不能大于零售价!','提示信息',0+MB_ICONINFORMATION);
    exit;
  end;
  
end;
procedure TSPJBXX.BH;      //自动编号
var
  s,m:string;
  i:integer;
begin
  s:= 'SP'+ FormatDateTime('yyyymmdd',Now());
  With DM.QSPXX do
  begin
    Close;
    SQL.Clear;
    SQL.Add('select max(商品编号) as ss From 商品基本信息 ');
    Open;
  end;
  If DM.DSOSPXX.FieldByName('商品编号').Value = null then
    s := s + '001'
  else
  begin
    DM.DSOSPXX.Last;
    m:= Trim(DM.DSOSPXX.FieldByName('商品编号').Value) ;
    i:= StrToInt(Trim(Copy(m,11,8))) ;
    if i<9 then
      s:= s + '00'+ InttoStr(i +1)
    else if i<99 then
      s:= s + '0'+ InttoStr(i +1)
    else
      s:= s +InttoStr(i +1);
  end;
  Edit1.Text := s;
end;
procedure TSPJBXX.SpeedButton5Click(Sender: TObject);
begin
  ActionCD:='';
  Close;
end;

procedure TSPJBXX.FormCreate(Sender: TObject);
begin                  //创建窗体时打开数据库表
  with DM.QSPXX do
  begin
    Close;
    SQL.Clear;
    SQL.Add('select * from 商品基本信息');
    Open;
  end;
  DM.DSOSPXX.Open;
end;

procedure TSPJBXX.FormShow(Sender: TObject);
begin
  GroupBox1.Enabled:=False;
  if ActionCD = 'M' then
    GetAll
  else if ActionCD = 'N' then
  begin
    GroupBox1.Enabled:=False;
  end;
end;

procedure TSPJBXX.SpeedButton1Click(Sender: TObject);
begin                           //在添加时, 窗体控件初始化
  GroupBox1.Enabled:=True;
  SpeedButton2.Enabled:=False;
  SpeedButton3.Enabled:=True;
  SpeedButton4.Enabled:=True;
  Edit1.Clear;
  Edit2.Clear;
  Edit3.Clear;
  Edit4.Clear;
  Edit5.Clear;
  Edit6.Clear;
  Edit7.Clear;
  Edit8.Clear;
  Edit9.Clear;
  Edit10.Clear;
  Edit11.Clear;
  ComboBox1.Clear;
  Memo1.Clear;
  ActionCD:= 'N';
  bh;
  Edit2.SetFocus;
  SpeedButton1.Enabled:=False;
end;

procedure TSPJBXX.SpeedButton2Click(Sender: TObject);
begin
  GroupBox1.Enabled:=True;
  SpeedButton1.Enabled:=False;
  SpeedButton3.Enabled:=True;
  SpeedButton4.Enabled:=True;
  ACtionCD := 'M';
end;

procedure TSPJBXX.SpeedButton3Click(Sender: TObject);
begin
  if (cansave) then
  begin
    Posting; //  提交存盘
    GroupBox1.Enabled:=False;
    DM.DSOSPXX.Close;
    DM.DSOSPXX.Open;
    with DM.QSPXX do
    begin
      Close;
      SQL.Clear;
      SQL.Add('Select * from 商品基本信息');
      Open;
    end;
    Application.MessageBox('保存成功!','提示!',64);
    actioncd:='';
    SPJBXX.Close;
  end;
end;

procedure TSPJBXX.SpeedButton4Click(Sender: TObject);
begin
  SpeedButton1.Enabled:=True;
  SpeedButton2.Enabled:=True;
  SpeedButton3.Enabled:=False;
  SpeedButton4.Enabled:=False;
  GroupBox1.Enabled:=False;
  ActionCD:='';
  GetAll;
end;

procedure TSPJBXX.Edit2KeyPress(Sender: TObject; var Key: Char);
begin
  if key=#13 then
    Edit10.SetFocus;
end;

procedure TSPJBXX.Edit3KeyPress(Sender: TObject; var Key: Char);
begin
  if key=#13 then
    Edit5.SetFocus;
end;

procedure TSPJBXX.Edit4KeyPress(Sender: TObject; var Key: Char);
begin
  if key=#13 then
    Edit3.SetFocus;
end;

procedure TSPJBXX.Edit5KeyPress(Sender: TObject; var Key: Char);
begin
  if key=#13 then
    Edit6.SetFocus;
end;

procedure TSPJBXX.Edit6KeyPress(Sender: TObject; var Key: Char);
begin
  if key=#13 then
    Edit7.SetFocus;
end;

procedure TSPJBXX.Edit7KeyPress(Sender: TObject; var Key: Char);
begin
  if not (key in['0'..'9','.',#13,#8]) then
    key:=#0;
  if key=#13 then
    Edit8.SetFocus;
end;

procedure TSPJBXX.Edit8KeyPress(Sender: TObject; var Key: Char);
begin
  if not (key in['0'..'9','.',#13,#8]) then
    key:=#0;
  if key=#13 then
    Edit9.SetFocus;
end;

procedure TSPJBXX.Edit9KeyPress(Sender: TObject; var Key: Char);
begin
  if not (key in['0'..'9','.',#13,#8]) then
    key:=#0;
  if key=#13 then
    ComboBox1.SetFocus;
end;

procedure TSPJBXX.ComboBox1DropDown(Sender: TObject);
var
 i:integer;
begin              //将供应商编号显示在ComboBox1中
  ComboBox1.Clear;
  with DM.QGYSXX do
  begin
    SQL.clear;
    SQl.Text := 'select 供应商编号 from 供应商基本信息';
    Close;
    Active := False;
    prepared := False;
    prepared := True;
    Active := True;
    if (recordcount > 0) then
      first;
    for i := 0 to recordcount - 1 do
    begin
      combobox1.Items.add(FieldByName('供应商编号').asstring);
      next;
    end;
  end;
end;

procedure TSPJBXX.ComboBox1KeyPress(Sender: TObject; var Key: Char);
begin
  if not (key in[#13,#46]) then
    key:=#0;
  if key=#13 then
    Edit11.SetFocus;
end;

procedure TSPJBXX.Edit2Change(Sender: TObject);
begin
tr
end;

procedure TSPJBXX.Edit3Change(Sender: TObject);
begin
tr
end;

procedure TSPJBXX.Edit4Change(Sender: TObject);
begin
tr
end;

procedure TSPJBXX.Edit5Change(Sender: TObject);
begin
tr
end;

procedure TSPJBXX.Edit6Change(Sender: TObject);
begin
tr
end;

procedure TSPJBXX.Edit7Change(Sender: TObject);
begin
tr
end;

procedure TSPJBXX.Edit8Change(Sender: TObject);
begin
tr
end;

procedure TSPJBXX.Edit9Change(Sender: TObject);
begin
tr
end;

procedure TSPJBXX.Memo1Change(Sender: TObject);
begin
  Memo1.Text:=Trim(Memo1.Text);
end;

procedure TSPJBXX.ComboBox1Change(Sender: TObject);
begin
  Edit11.Clear;      //通过供应商编号,将供应商名称显示在Edit1组件中
  with DM.QGYSXX do
  begin
    Close;
    SQL.Clear;
    SQL.Add('Select 供应商名称 from 供应商基本信息 where 供应商编号='+''''+ComboBox1.Text+'''');
    Open;
  end;
  Edit11.Text:=DM.QGYSXX.FieldByName('供应商名称').Value;
  Edit11.SetFocus;
end;

procedure TSPJBXX.Edit10KeyPress(Sender: TObject; var Key: Char);
begin
  if key=#13 then
    Edit4.SetFocus;
end;

procedure TSPJBXX.Edit11KeyPress(Sender: TObject; var Key: Char);
begin
  if not (key in[#13]) then
    key:=#0;
  if key=#13 then
    Memo1.SetFocus;
end;

end.

⌨️ 快捷键说明

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