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

📄 frmmenu.~pas

📁 实用的茶楼管理系统
💻 ~PAS
字号:
unit frmMenu;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DB, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData,
  cxDataStorage, cxEdit, cxDBData, Mask, DBCtrls, ExtCtrls, StdCtrls,
  cxGridLevel, cxGridCustomTableView, cxGridTableView, cxGridDBTableView,
  cxClasses, cxControls, cxGridCustomView, cxGrid, Buttons;

type
  TMenuForm = class(TForm)
    DS: TDataSource;
    Panel1: TPanel;
    Panel_input: TPanel;
    grd: TcxGrid;
    grdTV_Menu: TcxGridDBTableView;
    grdTV_MenuID: TcxGridDBColumn;
    grdTV_MenuName: TcxGridDBColumn;
    grdTV_MenuPrice: TcxGridDBColumn;
    grdTV_MenuRemark: TcxGridDBColumn;
    Lev: TcxGridLevel;
    Panel3: TPanel;
    Memo_Remark: TMemo;
    Edt_ID: TLabeledEdit;
    Edt_Name: TLabeledEdit;
    Edt_Price: TLabeledEdit;
    Label1: TLabel;
    DBEdt_Key: TDBEdit;
    btn_Add: TSpeedButton;
    btn_Delete: TSpeedButton;
    btn_Save: TSpeedButton;
    procedure Edt_PriceKeyPress(Sender: TObject; var Key: Char);
    procedure FormCreate(Sender: TObject);
    procedure DBEdt_KeyChange(Sender: TObject);
    procedure btn_AddClick(Sender: TObject);
    procedure Edt_IDKeyPress(Sender: TObject; var Key: Char);
    procedure Edt_NameKeyPress(Sender: TObject; var Key: Char);
    procedure btn_SaveClick(Sender: TObject);
    procedure btn_DeleteClick(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    UpdateOrAppend : boolean; //true:Append  false:Update;

    procedure BindDetail;
    procedure ClearDetail;
    procedure EnableEdit;
    procedure DisableEdit;
  public
    { Public declarations }
  end;

var
  MenuForm: TMenuForm;

implementation

uses DataModule;

{$R *.dfm}

procedure TMenuForm.BindDetail;
begin
  edt_ID.Text :=  DS.DataSet.FieldByName('ID').AsString;
  edt_Name.Text :=  DS.DataSet.FieldByName('Name').AsString;
  edt_Price.Text :=  DS.DataSet.FieldByName('Price').AsString;
  Memo_Remark.Text :=  DS.DataSet.FieldByName('Remark').AsString;
end;

procedure TMenuForm.ClearDetail;
begin
  edt_ID.Text := '';
  edt_Name.Text := '';
  edt_Price.Text := '';
  Memo_Remark.Text := '';
end;

procedure TMenuForm.EnableEdit;
begin
  edt_ID.Enabled :=true;
  edt_Name.Enabled :=true;
  edt_Price.Enabled :=true;
  Memo_Remark.Enabled :=true;
end;

procedure TMenuForm.DisableEdit;
begin
  edt_ID.Enabled :=false;
  edt_Name.Enabled :=false;
  edt_Price.Enabled :=false;
  Memo_Remark.Enabled :=false;
end;

procedure TMenuForm.FormCreate(Sender: TObject);
begin
  UpdateOrAppend:= false;
  DisableEdit;
  DS.DataSet.Active:= true;

//
end;

procedure TMenuForm.DBEdt_KeyChange(Sender: TObject);
begin
  if TDBEdit(Sender).Text = '' then
  begin
    ClearDetail;
    DisableEdit;
  end
  else begin
    Edt_ID.Enabled:=false; 
    BindDetail;
    EnableEdit;
  end;
  
  UpdateOrAppend:= false;
end;

procedure TMenuForm.Edt_PriceKeyPress(Sender: TObject; var Key: Char);
begin
  if not (key in ['0'..'9',#8,#13]) then
    Key:=#0
  else
  if key = #13 then
  begin
    key:=#0;
    Btn_Save.OnClick(nil);
  end;
end;

procedure TMenuForm.Edt_IDKeyPress(Sender: TObject; var Key: Char);
begin
  if key = chr(13) then
  begin
    key:=#0;
    edt_Name.SetFocus;
  end;
end;

procedure TMenuForm.Edt_NameKeyPress(Sender: TObject; var Key: Char);
begin
  if key = chr(13) then
  begin
    key:=#0;
    edt_Price.SetFocus;
  end;
end;

procedure TMenuForm.btn_SaveClick(Sender: TObject);
var
  msg:string;
  oldID:string;
begin
  try
    if UpdateOrAppend then
    begin
      if (trim(Edt_Name.Text)='') or (trim(Edt_Price.Text)='') or (trim(Edt_Price.Text)='') then
      begin
        msg:='请输入完整信息!';
        MessageBox(Application.Handle,PChar(msg),'系统提示',MB_ICONINFORMATION);
        exit;
      end;

      if not DM.checkMenuKey(trim(Edt_ID.Text)) then
      begin
        msg:='编号不能重复!';
        MessageBox(Application.Handle,PChar(msg),'系统提示',MB_ICONINFORMATION);
        exit;
      end;

      DM.Que.Close;
      DM.Que.SQL.Text:='insert into menu(ID,Name,Price,Remark)'+
                       'values('''+Edt_ID.Text+''','''+Edt_Name.Text+''','+Edt_Price.Text+','''+Memo_Remark.Text+''')';
      DM.Que.ExecSQL;

      DS.DataSet.Active :=false;
      DS.DataSet.Active :=true;
      Btn_Add.OnClick(nil);
    end
    else begin
      if (trim(Edt_ID.Text)='') or (trim(Edt_Name.Text)='') then
      begin
        msg:='请输入完整信息!';
        MessageBox(Application.Handle,PChar(msg),'系统提示',MB_ICONINFORMATION);
        exit;
      end;

      oldID:=Edt_ID.Text;

      DM.Que.Close;
      DM.Que.SQL.Text:='update menu set ID='''+Edt_ID.Text+''',Name='''+Edt_Name.Text+
                       ''',Price='+Edt_Price.Text+',Remark='''+Memo_Remark.Text+''' where ID='''+Edt_id.Text+'''';
      DM.Que.ExecSQL;

      DS.DataSet.Active :=false;
      DS.DataSet.Active :=true;
      DS.DataSet.Locate('ID',OldID,[loCaseInsensitive]);  
    end;
  except
    msg:='操作失败!';
    MessageBox(Application.Handle,PChar(msg),'系统提示',MB_ICONINFORMATION);
  end;
end;

procedure TMenuForm.btn_AddClick(Sender: TObject);
begin
  ClearDetail;
  EnableEdit;
  UpdateOrAppend:= true;
  edt_ID.SetFocus;
end;


procedure TMenuForm.btn_DeleteClick(Sender: TObject);
var
  msg:string;
begin
  if DBEdt_Key.Text<>'' then
  begin
    DM.Que.Close;
    DM.Que.SQL.Text:='select * from tOrderDetail where menuID='''+DBEdt_Key.Text+'''';
    DM.Que.Open;

    if DM.Que.RecordCount >0 then
    begin
      msg:='该信息正在使用,不能被删除!';
      MessageBox(Application.Handle,PChar(msg),'系统提示',MB_ICONINFORMATION);
      exit;
    end;

    msg:='删除菜单会导致跟菜单相关的信息被删除,确定该操作吗?';
    if MessageBox(Application.Handle,Pchar(msg),Pchar('系统提示'),mb_OKCancel) = ID_OK then
      if DS.DataSet.RecordCount >0 then DS.DataSet.Delete;
  end;
  
end;

procedure TMenuForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  DS.DataSet.Active:= false;
end;

end.

⌨️ 快捷键说明

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