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

📄 unit_servicebooking.pas

📁 用delphi开发的美容院管理系统
💻 PAS
📖 第 1 页 / 共 2 页
字号:
unit Unit_ServiceBooking;

interface

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

type
  Tfrm_servicebooking = class(TForm)
    PageControl1: TPageControl;
    sht_List: TTabSheet;
    sht_Content: TTabSheet;
    StatusBar1: TStatusBar;
    Panel1: TPanel;
    sbtn_front: TSpeedButton;
    sbtn_back: TSpeedButton;
    sbtn_append: TSpeedButton;
    sbtn_edit: TSpeedButton;
    sbtn_save: TSpeedButton;
    sbtn_delete: TSpeedButton;
    sbtn_print: TSpeedButton;
    sbtn_close: TSpeedButton;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    edt_CusNo: TEdit;
    dtp_BookingDate: TDateTimePicker;
    cbb_StartTime: TComboBox;
    edt_EmpName: TEdit;
    Label8: TLabel;
    mm_BookingContent: TMemo;
    Label7: TLabel;
    mm_BookingRemark: TMemo;
    sg_Booking: TStringGrid;
    Label11: TLabel;
    edt_BookingNo: TEdit;
    Label17: TLabel;
    edt_Contact: TEdit;
    cbb_EmpNo: TComboBox;
    cbb_CusName: TComboBox;
    procedure sbtn_closeClick(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure cbb_EmpNoExit(Sender: TObject);
    procedure edt_CusNoExit(Sender: TObject);
    procedure sg_BookingSelectCell(Sender: TObject; ACol, ARow: Integer;
      var CanSelect: Boolean);
    procedure sht_ContentShow(Sender: TObject);
    procedure sht_ListShow(Sender: TObject);
    procedure PageControl1Changing(Sender: TObject;
      var AllowChange: Boolean);
    procedure sbtn_appendClick(Sender: TObject);
    procedure sbtn_editClick(Sender: TObject);
    procedure sbtn_saveClick(Sender: TObject);
    procedure sbtn_deleteClick(Sender: TObject);
    procedure sbtn_backClick(Sender: TObject);
    procedure sbtn_frontClick(Sender: TObject);
    procedure FormResize(Sender: TObject);
    procedure FormKeyPress(Sender: TObject; var Key: Char);
    procedure sbtn_printClick(Sender: TObject);
  private
    { Private declarations }
    PageIndex:integer;
    AppendOrEdit,DoChange : boolean;
    BookingNo : string;

    procedure GetBookingInfo;
    procedure SearchBookingInfo;
    function  SaveBookingInfo:boolean;
    procedure ClearBookingInfo;
    procedure MakeEnabled(temp:boolean);
    procedure GetEmpNoList;
    procedure GetCusNameList;
  public
    { Public declarations }
    procedure ServiceBooking_ref;
  end;

var
  frm_servicebooking: Tfrm_servicebooking;

implementation
  uses unit_DataModule,unit_TotalPublic,PublicFunOrPro;

{$R *.dfm}

{********************************************}
procedure Tfrm_servicebooking.ServiceBooking_ref ;
begin
  pagecontrol1.ActivePage := sht_List ;
  
  with sg_Booking do
  begin
    cells[0,0]:='预约编号';
    cells[1,0]:='客户姓名';
    cells[2,0]:='预约日期';
    cells[3,0]:='员工编号';
    cells[4,0]:='员工姓名';
    cells[5,0]:='预约内容';
  end;
  
  SearchBookingInfo;
  GetEmpNoList;
  GetCusNameList;
  formresize(nil);

  sbtn_append.Enabled := GetPower(SysUserId,'顾客预约服务','修改权');
  sbtn_edit.Enabled := sbtn_append.Enabled ;
  sbtn_delete.Enabled := sbtn_append.Enabled ;
  sbtn_print.Enabled := GetPower(SysUserId,'顾客预约服务','打印权');
end;
procedure Tfrm_servicebooking.GetBookingInfo ;
begin
  if sg_booking.Cells[0,sg_booking.Row]='' then exit;
  BookingNo:=sg_booking.cells[0,sg_booking.row];

  with dmod.qrydata do
  begin
    close;
    SQL.Text := 'select booking_no,cus_name,booking_date,start_time,contact,emp_no,emp_name,booking_content,'+
                'booking_remark from customerservicebooking where booking_no='+#39+BookingNo+#39;
    Open;
    if not eof then
    begin
      edt_bookingno.Text := FieldbyName('booking_no').AsString ;
      //edt_CusNo.Text     := FieldbyName('cus_no').AsString ;
      cbb_CusName.Text := FieldbyName('cus_name').AsString ;
      dtp_bookingdate.date := FieldbyName('booking_date').AsDateTime ;
      cbb_starttime.Text := FieldbyName('start_time').AsString ;
      edt_contact.Text   := FieldbyName('contact').AsString ;
      cbb_empno.Text     := FieldbyName('emp_no').AsString ;
      edt_empname.Text := FieldbyName('emp_name').AsString ;
      mm_bookingcontent.Text := FieldByName('booking_content').AsString ;
      mm_bookingremark.Text  := FieldByname('booking_remark').AsString ;
      //edt_CusType.Text := FieldByName('ctypename').AsString ;
      //edt_TotalCost.Text := FloatToStr(FieldByName('total_cost').AsFloat );
      //edt_CostScore.Text := FloatToStr(FieldByName('cost_score').AsFloat );
      //edt_EmpType.Text   := FieldByName('etypename').AsString ;
      //edt_EmpSex.Text    := FieldBYname('emp_sex').AsString ;
      //mm_EmpRemark.Text  := FieldByName('emp_remark').AsString ;
    end;
    
  end;
end;

procedure Tfrm_servicebooking.ClearBookingInfo ();
begin
  edt_BookingNo.Text := '';
  //edt_CusNo.Text    := '';
  cbb_CusName.Text  := '';
  dtp_BookingDate.Date := Date;
  cbb_StartTime.text:= '';
  edt_Contact.Text  := '';
  cbb_Empno.Text    := '';
  edt_Empname.Text  := '';
  mm_BookingContent.Text :='';
  mm_BookingRemark.Text  :='';
  //edt_Custype.Text  := '';
  //edt_TotalCost.Text:= '';
  //edt_Costscore.Text:= '';
  //edt_EmpSex.Text   := '';
  //edt_EmpType.Text  := '';
  //mm_EmpRemark.Text := '';

  edt_Bookingno.SetFocus ;
end;

procedure Tfrm_servicebooking.MakeEnabled(temp:boolean);
begin
  if sbtn_append.Enabled then
      sbtn_save.Enabled := temp
   else
      sbtn_save.Enabled := false;
   sbtn_delete.Enabled := false;

   edt_BookingNo.Enabled := temp;
   //edt_CusNo.Enabled    := temp;
   cbb_CusName.Enabled  := temp;
   dtp_BookingDate.Enabled := temp;
   cbb_StartTime.Enabled:= temp;
   edt_Contact.Enabled  := temp;
   cbb_Empno.Enabled    := temp;
   edt_Empname.Enabled  := temp;
   mm_BookingContent.Enabled :=temp;
   mm_BookingRemark.Enabled  :=temp;
   //edt_Custype.Enabled  := temp;
   //edt_TotalCost.Enabled:= temp;
   //edt_Costscore.Enabled:= temp;
   //edt_EmpSex.Enabled   := temp;
   //edt_EmpType.Enabled  := temp;
   //mm_EmpRemark.Enabled := temp;
end;

procedure Tfrm_servicebooking.SearchBookingInfo;
var
  i:integer;
begin
  StringGridClear(sg_Booking);

  with dmod.qrydata do
  begin
    close;
    SQL.Text := 'select booking_no,cus_name,booking_date,emp_no,emp_name,booking_content from CustomerServiceBooking order by booking_date desc';
    Open;
    i:=1;
    while not eof do
    begin
      with sg_Booking do
      begin
        Cells[0,i] := FieldByName('booking_no').AsString ;
        //Cells[1,i] := FieldByName('cus_no').AsString ;
        Cells[1,i] := FieldByName('cus_name').AsString ;
        Cells[2,i] := FieldByName('booking_date').AsString ;
        Cells[3,i] := FieldByName('emp_no').AsString ;
        Cells[4,i] := FieldByName('emp_name').AsString ;
        Cells[5,i] := FieldByName('booking_content').AsString ;
      end;
      inc(i);
      next;
    end;
  end;
  if i<>1 then sg_Booking.RowCount := i+1;
  sbtn_front.Enabled := false;
  sbtn_back.Enabled := false;
  if sg_Booking.RowCount > 3 then sbtn_back.Enabled := true;
end;

procedure Tfrm_servicebooking.GetEmpNoList ;
begin
  with dmod.qrydata do
  begin
    close;
    SQL.Text := 'select emp_no from Employee order by emp_no';
    Open;
    while not eof do
    begin
      cbb_EmpNo.Items.Add(FieldByName('emp_no').AsString );
      next; 
    end;
  end;
end;

procedure Tfrm_servicebooking.GetCusNameList ;
begin
  with dmod.qrydata do
  begin
    close;
    Sql.Text :='select cus_name from customer order by cus_no';
    open;
    while not eof do
    begin
      cbb_cusName.Items.Add(fieldbyname('cus_name').AsString);
      next;
    end;
  end;
end;

function Tfrm_servicebooking.SaveBookingInfo :boolean;
begin
  result := true;
  DoChange := true;
  
  if trim(edt_BookingNo.Text)='' then
  begin
    MessageBox(handle,'请输入本次预约的编号!','提示',mb_ok+mb_iconinformation);
    result := false;
    DoChange := false;
    edt_BookingNo.SetFocus ;
    exit;
  end;
  
  {if trim(edt_Cusno.Text)='' then
  begin
    MessageBox(handle,'请输入预约的客户编号!','提示',mb_ok+mb_iconinformation);
    result := false;
    DoChange := false;
    edt_Cusno.SetFocus ;
    exit;
  end; }
  
  {if trim(cbb_EmpNo.Text)='' then
  begin
    MessageBox(handle,'请指定客户选择的服务员工编号!','提示',mb_ok+mb_iconinformation);
    result := false;
    DoChange := false;
    cbb_EmpNo.SetFocus ;
    exit;
  end; }

  if mm_bookingcontent.Text ='' then
  begin
    MessageBox(handle,'请指输入客户预约的服务内容!','提示',mb_ok+mb_iconinformation);
    result := false;
    DoChange := false;
    mm_bookingcontent.SetFocus ;
    exit;
  end;

  BookingNo := trim(edt_BookingNo.Text );
  if AppendOrEdit then
  with dmod.qrydata do
  begin
    close;
    SQL.Text := 'select booking_no from CustomerServiceBooking where Booking_no=:no';
    ParamByName('no').AsString := BookingNo;
    open;
    if not eof then
    begin
      MessageBox(self.Handle ,'该客户预约编号已经存在,请重新确认!','提示',mb_ok+mb_iconinformation);
      edt_Bookingno.SetFocus ;
      result := false;
      exit;
    end;
  end;

  //try to save the information
  try
    dmod.Database.StartTransaction ;
    with dmod.qrydata do
    begin
      close;
      SQL.Text := 'delete from CustomerServiceBooking where booking_no='+#39+BookingNo+#39;
      ExecSQL;

      close;
      SQL.Text := 'insert into CustomerServiceBooking(booking_no,cus_name,emp_no,emp_name,booking_date,start_time' +
                  ',contact,booking_content,booking_remark) values (:bookingno,:cusname,:empno,:empname'+
                  ',:bookingdate,:starttime,:contact,:bookingcontent,:bookingremark)';
      ParamByName('bookingno').AsString   := trim(edt_BookingNo.Text);
      ParamByName('cusname').AsString := trim(cbb_CusName.Text );
      ParamByName('empno').AsString  := trim(cbb_Empno.Text );
      ParamByName('empname').Asstring:= trim(edt_EmpName.Text);
      ParamByName('bookingdate').AsDate  := dtp_BookingDate.Date ;
      ParamByName('starttime').AsString := trim(cbb_starttime.Text);
      ParamByName('contact').AsString := trim(edt_contact.Text );
      ParamByName('bookingcontent').AsString := mm_bookingcontent.Text;
      ParamByName('bookingremark').AsString := mm_bookingremark.Text ;
      ExecSQL;
    end;

⌨️ 快捷键说明

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