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

📄 kcsxx.pas

📁 这是用Delphi编写的中小企业管理系统
💻 PAS
字号:
unit kcsxx;

interface

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

type
  Tf_kcsxx = class(TForm)
    Panel1: TPanel;
    Label1: TLabel;
    kcmc: TComboBox;
    Label2: TLabel;
    spmc: TComboBox;
    cx: TSpeedButton;
    DataSource1: TDataSource;
    Grid1: TDBGrid;
    Panel2: TPanel;
    Label3: TLabel;
    Label4: TLabel;
    spsx: TEdit;
    spxx: TEdit;
    bc: TBitBtn;
    BitBtn2: TBitBtn;
    procedure spsxKeyPress(Sender: TObject; var Key: Char);
    procedure FormCreate(Sender: TObject);
    procedure kcmcChange(Sender: TObject);
    procedure cxClick(Sender: TObject);
    procedure bcClick(Sender: TObject);
    procedure kcmcKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure spmcKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure spsxKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  f_kcsxx: Tf_kcsxx;

implementation
  uses DataModal;
{$R *.dfm}

procedure Tf_kcsxx.spsxKeyPress(Sender: TObject; var Key: Char);
var
  i: Boolean;
begin
  i := (Key<#8)or(Key>#8)and(Key<#48)or(Key>#57);
  if i then
    Key := #0;
end;

procedure Tf_kcsxx.FormCreate(Sender: TObject);
begin
  with Data.Query1 do
  begin
    Close;
    SQL.Clear;
    SQL.Add('select distinct kcmc from t_kc');
    Open;
  end;
  if Data.Query1.RecordCount>0 then
    while Not Data.Query1.Eof do
    begin
      kcmc.Items.Add(Trim(Data.Query1.Fields[0].AsString));
      Data.Query1.Next;
    end;
end;

procedure Tf_kcsxx.kcmcChange(Sender: TObject);
begin    
  spmc.Clear;
  if Trim(kcmc.Text)<>'' then
  begin
    with Data.Query1 do
    begin
      Close;
      SQL.Clear;
      SQL.Add('select distinct spmc from t_spjcxx a inner join t_kc b on a.spdm = b.spdm and b.kcmc = :c');
      ParamByName('c').AsString := Trim(kcmc.Text);
      Open;
    end;
    if Data.Query1.RecordCount>0 then
    begin
      while Not Data.Query1.Eof do
      begin
        spmc.Items.Add(Trim(Data.Query1.Fields[0].AsString));
        Data.Query1.Next;
      end;
    end;
  end;
end;

procedure Tf_kcsxx.cxClick(Sender: TObject);
begin         
  if (Trim(kcmc.Text)<>'')and(Trim(spmc.Text)<>'')then
  begin
    with Data.Query2 do
    begin
      Close;
      SQL.Clear;
      SQL.Add('select * from t_kc where kcmc = :a and spdm in(select distinct spdm from t_spjcxx where spmc = :b)');
      ParamByName('a').AsString := Trim(kcmc.Text);
      ParamByName('b').AsString := Trim(spmc.Text);
      Open;
    end;
    if Data.Query2.RecordCount>0 then
    begin
      DataSource1.DataSet := Data.Query2;
      bc.Enabled := True;
    end
    else
    begin
      DataSource1.DataSet := Nil;
      bc.Enabled := False;
      Application.MessageBox('没有符合条件的记录.','提示',64);
    end;
  end;
end;

procedure Tf_kcsxx.bcClick(Sender: TObject);
begin
  if Data.Query2.Active = True then
    if Data.Query2.RecordCount>0 then
    begin
      if (Trim(spsx.Text)<>'')and(Trim(spxx.Text)<>'')then
      begin
        if (StrToFloat(spsx.Text)<>0)and(StrToFloat(spxx.Text)<>0)then
          if (StrToFloat(spsx.Text)<=StrToFloat(spxx.Text)) then
            Application.MessageBox('商品下限不能大于等于商品上限.','提示',64)
          else
          begin
            Try
              with Data.Query1 do
              begin
                Close;
                SQL.Clear;
                SQL.Add('update t_kc set kcsx = :a , kcxx =:b where kcmc = :c and spdm = :d');
                ParamByName('a').AsInteger := StrToInt(spsx.Text);
                ParamByName('b').AsInteger := StrToInt(spxx.Text);
                ParamByName('c').AsString := Trim(Data.Query2.FieldByName('kcmc').AsString);
                ParamByName('d').AsString := Trim(Data.Query2.FieldByName('spdm').AsString);
                ExecSQL;
              end;
              Application.MessageBox('操作成功.','提示',64);
              Data.Query2.Close;
              Data.Query2.Open;
              spsx.Clear;
              spxx.Clear;
              bc.Enabled := False;
            Except
              Application.MessageBox('系统出错.','提示',64);
            End;
          end;
      end
      else
        Application.MessageBox('请输入商品上下限.','提示',64);
    end;
end;

procedure Tf_kcsxx.kcmcKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if Key = vk_Return then
  begin
    kcmc.OnChange(Sender);
    spmc.SetFocus;
  end;
end;

procedure Tf_kcsxx.spmcKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if key = vk_return then
    cx.OnClick(Sender);
end;

procedure Tf_kcsxx.spsxKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if Key = vk_Return then
    spxx.SetFocus;
end;

end.

⌨️ 快捷键说明

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