📄 kczlwh.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 + -