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

📄 edit_goods.pas

📁 商场管理系统源码 一套值得初学者学习的源码包含全部源码,控件
💻 PAS
字号:
unit EDIT_GOODS;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, FRMBASSDIALOGS, StdCtrls, TFlatEditUnit, TFlatPanelUnit,
  ComCtrls, MenuBar, ToolWin, DsFancyButton, ExtCtrls, TFlatComboBoxUnit,
  DB, DBTables,myself,frmmain;

type
  TFrm_edit_goods = class(TFrm_bassDialogs)
    FlatPanel_edit: TFlatPanel;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label5: TLabel;
    Label4: TLabel;
    Label6: TLabel;
    E_type: TFlatEdit;
    E_ID: TFlatEdit;
    E_price: TFlatEdit;
    E_sellprice: TFlatEdit;
    E_memo: TFlatEdit;
    Label7: TLabel;
    E_unit: TFlatEdit;
    E_NAME: TFlatComboBox;
    Query_data: TQuery;
    procedure E_NAMEKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure E_IDExit(Sender: TObject);
    procedure E_typeExit(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure OKBtnClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure E_priceKeyPress(Sender: TObject; var Key: Char);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private declarations }
  public
    P_state:integer;
    { Public declarations }
  end;

var
  Frm_edit_goods: TFrm_edit_goods;

implementation

{$R *.dfm}

procedure TFrm_edit_goods.E_NAMEKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  inherited;
   if (key=13) or (key=40) then { 判断是按执行键}
   Begin 
      key:=0;
      perform(WM_NEXTDLGCTL,0,0);{移动到下一个控件}
   end;

end;

procedure TFrm_edit_goods.E_IDExit(Sender: TObject);
begin
  inherited;
   if trim(E_id.Text) ='' then
      E_id.Text :=Nowindex;
end;

procedure TFrm_edit_goods.E_typeExit(Sender: TObject);
begin
  inherited;
  if P_state=0 then
     E_id.Text :=getstringpy(trim(E_name.Text))+getstringpy(trim(E_type.Text));
end;

procedure TFrm_edit_goods.FormCreate(Sender: TObject);
begin
  inherited;
   query_data.DatabaseName :=HWSHOPDATA;
   P_state:=1;  //0-增加  1-修改
end;

procedure TFrm_edit_goods.OKBtnClick(Sender: TObject);
begin
  inherited;
   if trim(E_name.Text)='' then
   begin
      messagedlg(Errormsg0002+'0002',mtError,[mbok],0);
      E_name.SetFocus ;
      exit;
   end;
   if trim(E_type.Text)='' then
   begin
      messagedlg(Errormsg0002+'0014',mtError,[mbok],0);
      E_name.SetFocus ;
      exit;
   end;
   if trim(E_ID.Text)='' then
   begin
      messagedlg(Errormsg0002+'0003',mtError,[mbok],0);
      E_id.SetFocus ;
      exit;
   end;
   if P_state=0 then //增加数据
   begin
      if not Checkrights(USERRIGHTS,'增加') then
      begin
         messagedlg(Errormsg0006+'0007',mterror,[mbok],0);
         exit;
      end;
      with query_data do
      begin
         close;
         sql.Clear ;
         sql.Text :='select * from goodsmessage where id="'+uppercase(E_id.Text)+'"';
         try
            open;
         except
            messagedlg(Errormsg0001+'0012',mtError,[mbok],0);
            close;
            self.Close ;
         end;
         if RecordCount > 0 then   //编号已存在
         begin
            messagedlg(Errormsg0003+'0004',mtError,[mbok],0);
            E_id.SetFocus ;
            close;
            exit;
         end
         else     //编号不存在则增加
         begin
            close;
            sql.Clear ;
            sql.Text :='insert into goodsmessage (name,type,id,unit,price,sellprice,memo)'+
                      'values ("'+E_name.Text+'","'+E_type.Text +'","'+uppercase(E_id.Text)
                      +'","'+E_unit.Text+'","'+E_price.Text +'","'+E_sellprice.Text +'","'
                      +E_memo.Text +'")';
            try
               execsql;
            except
               messagedlg(Errormsg0004+'0013',mtError,[mbok],0);
               close;
               self.Close ;
            end;
         end;
         messagedlg(Infmsg0001,mtInformation,[mbok],0);
         close;
      end;
   end
   else if P_state=1 then //修改数据
   begin
      if not Checkrights(USERRIGHTS,'编辑') then
      begin
         messagedlg(Errormsg0006+'0007',mterror,[mbok],0);
         exit;
      end;
      with query_data do
      begin
         close;
         sql.Clear ;
         sql.Text :='update goodsmessage set name="'+E_name.Text +'",type="'+E_type.Text
                        +'",unit="'+E_unit.Text +'",price="'+E_price.Text+'",sellprice="'
                        +E_sellprice.Text+'",memo="'+E_memo.Text +'" where id="'+E_id.text+'"';
         try
            execsql;
         except
            messagedlg(Errormsg0004+'0013',mtError,[mbok],0);
            close;
            self.Close ;
         end;
         messagedlg(Infmsg0003,mtInformation,[mbok],0);
         close;
      end;
   end;
   if  P_state=0 then          //继续增加
   begin
      e_name.SetFocus ;
      e_type.Text :='';
      e_unit.Text :='';
      e_memo.Text :='';
      e_price.Text :='';
      e_sellprice.Text :='';
   end
   else
      self.Close ;
end;

procedure TFrm_edit_goods.FormShow(Sender: TObject);
var
   B_find:boolean;
   I_temp:integer;
begin
  inherited;
  if P_state=1 then
  begin
     E_id.ReadOnly :=true;
     OKBtn.Enabled :=Checkrights(USERRIGHTS,'编辑');
  end
  else
  begin
     E_id.ReadOnly :=false;
     OKBtn.Enabled :=Checkrights(USERRIGHTS,'增加');
  end;

  with query_data do
  begin
      close;
      sql.Clear ;
      sql.text:='select * from goodsmessage order by name';
      open;
      while not eof do
      begin
         B_find:=false;
         for I_temp:=0 to e_name.Items.Count -1 do
         begin
           if e_name.Items.Strings[I_temp]=fieldbyname('name').asstring then
             B_find:=true;          //找到相同名称
         end;
         if not B_find then        //没有找到时增加
            e_name.Items.add(fieldbyname('name').asstring);
         next;
      end;
  end;
end;

procedure TFrm_edit_goods.E_priceKeyPress(Sender: TObject; var Key: Char);
begin
  inherited;
      if word(key)=46 then
         begin
            if strpos(pchar((sender as TFlatEdit).Text) ,chr(46))<>nil then key:=chr(0);
         end
      else if (word(key)<>8) and (word(key)<48) or (word(key)>57) then key:=chr(0);
end;

procedure TFrm_edit_goods.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  inherited;
   QUERY_data.Free ;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -