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

📄 kcgl.pas

📁 一个比较实用的配送管理系统,Delphi+SQL开发
💻 PAS
字号:
unit kcgl;

interface

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

type
  TForm1 = class(TForm)
    Panel1: TPanel;
    Panel2: TPanel;
    Label1: TLabel;
    Label2: TLabel;
    ComboBox1: TComboBox;
    Label3: TLabel;
    Label4: TLabel;
    Edit1: TEdit;
    Edit3: TEdit;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    BitBtn3: TBitBtn;
    ComboBox2: TComboBox;
    procedure Edit1KeyPress(Sender: TObject; var Key: Char);
    procedure Edit3KeyPress(Sender: TObject; var Key: Char);
    procedure BitBtn2Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure ComboBox1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure ComboBox2KeyPress(Sender: TObject; var Key: Char);
    procedure BitBtn1Click(Sender: TObject);
    procedure Edit1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure ComboBox1Change(Sender: TObject);
    procedure BitBtn1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure BitBtn1MouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure ComboBox2Change(Sender: TObject);
    procedure Edit1Change(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation
  uses Data1;
{$R *.dfm}

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
var
  m: Boolean;
begin
  m := (Key<#8)or(Key>#8)and(Key<#48)or(Key>#57);
  if m then
    Key := #0;
end;
    
procedure TForm1.Edit3KeyPress(Sender: TObject; var Key: Char);
var
  m: Boolean;
begin
  m := (Key<#8)or(Key>#8)and(Key<#46)or(Key>#46)and(Key<#48)or(Key>#57);
  if m then
    Key := #0;
end;

procedure TForm1.BitBtn2Click(Sender: TObject);
begin
  ComboBox1.ItemIndex := 0;
  ComboBox2.Clear;
  Edit1.Clear;
  Edit3.Clear;
end;

procedure TForm1.FormShow(Sender: TObject);
begin
  ComboBox1.Clear;
  with DataModule1.ADOQuery1 do
  begin
    Close;
    SQL.Clear;
    SQL.Add('select Distinct 商品名称 from 商品基础信息表');
    Open;
  end;
  if DataModule1.ADOQuery1.RecordCount>0 then
  begin
    while Not DataModule1.ADOQuery1.Eof do
    begin
      ComboBox1.Items.Add(DataModule1.ADOQuery1.FieldByName('商品名称').AsString);
      DataModule1.ADOQuery1.Next;
    end;
  end;
  ComboBox1.ItemIndex := 0;
end;

procedure TForm1.ComboBox1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if (Key = VK_ReTurn)and(Trim(ComboBox1.Text)<>'')then
  begin
    with DataModule1.ADOQuery1 do
    begin
      Close;
      SQL.Clear;
      SQL.Add('select 商品编号 from 商品基础信息表 where 商品名称 = :a');
      Parameters.ParamByName('a').Value := Trim(ComboBox1.Text);
      Open;
    end;
    if DataModule1.ADOQuery1.RecordCount>0 then
    begin
      ComboBox2.Clear;
      while Not DataModule1.ADOQuery1.Eof do
      begin
        ComboBox2.Items.Add(DataModule1.ADOQuery1.FieldByName('商品编号').AsString);
        DataModule1.ADOQuery1.Next;
      end;
      ComboBox2.ItemIndex := 0;
    end;
      FindNextControl(Self.ActiveControl,True,False,False).SetFocus;
  end;
end;

procedure TForm1.ComboBox2KeyPress(Sender: TObject; var Key: Char);
begin
  Key := #0
end;

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
  if (Trim(ComboBox1.Text)<>'')and(Trim(ComboBox2.Text)<>'')and
    (Trim(Edit1.Text)<>'')and(Trim(Edit3.Text)<>'')then
  begin
    Try
    with DataModule1.ADOQuery1 do
    begin
      Close;
      SQL.Clear;
      SQL.Add('select * from 库存表 where 商品编号 = :a');
      Parameters.ParamByName('a').Value := Trim(ComboBox2.Text);
      Open;
    end;
    if DataModule1.ADOQuery1.RecordCount>0 then
    begin
      with DataModule1.ADOQuery1 do
      begin
        Close;
        SQL.Clear;
        SQL.Add('update 库存表 set 库存数量 = 库存数量 + :a ,库存金额 = 库存金额 + :b where 商品编号 = :c');
        Parameters.ParamByName('a').Value := StrToInt(Edit1.Text);
        Parameters.ParamByName('b').Value := StrToFloat(Edit3.Text);
        Parameters.ParamByName('c').Value := Trim(ComboBox2.Text);
        ExecSQL;
      end;
    end
    else
    begin
      with DataModule1.ADOQuery1 do
      begin
        Close;
        SQL.Clear;
        SQL.Add('Insert 库存表 values (:a,:b,:c,:d,Default)');
        Parameters.ParamByName('a').Value := Trim(ComboBox2.Text);
        Parameters.ParamByName('b').Value := Trim(ComboBox1.Text);
        Parameters.ParamByName('c').Value := StrToInt(Edit1.Text);
        Parameters.ParamByName('d').Value := StrToFloat(Edit3.Text);
        ExecSQL;
      end;
    end;
    Application.MessageBox('操作成功。','提示',64);
    BitBtn2.OnClick(Sender);
    Except
      Application.MessageBox('系统出错。','提示',64);
      Close;
    end;
  end;
end;

procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if (Trim(ComboBox1.Text)<>'')and(Trim(ComboBox2.Text)<>'')and(Key = Vk_ReTurn)and(Trim(Edit1.Text)<>'')then
  begin
    with DataModule1.ADOQuery1 do
    begin
      Close;
      SQL.Clear;
      SQL.Add('select * from 商品基础信息表 where 商品编号 = :a');
      parameters.ParamByName('a').Value := Trim(ComboBox2.Text);
      Open;
    end;
    if DataModule1.ADOQuery1.RecordCount >0 then
      Edit3.Text := FloatToStr(StrToInt(Edit1.Text)* DataModule1.ADOQuery1.FieldByName('进价').AsFloat)
    else
      Edit3.Clear;
    Edit3.SetFocus;
  end;
end;

procedure TForm1.ComboBox1Change(Sender: TObject);
begin
  ComboBox2.Clear;
end;

procedure TForm1.BitBtn1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  TBitBtn(Sender).Font.Color := clRed;
end;

procedure TForm1.BitBtn1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  TBitBtn(Sender).Font.Color := clBlue;
end;

procedure TForm1.ComboBox2Change(Sender: TObject);
begin
  Edit1.Clear;
  Edit3.Clear;
end;

procedure TForm1.Edit1Change(Sender: TObject);
begin
  Edit3.Clear;
end;

end.

⌨️ 快捷键说明

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