📄 unit_servicebooking.pas
字号:
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 + -