📄 registerarticleunit.pas
字号:
unit registerarticleunit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, ADODB, Grids, DBGrids, StdCtrls;
type
Tfrm_registerarticle = class(TForm)
GroupBox1: TGroupBox;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
articleid: TEdit;
articlename: TEdit;
articletype: TEdit;
num: TEdit;
birthplace: TEdit;
use: TEdit;
price: TEdit;
Label9: TLabel;
Label10: TLabel;
b_add: TButton;
b_cancel: TButton;
Label17: TLabel;
DBGrid1: TDBGrid;
t_article: TADOTable;
q_article: TADOQuery;
t_counter: TADOTable;
ds_article: TDataSource;
GroupBox2: TGroupBox;
inc: TRadioButton;
desc: TRadioButton;
GroupBox3: TGroupBox;
id: TRadioButton;
name: TRadioButton;
articlelx: TRadioButton;
dj: TRadioButton;
units: TComboBox;
procedure b_cancelClick(Sender: TObject);
procedure b_addClick(Sender: TObject);
procedure incClick(Sender: TObject);
procedure descClick(Sender: TObject);
procedure idClick(Sender: TObject);
procedure nameClick(Sender: TObject);
procedure articlelxClick(Sender: TObject);
procedure djClick(Sender: TObject);
procedure FormShow(Sender: TObject);
private
{ Private declarations }
function ismoney(s:string):boolean;
function isint(s:string):boolean;
public
{ Public declarations }
end;
var
frm_registerarticle: Tfrm_registerarticle;
implementation
uses datamoduleunit;
{$R *.dfm}
function tfrm_registerarticle.ismoney(s:string):boolean;
var i:integer;
begin
i:=1;
while i<=length(s) do
begin
if (s[i]<>'.') and ((ord(s[i])<48) or (ord(s[i])>57)) then
begin
result:=false;
exit;
end;
i:=i+1;
end;
result:=true;
end;
function tfrm_registerarticle.isint(s:string):boolean;
var i:integer;
begin
i:=1;
while i<=length(s) do
begin
if (ord(s[i])<48) or (ord(s[i])>57) then
begin
result:=false;
exit;
end;
i:=i+1;
end;
result:=true;
end;
procedure Tfrm_registerarticle.b_cancelClick(Sender: TObject);
var counter:integer;
begin
t_counter.Close;
t_counter.Open;
counter:=t_counter.FieldValues['counter'];
counter:=counter+1;
articleid.Text:=inttostr(counter);
t_counter.Close;
articlename.Clear;
articletype.Clear;
price.Clear;
num.Clear;
units.ItemIndex:=0;
birthplace.Clear;
use.Clear;
activecontrol:=articlename;
end;
procedure Tfrm_registerarticle.b_addClick(Sender: TObject);
var rt:integer;
begin
if articlename.Text='' then
begin
messagedlg('商品姓名不能为空',mtwarning,[mbok],0);
activecontrol:=articlename;
exit;
end;
if articletype.Text='' then
begin
messagedlg('商品类型不能为空',mtwarning,[mbok],0);
activecontrol:=articlename;
exit;
end;
if ismoney(price.Text)=false then
begin
messagedlg('商品单价输入错误',mtwarning,[mbok],0);
activecontrol:=price;
exit;
end;
if isint(num.Text)=false then
begin
messagedlg('存货输入错误',mtwarning,[mbok],0);
activecontrol:=num;
exit;
end;
if (units.Text='') or (units.Text='请选择单位') then
begin
messagedlg('请选择单位',mtwarning,[mbok],0);
activecontrol:=units;
exit;
end;
rt:=messagedlg('将有一条记录写入数据库中,你要继续吗?',mtwarning,[mbyes,mbno],0);
if rt=mrno then exit;
t_article.Close;
t_article.Open;
t_article.Edit;
t_article.Append;
t_article.FieldByName('商品编号').AsInteger:=strtoint(articleid.Text);
t_article.FieldValues['商品姓名']:=articlename.Text;
t_article.FieldValues['商品类型']:=articletype.Text;
t_article.Fieldbyname('单价').AsFloat:=strtofloat(price.Text);
t_article.Fieldbyname('存货').AsInteger:=strtoint(num.Text);
t_article.FieldValues['单位']:=units.Text;
t_article.FieldValues['产地']:=birthplace.Text;
t_article.FieldValues['用途']:=use.Text;
t_article.Post;
t_article.Close;
showmessage('一条记录添加成功');
t_counter.Open;
t_counter.Edit;
t_counter.FieldValues['counter']:=t_counter.FieldValues['counter']+1;
t_counter.Post;
t_counter.Close;
frm_registerarticle.FormShow(nil);
end;
procedure Tfrm_registerarticle.incClick(Sender: TObject);
var col:string;
begin
if id.Checked then col:='商品编号' else
if name.Checked then col:='商品姓名' else
if articlelx.Checked then col:='商品类型' else
if dj.Checked then col:='单价' else
begin
showmessage('请选择排序的内容');
exit;
end;
q_article.Close;
q_article.SQL.Clear;
q_article.SQL.Add('select * from foods order by '+col+' asc');
try
q_article.Open;
except
q_article.ExecSQL;
end;
end;
procedure Tfrm_registerarticle.descClick(Sender: TObject);
var col:string;
begin
if id.Checked then col:='商品编号' else
if name.Checked then col:='商品姓名' else
if articlelx.Checked then col:='商品类型' else
if dj.Checked then col:='单价' else
begin
showmessage('请选择排序的内容');
exit;
end;
q_article.Close;
q_article.SQL.Clear;
q_article.SQL.Add('select * from foods order by '+col+' desc');
try
q_article.Open;
except
q_article.ExecSQL;
end;
end;
procedure Tfrm_registerarticle.idClick(Sender: TObject);
var s:string;
begin
if inc.Checked then s:=' asc' else
if desc.Checked then s:=' desc' else
begin
showmessage('请选择排序的方法');
exit;
end;
q_article.Close;
q_article.SQL.Clear;
q_article.SQL.Add('select * from foods order by 商品编号'+s);
try
q_article.Open;
except
q_article.ExecSQL;
end;
end;
procedure Tfrm_registerarticle.nameClick(Sender: TObject);
var s:string;
begin
if inc.Checked then s:=' asc' else
if desc.Checked then s:=' desc' else
begin
showmessage('请选择排序的方法');
exit;
end;
q_article.Close;
q_article.SQL.Clear;
q_article.SQL.Add('select * from foods order by 商品姓名'+s);
try
q_article.Open;
except
q_article.ExecSQL;
end;
end;
procedure Tfrm_registerarticle.articlelxClick(Sender: TObject);
var s:string;
begin
if inc.Checked then s:=' asc' else
if desc.Checked then s:=' desc' else
begin
showmessage('请选择排序的方法');
exit;
end;
q_article.Close;
q_article.SQL.Clear;
q_article.SQL.Add('select * from foods order by 商品类型'+s);
try
q_article.Open;
except
q_article.ExecSQL;
end;
end;
procedure Tfrm_registerarticle.djClick(Sender: TObject);
var s:string;
begin
if inc.Checked then s:=' asc' else
if desc.Checked then s:=' desc' else
begin
showmessage('请选择排序的方法');
exit;
end;
q_article.Close;
q_article.SQL.Clear;
q_article.SQL.Add('select * from foods order by 单价'+s);
try
q_article.Open;
except
q_article.ExecSQL;
end;
end;
procedure Tfrm_registerarticle.FormShow(Sender: TObject);
begin
q_article.Close;
q_article.Open;
frm_registerarticle.b_cancelClick(nil);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -