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