upromod.pas
来自「DELPHI编程入门篇.从基础入手,浅显易懂,一定物有所值.」· PAS 代码 · 共 161 行
PAS
161 行
unit Upromod;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, DB, ADODB;
type
Tfrmprovmod = class(TForm)
Label1: TLabel;
Edit1: TEdit;
Label2: TLabel;
Edit2: TEdit;
ADOQuery1: TADOQuery;
Label3: TLabel;
Edit3: TEdit;
Label4: TLabel;
Edit4: TEdit;
Label5: TLabel;
Edit5: TEdit;
Edit7: TEdit;
Edit6: TEdit;
Label6: TLabel;
Label8: TLabel;
Edit8: TEdit;
Label9: TLabel;
Edit9: TEdit;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
Label7: TLabel;
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure Edit1KeyPress(Sender: TObject; var Key: Char);
procedure Edit1Exit(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmprovmod: Tfrmprovmod;
implementation
uses Udatamodule, Uprovid;
{$R *.dfm}
procedure Tfrmprovmod.BitBtn1Click(Sender: TObject);
var
i,j,k:integer;
begin
if edit1.Text = '' then
begin
showmessage('商品编号不能为空');
exit;
end;
if edit2.Text = '' then
begin
showmessage('商品名称不能为空');
exit;
end;
if edit4.Text = '' then
begin
showmessage('请输入联系人');
exit;
end;
if edit1.Enabled = true then
begin
adoquery1.SQL.Text:='select provid from provinfo where provid = '''+edit1.Text+'''';
adoquery1.Open;
if adoquery1.RecordCount = 0 then
begin
adoquery1.Close;
adoquery1.SQL.Text:='insert into provinfo values("'+edit1.Text+'","'+edit2.Text+'",'
+'"'+edit3.Text+'","'+edit4.Text+'","'+edit5.Text+'","'+edit6.Text+'","'+edit7.Text+'",'
+'"'+edit8.Text+'","'+edit9.Text+'")';
adoquery1.ExecSQL;
adoquery1.Close;
with frmprovid.StringGrid1 do
begin
for i:=1 to rowcount-1 do
rows[i].Clear;
rowcount:=2;
adoquery1.SQL.Text:='select * from provinfo';
adoquery1.Open;
if adoquery1.RecordCount > 0 then
begin
j:=1;
rowcount:=adoquery1.RecordCount+1;
while not adoquery1.Eof do
begin
for k:=0 to colcount-1 do
cells[k,j]:=adoquery1.Fields[k].AsString;
adoquery1.Next;
inc(j);
end;
end;
end;
showmessage('添加完成');
self.Close;
end
else begin
showmessage('商品编号有重复');
exit;
end;
end
else begin
adoquery1.SQL.Text:='update provinfo set provname = '''+edit2.Text+''',address'
+' = '''+edit3.Text+''',linkman = '''+edit4.Text+''',provtel = '''+edit5.Text+''','
+'opbanck = '''+edit6.Text+''',accounts = '''+edit7.Text+''','+
'taxation = '''+edit8.Text+''',explain = '''+edit9.Text+''' where provid = '''+edit1.Text+'''';
adoquery1.ExecSQL;
adoquery1.Close;
with frmprovid.StringGrid1 do
begin
for i:=1 to rowcount do
begin
if cells[0,i] = edit1.Text then
begin
cells[1,i]:=edit2.Text;
cells[2,i]:=edit3.Text;
cells[3,i]:=edit4.Text;
cells[4,i]:=edit5.Text;
cells[5,i]:=edit6.Text;
cells[6,i]:=edit7.Text;
cells[7,i]:=edit8.Text;
cells[8,i]:=edit9.Text;
end;
end;
end;
showmessage('修改完成');
self.Close;
end;
end;
procedure Tfrmprovmod.BitBtn2Click(Sender: TObject);
begin
self.Close;
end;
procedure Tfrmprovmod.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if (( not(key in ['0'..'9'])) and (key <> #8) and (key <> #22)) then
begin
showmessage('输入数字');
key:=chr(0);
end
end;
procedure Tfrmprovmod.Edit1Exit(Sender: TObject);
begin
if edit1.Text <> '' then
while length(edit1.Text) < 5 do
edit1.Text:='0'+edit1.Text;
end;
end.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?