unitsetprice.pas

来自「自己做过的工程」· PAS 代码 · 共 202 行

PAS
202
字号
unit unitsetprice;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DB, Grids, DBGrids, StdCtrls, ExtCtrls, ComCtrls;

type
  Tformsetprice = class(TForm)
    Page_price: TPageControl;
    tab_roomprice: TTabSheet;
    tab_supprice: TTabSheet;
    Panel1: TPanel;
    but_add: TButton;
    but_modify: TButton;
    but_delete: TButton;
    DataSourceroom: TDataSource;
    DataSourcesup: TDataSource;
    but_exit: TButton;
    DBGrid1: TDBGrid;
    DBGrid2: TDBGrid;
    procedure but_addClick(Sender: TObject);
    procedure but_exitClick(Sender: TObject);
    procedure DBGrid2CellClick(Column: TColumn);
    procedure but_modifyClick(Sender: TObject);
    procedure but_deleteClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure tab_roompriceShow(Sender: TObject);
    procedure tab_suppriceShow(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  formsetprice: Tformsetprice;

   addormodify:integer;//录入还是修改
           SQL:string;
     pageindex:integer;//0-房间价格 1-酒菜价格

implementation
      uses unitDMHotel,unitsetroomprice_data,unitsetsupprice_data;
{$R *.dfm}

//录入价格
procedure Tformsetprice.but_addClick(Sender: TObject);
begin
    pageindex:=page_price.ActivePageIndex;
    //房价设定
    if  pageindex=0   then
        begin
            //插入状态
            AddorModify:=1;
            //打开录入窗口
            formsetroomprice_data.ShowModal;
            formsetroomprice_data.Caption:='房间价格录入';
        end
    //餐饮价格设定
    else
        begin
           //插入状态
            AddorModify:=1;
            //打开录入窗口
            formsetsupprice_data.ShowModal;
            formsetsupprice_data.Caption:='酒菜价格录入';
        end;
end;

procedure Tformsetprice.but_exitClick(Sender: TObject);
begin
    close;
end;

procedure Tformsetprice.DBGrid2CellClick(Column: TColumn);
begin
    DBGrid2.SetFocus;
end;

//修改价格
procedure Tformsetprice.but_modifyClick(Sender: TObject);
begin
    pageindex:=page_price.ActivePageIndex;
    //修改房间价格
    if  pageindex=0 then
        begin
            //没有选择纪录
            DMHotel.ds_room_price_set.Open;
            if  DMHotel.ds_room_price_set.FieldByName('roomtype').AsString='' then
                begin
                    showmessage('请先选择要修改的纪录!');
                    exit;
                end;

            //修改状态
            AddorModify:=0;
            //打开录入窗口
            formsetroomprice_data.ShowModal;
            formsetroomprice_data.Caption:='房间价格修改';
        end
    //修改酒菜价格
    else
        begin
            //没有选择纪录
            DMHotel.ds_sup_price_set.Open;
            if  DMHotel.ds_sup_price_set.FieldByName('supno').AsString='' then
                begin
                    showmessage('请先选择要修改的纪录!');
                    exit;
                end;

            //修改状态
            AddorModify:=0;
            //打开录入窗口
            formsetsupprice_data.ShowModal;
            formsetsupprice_data.Caption:='酒菜价格修改';
        end;
end;

//删除记录
procedure Tformsetprice.but_deleteClick(Sender: TObject);
var
    ls_roomno,ls_supno:string;
begin
    pageindex:=page_price.ActivePageIndex;
    //删除房间价格
    if  pageindex=0 then
        begin
            //没有选择纪录
            DMHotel.ds_room_price_set.Open;
            if  DMHotel.ds_room_price_set.FieldByName('roomno').AsString='' then
                begin
                    showmessage('请先选择要删除的纪录!');
                    exit;
                end;
            if   MessageDlg('您确定要删除该记录吗?',mtConfirmation,[mbYes,mbNo],0)= mrNO then
                 exit;

            ls_roomno:=DMHotel.ds_room_price_set.FieldByName('roomno').AsString; //取房间编号
            //删除操作
            SQL:='delete from room_price_set '+'where roomno='+''''+ls_roomno+'''';
            DMHotel.ADOQuery1.SQL.Text:=SQL;
            try
                DMHotel.ADOQuery1.ExecSQL;
            except
                showmessage('删除失败!');
                exit;
            end;
            DMHotel.ds_room_price_set.Requery;
        end
    //删除酒菜价格
    else
        begin
            //没有选择纪录
            DMHotel.ds_sup_price_set.Open;
            if  DMHotel.ds_sup_price_set.FieldByName('supno').AsString='' then
                begin
                    showmessage('请先选择要删除的纪录!');
                    exit;
                end;
            if   MessageDlg('您确定要删除该记录吗?',mtConfirmation,[mbYes,mbNo],0)= mrNO then
                 exit;

            ls_supno:=DMHotel.ds_sup_price_set.FieldByName('supno').AsString; //取酒菜编号
            //删除操作
            SQL:='delete from sup_price_set '+'where supno='+''''+ls_supno+'''';
            DMHotel.ADOQuery1.SQL.Text:=SQL;
            try
                DMHotel.ADOQuery1.ExecSQL;
            except
                showmessage('删除失败!');
                exit;
            end;
            DMHotel.ds_sup_price_set.Requery;
        end;
end;

procedure Tformsetprice.FormShow(Sender: TObject);
begin
    //确保数据集打开
    DMHotel.ds_sup_price_set.Open;
    DMHotel.ds_room_price_set.Open;
end;

procedure Tformsetprice.tab_roompriceShow(Sender: TObject);
begin
    //不可添加、删除
    but_add.Enabled:=false;
    but_delete.Enabled:=false;
end;

procedure Tformsetprice.tab_suppriceShow(Sender: TObject);
begin
    //允许添加、删除
    but_add.Enabled:=true;
    but_delete.Enabled:=true;
end;

end.

⌨️ 快捷键说明

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