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 + -
显示快捷键?