📄 spform.pas
字号:
unit spForm;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, Grids, DBGrids, DB, ComCtrls,DateUtils;
type
TFrmsp = class(TForm)
ds: TDataSource;
dg: TDBGrid;
editPanel: TPanel;
btnPanel: TPanel;
addbtn: TButton;
editbtn: TButton;
okbtn: TButton;
delbtn: TButton;
cancelbtn: TButton;
djedit: TEdit;
ggedit: TEdit;
Label5: TLabel;
Label4: TLabel;
Label3: TLabel;
Label2: TLabel;
spmcedit: TEdit;
Label18: TLabel;
dledit: TEdit;
lxedit: TComboBox;
procedure inputrealKeyPress(Sender: TObject; var Key: Char);
Procedure inputintKeyPress(Sender:TObject;var Key: Char);
Procedure NextFocusKeyPress(Sender:TObject;var Key:Char);
procedure FormShow(Sender: TObject);
procedure dgCellClick(Column: TColumn);
procedure addbtnClick(Sender: TObject);
procedure editbtnClick(Sender: TObject);
procedure delbtnClick(Sender: TObject);
procedure okbtnClick(Sender: TObject);
procedure cancelbtnClick(Sender: TObject);
procedure dgDrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
procedure lxeditEnter(Sender: TObject);
private
Procedure showdb;
public
{ Public declarations }
end;
var
Frmsp: TFrmsp;
implementation
uses DataModule, ShareData;
{$R *.dfm}
{ TFrmBasic }
procedure TFrmsp.showdb;
begin
With DM.cquery do
begin
Active:=False;
SQL.Clear;
sql.Add('select * from sp_v order by spmc');
active:=True;
end;
end;
procedure TFrmsp.inputintKeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then NextSetFocus(sender)
else
key:=inputintkeys(sender,key);
end;
procedure TFrmsp.inputrealKeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then NextSetFocus(sender)
else
key:=inputrealkeys(sender,key);
end;
procedure TFrmsp.NextFocusKeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then NextSetFocus(sender);
end;
procedure TFrmsp.FormShow(Sender: TObject);
begin
clearControls(EditPanel);
EnabledControls(EditPanel,False);
initButtons(btnPanel);
showdb;
end;
procedure TFrmsp.dgCellClick(Column: TColumn);
begin
if DM.cquery.IsEmpty then exit;
spmcedit.Text:=DM.cquery.FieldByName('spmc').AsString;
lxedit.Text:=DM.cquery.FieldByName('lxmc').AsString;
ggedit.Text:=DM.cquery.FieldByName('gg').AsString;
djedit.Text:=DM.cquery.FieldByName('dj').AsString;
dledit.Text:=DM.cquery.FieldByName('dl').AsString;
Enabledcontrols(editPanel,False);
DBClick(btnPanel);
end;
procedure TFrmsp.addbtnClick(Sender: TObject);
begin
EnabledControls(EditPanel,True);
clearcontrols(EditPanel);
addClick(btnPanel);
end;
procedure TFrmsp.editbtnClick(Sender: TObject);
begin
EnabledControls(EditPanel,True);
editClick(btnPanel);
end;
procedure TFrmsp.delbtnClick(Sender: TObject);
begin
if dm.cquery.IsEmpty then exit;
if messagedlg('确认要删除此记录吗?',mtWarning,MBOKCancel,0)=id_ok then
begin
with dm.tempquery do
begin
active:=False;
sql.Clear;
sql.Add('delete from spb where spid=:spid');
parameters.ParamByName('spid').Value:=dm.cquery.fieldbyname('spid').AsInteger;
execsql;
end;
ShowMessage('删除成功!');
end;
updatequery;
delclick(btnPanel);
end;
procedure TFrmsp.okbtnClick(Sender: TObject);
begin
if spmcedit.Text = '' then
begin
messagedlg('商品名称不能为空,请输入!',mtWarning,[mbok],0);
spmcedit.SetFocus;
exit;
end;
if djedit.text= '' then djedit.Text:='0';
if dledit.text= '' then dledit.Text:='0';
with dm.tempquery do
begin
Active:=False;
sql.Clear;
if flag then
begin
sql.Add('exec sp_op 1,0,:lxmc,:spmc,:gg,:dj,:dl ');
end
else
begin
sql.Add('exec sp_op 2,:spid,:lxmc,:spmc,:gg,:dj,:dl');
parameters.ParamByName('spid').Value:=dm.cquery.fieldbyname('spid').AsInteger;
end;
parameters.ParamByName('lxmc').Value:=lxedit.Text ;
parameters.ParamByName('spmc').Value:=spmcedit.text;
parameters.ParamByName('gg').Value:=ggedit.Text ;
parameters.ParamByName('dj').Value:=djedit.Text ;
parameters.ParamByName('dl').Value:=dledit.Text;
execsql;
end;
updatequery;
okClick(btnpanel);
enabledcontrols(editpanel,false);
end;
procedure TFrmsp.cancelbtnClick(Sender: TObject);
begin
enabledcontrols(editpanel,false);
cancelClick(btnpanel);
end;
procedure TFrmsp.dgDrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if (DM.cquery.RecNo mod 2)=0 then
dg.Canvas.Brush.Color:=clWhite
else
dg.Canvas.Brush.Color:=clSilver;
dg.DefaultDrawColumnCell(Rect,DAtaCol,Column,State);
end;
procedure TFrmsp.lxeditEnter(Sender: TObject);
begin
with DM.TempQuery do
begin
Active:=False;
SQL.clear;
SQL.add('select lxmc from lxb order by lxmc');
Active:=True;
lxedit.Items.Clear;
while not Eof do
begin
lxedit.Items.Add(FieldbyName('lxmc').asString);
next;
end;
Active:=False;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -