📄 u_room_bed.pas
字号:
unit U_Room_bed;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, U_Form_base, StdCtrls, Grids, DBGridEh, ExtCtrls, DB, ADODB,
Buttons;
type
TF_Room_bed = class(TF_Form_base)
Panel1: TPanel;
DBGridEh1: TDBGridEh;
Label1: TLabel;
Splitter1: TSplitter;
Q_mainRooMID: TStringField;
Q_maintype: TStringField;
Q_mainMantype: TStringField;
Q_mainPlace: TStringField;
Q_mainBedcount: TIntegerField;
Q_mainUsedbed: TIntegerField;
Panel2: TPanel;
Q_detailBedid: TStringField;
BitBtn1: TBitBtn;
GroupBox1: TGroupBox;
DBGridEh2: TDBGridEh;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
Q_mainBedSetted: TBooleanField;
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
F_Room_bed: TF_Room_bed;
implementation
uses U_data;
{$R *.dfm}
procedure TF_Room_bed.BitBtn1Click(Sender: TObject);
var I, J: integer;
begin
inherited;
if MessageDlg('真的要设置床位吗?', mtCustom, [mbOK, mbCancel], 0) = mrok then
begin
if DBGRIDEH1.SelectedRows.Count <= 0 then
begin
MessageDlg('你还没有选择要设置床位的宿舍!', mtWarning, [mbOK], 0);
Abort;
end
else
begin
for i := 0 to dbGrideh1.SelectedRows.Count - 1 do
begin
dbGrideh1.DataSource.DataSet.GotoBookmark(pointer(DBGrideh1.SelectedRows.Items[i]));
if dbGrideh1.DataSource.DataSet.Fieldbyname('BedSetted').AsBoolean then continue;
sql_s := 'update TB_Room_base set Bedsetted=1 where Roomid=''' + q_main.Fieldbyname('Roomid').AsString + '''';
Sql_exec(sql_S);
for J := 1 to dbGrideh1.DataSource.DataSet.Fieldbyname('Bedcount').AsInteger do //根据床位数生成床号
begin
if J <= 9 then //小于9时
Sql_S := 'insert into TB_Room_bed (Roomid,Bedid) values(''' + dbGrideh1.DataSource.DataSet.fieldbyname('Roomid').AsString + ''','''
+ dbGrideh1.DataSource.DataSet.fieldbyname('Roomid').AsString + '-0' + inttostr(J) + ''')'
else
Sql_s := 'insert into TB_Room_bed (Roomid,Bedid) values(''' + dbGrideh1.DataSource.DataSet.fieldbyname('Roomid').AsString + ''','''
+ dbGrideh1.DataSource.DataSet.fieldbyname('Roomid').AsString + '-' + inttostr(J) + ''')';
Sql_exec(sql_s);
end;
end;
Q_Detail.Close;
Q_detail.Open;
end;
end;
Q_main.Refresh;
end;
procedure TF_Room_bed.BitBtn3Click(Sender: TObject);
begin
inherited;
Close;
end;
procedure TF_Room_bed.FormShow(Sender: TObject);
begin
inherited;
Q_main.Open;
Q_Detail.Open; //根据床位数生成床号
end;
procedure TF_Room_bed.BitBtn2Click(Sender: TObject);
begin
inherited;
if Q_main.RecordCount <= 0 then exit;
if Q_main.FieldByName('usedBed').AsInteger > 0 then
begin
MessageDlg('此宿舍已经有人员入住,请选退房!', mtWarning, [mbOK], 0);
abort;
end;
if MessageDlg('确定要删除以前的设定吗?', mtCustom, [mbOK, mbCancel], 0) = mrok then
begin
try
begin
Sql_s := 'delete from TB_Room_bed where Roomid=''' + q_main.Fieldbyname('Roomid').AsString + '''';
Sql_exec(sql_s);
Sql_s := 'update TB_Room_base set Bedsetted=0 where Roomid=''' + q_main.Fieldbyname('Roomid').AsString + '''';
Sql_exec(sql_s);
end
except
raise;
end;
Q_Detail.Close;
Q_Detail.Open;
end;
Q_main.Refresh;
end;
initialization
RegisterClass(TF_Room_bed);
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -