📄 registerarticle.pas
字号:
unit registerArticle;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DB, DBTables, Grids, DBGrids, ExtCtrls,IdGlobal;
type
TfrmRegisterArticle = class(TForm)
GroupBox1: TGroupBox;
Label1: TLabel;
articleId: TEdit;
Label2: TLabel;
articleName: TEdit;
price: TEdit;
Label4: TLabel;
articleType: TEdit;
Label3: TLabel;
Label5: TLabel;
units: TEdit;
birthplace: TEdit;
Label6: TLabel;
use: TEdit;
Label7: TLabel;
btnOk: TButton;
btnClear: TButton;
Panel1: TPanel;
DBGrid1: TDBGrid;
GroupBox3: TGroupBox;
asc: TRadioButton;
desc: TRadioButton;
GroupBox2: TGroupBox;
id: TRadioButton;
name: TRadioButton;
kind: TRadioButton;
priceRadio: TRadioButton;
Query1: TQuery;
DataSource1: TDataSource;
Table1: TTable;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
Label14: TLabel;
stock: TEdit;
Label15: TLabel;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure ascClick(Sender: TObject);
procedure descClick(Sender: TObject);
procedure idClick(Sender: TObject);
procedure nameClick(Sender: TObject);
procedure kindClick(Sender: TObject);
procedure priceRadioClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure btnClearClick(Sender: TObject);
procedure btnOkClick(Sender: TObject);
private
{ Private declarations }
function isMoney(s: string): boolean;//判断输入的货币值是否合理
function isStock(s:string):boolean;//判断存货输入是否合理
public
{ Public declarations }
end;
var
frmRegisterArticle: TfrmRegisterArticle;
implementation
{$R *.dfm}
procedure TfrmRegisterArticle.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
self.Free;
end;
procedure TfrmRegisterArticle.ascClick(Sender: TObject);
var
col:string;
begin
if id.Checked then col:='商品编号'
else if name.Checked then col:='商品名称'
else if kind.Checked then col:='商品类型'
else if priceRadio.Checked then col:='单价';
query1.Close;
query1.SQL.Clear;
query1.SQL.Add('select * from goods order by '+col+' asc');
try
query1.Open;
except
query1.ExecSQL;
end;
end;
procedure TfrmRegisterArticle.descClick(Sender: TObject);
var
col:string;
begin
if id.Checked then col:='商品编号'
else if name.Checked then col:='商品名称'
else if kind.Checked then col:='商品类型'
else if priceRadio.Checked then col:='单价';
query1.Close;
query1.SQL.Clear;
query1.SQL.Add('select * from goods order by '+col+' desc');
try
query1.Open;
except
query1.ExecSQL;
end;
end;
procedure TfrmRegisterArticle.idClick(Sender: TObject);
var
s:string;
begin
if asc.Checked then s:='asc'
else if desc.Checked then s:='desc';
query1.Close;
query1.SQL.Clear;
query1.SQL.Add('select * from goods order by 商品编号 '+s);
try
query1.Open;
except
query1.ExecSQL;
end;
end;
procedure TfrmRegisterArticle.nameClick(Sender: TObject);
var
s:string;
begin
if asc.Checked then s:='asc'
else if desc.Checked then s:='desc';
query1.Close;
query1.SQL.Clear;
query1.SQL.Add('select * from goods order by 商品名称 '+s);
try
query1.Open;
except
query1.ExecSQL;
end;
end;
procedure TfrmRegisterArticle.kindClick(Sender: TObject);
var
s:string;
begin
if asc.Checked then s:='asc'
else if desc.Checked then s:='desc';
query1.Close;
query1.SQL.Clear;
query1.SQL.Add('select * from goods order by 商品类型 '+s);
try
query1.Open;
except
query1.ExecSQL;
end;
end;
procedure TfrmRegisterArticle.priceRadioClick(Sender: TObject);
var
s:string;
begin
if asc.Checked then s:='asc'
else if desc.Checked then s:='desc';
query1.Close;
query1.SQL.Clear;
query1.SQL.Add('select * from goods order by 单价 '+s);
try
query1.Open;
except
query1.ExecSQL;
end;
end;
procedure TfrmRegisterArticle.FormCreate(Sender: TObject);
var
maxNo,tmp:integer;
begin
{获取新添加商品的编号----------<商品表>}
with table1 do
begin
open;
first;
maxNo:=fieldByName('商品编号').AsInteger;
while not eof do
begin
tmp:=fieldByName('商品编号').AsInteger;
if maxNo<tmp then maxNo:=tmp;
next;
end;
close;
end;
articleId.Text:=intToStr(maxNo+1);
activeControl:=articleName;
end;
procedure TfrmRegisterArticle.btnClearClick(Sender: TObject);
var
maxNo,tmp:integer;
begin
{获取新添加商品的编号----------<商品表>}
with table1 do
begin
open;
first;
maxNo:=fieldByName('商品编号').AsInteger;
while not eof do
begin
tmp:=fieldByName('商品编号').AsInteger;
if maxNo<tmp then maxNo:=tmp;
next;
end;
close;
end;
articleId.Text:=intToStr(maxNo+1);
activeControl:=articleName;
articleName.Text:='';
articleType.Text:='';
price.Text:='';
units.Text:='';
birthplace.Text:='';
use.Text:='';
end;
procedure TfrmRegisterArticle.btnOkClick(Sender: TObject);
var
maxNo,tmp:integer;
begin
{添加一个新商品----------<商品表>}
try
{检查"商品名称"}
if (articleName.Text='') or (length(articleName.Text)>20) then
begin
messageDlg('"商品名称"输入错误,请重新输入!',mtWarning,[mbOk],0);
activeControl:=articleName;
abort;
end;
{检查"商品类型"}
if (articleType.Text='') or (length(articleType.Text)>10) then
begin
messageDlg('"商品类型"输入错误,请重新输入!',mtWarning,[mbOk],0);
activeControl:=articleType;
abort;
end;
{检查"单价"}
if isMoney(price.Text)=false then
begin
messageDlg('"单价"输入错误,请重新输入!',mtWarning,[mbOk],0);
activeControl:=price;
abort;
end;
{检查"商品单位"}
if (length(units.Text)>4)or(units.Text='') then
begin
messageDlg('"商品单位"输入错误,请重新输入!',mtWarning,[mbOk],0);
activeControl:=units;
abort;
end;
{检查"产地"}
if (length(birthplace.Text)>20) then
begin
messageDlg('"产地"输入错误,请重新输入!',mtWarning,[mbOk],0);
activeControl:=birthplace;
abort;
end;
{检查"用途"}
if length(use.Text)>60 then
begin
messageDlg('"用途"输入过长,请重新输入!',mtWarning,[mbOk],0);
activeControl:=use;
abort;
end;
{检查"存货"}
if isStock(stock.Text)=false then
begin
messageDlg('"存货"输入错误,请重新输入!',mtWarning,[mbOk],0);
activeControl:=stock;
abort;
end;
{将商品数据填入<商品表>}
with table1 do
begin
open;
append;
fieldByName('商品编号').AsInteger:=strToInt(articleId.Text);
fieldByName('商品名称').AsString:=articleName.Text;
fieldByName('商品类型').AsString:=articleType.Text;
fieldByName('单价').AsString:=price.Text;
fieldByName('存货').AsString:=price.Text;
fieldByName('单位').AsString:=units.Text;
fieldByName('产地').AsString:=birthplace.Text;
fieldByName('用途').AsString:=use.Text;
post;
close;
end;
except
on ex:EConvertError do
begin
messageDlg('输入有误,请重试!',mtWarning,[mbOk],0);
end;
end; {end of try}
{让数据控件dbGrid1同步显示}
with query1 do
begin
close;
sql.Clear;
sql.Add('select * from goods');
open;
end;
{清屏准备输入下一种商品}
btnClearClick(Sender);//调用清屏按钮的处理操作
messageDlg('商品添加成功!',mtWarning,[mbOk],0);
activeControl:=articleName;
end;
function TfrmRegisterArticle.isMoney(s: string): boolean;
var
i:integer;
begin
i:=1;
if length(s)=0 then
begin
result:=false;
exit;
end;
while i<=length(s) do
begin
if (isNumeric(s[i])=false) and (s[i]<>'.')then
begin
result:=false;
exit;
end;
i:=i+1;
end;
result:=true;
end;
function TfrmRegisterArticle.isStock(s: string): boolean;
var
i:integer;
begin
if stock.Text='' then
begin
result:=false;
exit;
end;
i:=1;
while i<=length(s) do
begin
if isNumeric(s[i])=false then
begin
result:=false;
exit;
end;
i:=i+1;
end;
result:=true;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -