📄 romminput.pas
字号:
unit rommInput;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, Grids, DBGrids, DBTables, DB, ComCtrls;
type
TRoomInputForm = class(TForm)
GroupBox1: TGroupBox;
Label1: TLabel;
Label11: TLabel;
Label9: TLabel;
Label3: TLabel;
Label4: TLabel;
Label12: TLabel;
Dinner_price: TEdit;
People: TEdit;
NO: TEdit;
btnOk: TButton;
btnClear: TButton;
DataSource1: TDataSource;
RoomTable: TTable;
RoomQuery: TQuery;
SaleDBGrid: TDBGrid;
RadioGroup1: TRadioGroup;
BudgetRadio: TRadioButton;
IncomeRadio: TRadioButton;
TaxRadio: TRadioButton;
DiscountRadio: TRadioButton;
CostRadio: TRadioButton;
ProfitRadio: TRadioButton;
birthday: TDateTimePicker;
Label2: TLabel;
Budget: TEdit;
Label5: TLabel;
Income: TEdit;
Label6: TLabel;
Label7: TLabel;
Discount: TEdit;
Label8: TLabel;
Room_NO: TEdit;
Romm_price: TEdit;
Tax: TEdit;
Profit: TEdit;
Label10: TLabel;
Pay_type: TEdit;
Cost: TEdit;
Service_price: TEdit;
Label13: TLabel;
Label14: TLabel;
Label15: TLabel;
procedure btnClearClick(Sender: TObject);
procedure BudgetRadioClick(Sender: TObject);
procedure TaxRadioClick(Sender: TObject);
procedure DiscountRadioClick(Sender: TObject);
procedure CostRadioClick(Sender: TObject);
procedure ProfitRadioClick(Sender: TObject);
procedure btnOkClick(Sender: TObject);
procedure IncomeRadioClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
function IsEmpty:boolean;
end;
var
RoomInputForm: TRoomInputForm;
implementation
{$R *.dfm}
function TRoomInputForm.IsEmpty:boolean;
begin
if (NO.Text = '') or
(Room_NO.Text = '') or
(People.Text = '') or
(Dinner_price.Text = '') or
(Romm_price.Text = '') or
(Budget.Text = '') or
(Income.Text = '') or
(Tax.Text = '') or
(Discount.Text = '') or
(Profit.Text = '') or
(Service_price.Text = '') or
(Cost.Text = '') or
(Pay_type.Text = '') then result := true
else result := false;
end;
procedure TRoomInputForm.btnClearClick(Sender: TObject);
begin
NO.Text := '';
Room_NO.Text := '';
People.Text := '';
Dinner_price.Text := '';
Romm_price.Text := '';
Budget.Text := '';
Income.Text := '';
Tax.Text := '';
Discount.Text := '';
Profit.Text := '';
Service_price.Text := '';
Cost.Text := '';
Pay_type.Text := '';
end;
procedure TRoomInputForm.BudgetRadioClick(Sender: TObject);
begin
//设置数据源为query
DataSource1.DataSet := roomQuery;
roomQuery.Close;
roomQuery.SQL.Clear;
roomQuery.SQL.Add('select * from room order by Budget');
try
roomQuery.Open;
except
roomQuery.ExecSQL;
end;
end;
procedure TRoomInputForm.TaxRadioClick(Sender: TObject);
begin
//设置数据源为query
DataSource1.DataSet := roomQuery;
roomQuery.Close;
roomQuery.SQL.Clear;
roomQuery.SQL.Add('select * from room order by Tax');
try
roomQuery.Open;
except
roomQuery.ExecSQL;
end;
end;
procedure TRoomInputForm.DiscountRadioClick(Sender: TObject);
begin
//设置数据源为query
DataSource1.DataSet := roomQuery;
roomQuery.Close;
roomQuery.SQL.Clear;
roomQuery.SQL.Add('select * from room order by Discount');
try
roomQuery.Open;
except
roomQuery.ExecSQL;
end;
end;
procedure TRoomInputForm.CostRadioClick(Sender: TObject);
begin
//设置数据源为query
DataSource1.DataSet := roomQuery;
roomQuery.Close;
roomQuery.SQL.Clear;
roomQuery.SQL.Add('select * from room order by Cost');
try
roomQuery.Open;
except
roomQuery.ExecSQL;
end;
end;
procedure TRoomInputForm.ProfitRadioClick(Sender: TObject);
begin
//设置数据源为query
DataSource1.DataSet := roomQuery;
roomQuery.Close;
roomQuery.SQL.Clear;
roomQuery.SQL.Add('select * from room order by Profit');
try
roomQuery.Open;
except
roomQuery.ExecSQL;
end;
end;
procedure TRoomInputForm.btnOkClick(Sender: TObject);
var
A,B,C,D,E,F,G,H,I,J,K,L,M:Integer;
begin
if IsEmpty then begin
showmessage('数据不许为空');
NO.SetFocus;
end
else begin
//设置数据源为table
DataSource1.DataSet := RoomTable;
//读入单号
A := StrToInt(NO.Text);
//读入房台号
B := StrToInt(Room_NO.Text);
//读入人数
C := StrToInt(People.Text);
//读入酒菜
D := StrToInt(Dinner_price.Text);
//读入房间费
E := StrToInt(Romm_price.Text);
//读入应收金额
F := StrToInt(Budget.Text);
//读入实收金额
G := StrToInt(Income.Text);
//计算税收金额
//税率可以由管理员设定
H := Round(G*0.3);
//更新税收金额框内容
Tax.Text := IntToStr(H);
//读入提成金额
I := StrToInt(Discount.Text);
//计算毛利
J := G - H - I;
//更新毛利框内容
Profit.Text := IntToStr(J);
//读入服务费
K := StrtoInt(Service_price.Text);
//读入成本
L := StrtoInt(Cost.Text);
//读入方式
M := StrtoInt(Pay_type.Text);
//对输入数据进行判断
if F<G then begin
messageDlg('请确定实收金额应该比应收金额小!',mtWarning,[mbOk],0);
Exit;
end;
//增加新记录
RoomTable.Append;
RoomTable.FieldValues['NO'] := A;
RoomTable.FieldValues['Room_NO'] := B;
RoomTable.FieldValues['People'] := C;
RoomTable.FieldValues['Dinner_price'] := D;
RoomTable.FieldValues['Romm_price'] := E;
RoomTable.FieldValues['Budget'] := F;
RoomTable.FieldValues['Income'] := G;
RoomTable.FieldValues['Tax'] := H;
RoomTable.FieldValues['Discount'] := I;
RoomTable.FieldValues['Profit'] := J;
RoomTable.FieldValues['Service_price'] := K;
RoomTable.FieldValues['Cost'] := L;
RoomTable.FieldValues['Pay_type'] := M;
//提交操作
RoomTable.Post;
end;
end;
procedure TRoomInputForm.IncomeRadioClick(Sender: TObject);
begin
//设置数据源为query
DataSource1.DataSet := roomQuery;
roomQuery.Close;
roomQuery.SQL.Clear;
roomQuery.SQL.Add('select * from room order by Income');
try
roomQuery.Open;
except
roomQuery.ExecSQL;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -