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

📄 kczlwh.pas

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

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

type
  Tf_kczlwh = class(TForm)
    Panel1: TPanel;
    Label1: TLabel;
    cx: TSpeedButton;
    kcmc: TComboBox;
    Grid1: TDBGrid;
    DataSource1: TDataSource;
    sc: TBitBtn;
    BitBtn2: TBitBtn;
    gqsp: TCheckBox;
    slwl: TCheckBox;
    qx: TBitBtn;
    procedure FormCreate(Sender: TObject);
    procedure cxClick(Sender: TObject);
    procedure qxClick(Sender: TObject);
    procedure scClick(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  f_kczlwh: Tf_kczlwh;

implementation
  uses DataModal;
{$R *.dfm}

procedure Tf_kczlwh.FormCreate(Sender: TObject);
begin
  Data.Query2.RequestLive := True;
  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_kczlwh.cxClick(Sender: TObject);
begin
  if Trim(kcmc.Text)<>'' then
  begin
    if (gqsp.Checked = False)and(slwl.Checked = False) then
    begin
      Application.MessageBox('请选择查询条件.','提示',64);
      Exit;
    end;
    with Data.Query2 do
    begin
      Close;
      SQL.Clear;
      if (gqsp.Checked = True)and(slwl.Checked = True) then
      begin
        SQL.Add('select * from t_sprkjl where kcmc = :a and (bzq < :b and sl = 0)');
        ParamByName('b').AsDate := Trunc(Now)+1;
      end
      else if (gqsp.Checked = True)and (slwl.Checked = False) then
      begin
        SQL.Add('select * from t_sprkjl where kcmc = :a and bzq < :b ');
        ParamByName('b').AsDate := Trunc(Now)+1;
      end
      else if (gqsp.Checked = False)and (slwl.Checked = True) then
        SQL.Add('select * from t_sprkjl where kcmc = :a and sl = 0');
      ParamByName('a').AsString := Trim(kcmc.Text);
      Open;
    end;
    if Data.Query2.RecordCount>0 then
    begin
      DataSource1.DataSet := Data.Query2;
      sc.Enabled := True;
    end
    else
    begin
      DataSource1.DataSet := Nil;
      sc.Enabled := False;
      Application.MessageBox('没有符合条件的记录.','提示',64);
    end;
  end;
end;

procedure Tf_kczlwh.qxClick(Sender: TObject);
begin
  gqsp.Enabled := True;
  slwl.Enabled := True;
  gqsp.Checked := False;
  slwl.Checked := True;
  DataSource1.DataSet := Nil;
  sc.Enabled := False;
  kcmc.Text := '';
end;

procedure Tf_kczlwh.scClick(Sender: TObject);
begin
  if Data.Query2.Active = True then
    if Data.Query2.RecordCount>0 then
      if Application.MessageBox('确实要删除这些数据吗?','提示',mb_YesNo)=ID_yes then
      begin
        Try
          Data.Database.StartTransaction;
          if slwl.Checked = False then//过期商品条件被选中,数量为零条件没有选中  因为在过期商品与数量为零两个条件不选中时,删除按钮不可用
          begin
            Data.Query2.First;
            While Not Data.Query2.Eof do
            begin
              with Data.Query1 do
              begin
                Close;
                SQL.Clear;
                SQL.Add('update t_kc set kcsl = kcsl -:a where spdm = :b and kcmc =:c');
                ParamByName('a').AsInteger := Data.Query2.FieldByName('sl').AsInteger;
                ParamByName('b').AsString := Data.Query2.FieldByName('spdm').AsString;
                ParamByName('c').AsString := Data.Query2.FieldByName('kcmc').AsString;
                ExecSQL;
              end;
              with Data.Query1 do
              begin
                Close;
                SQL.Clear;
                SQL.Add('insert t_gqsp values(:a,:b,:c,:d,:e,default)');
                ParamByName('a').AsString := Data.Query2.FieldByName('kcmc').AsString;
                ParamByName('b').AsString := Data.Query2.FieldByName('spdm').AsString;
                ParamByName('c').AsDate := Data.Query2.FieldByName('bzq').AsDateTime;
                ParamByName('d').AsInteger := Data.Query2.FieldByName('sl').AsInteger;
                ParamByName('e').AsFloat :=Data.Query2.FieldByName('je').AsFloat;
                ExecSQL;
              end;
              Data.Query2.Next;
            end;
          end;
          Data.Query2.Delete;
          Data.Database.Commit;
          Application.MessageBox('操作成功.','提示',64);
          qx.OnClick(Sender);
        Except
          Data.Database.Rollback;
          Application.MessageBox('系统出错.','提示',64);
        end;
      end;
end;

procedure Tf_kczlwh.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Data.Query2.RequestLive := False;
end;

end.

⌨️ 快捷键说明

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