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

📄 registerarticle.pas

📁 餐饮管理源代码 使用BDE Administrator在本地机器上添加一个Paradox数据库别名命名为WorkData
💻 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 + -