📄 unit3.pas
字号:
unit Unit3;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, StdCtrls, Buttons, DBCtrls, Mask, MyClass, Common, DB,
DBTables, ADODB;
type
TfmAdd = class(TForm)
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
PageAdd: TPageControl;
tabPlan: TTabSheet;
tabLeave: TTabSheet;
tabStuff: TTabSheet;
Label4: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
DateTimePicker4: TDateTimePicker;
DateTimePicker6: TDateTimePicker;
tabRoom: TTabSheet;
tabCaller: TTabSheet;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
DateTimePicker7: TDateTimePicker;
DateTimePicker8: TDateTimePicker;
Label12: TLabel;
Label14: TLabel;
Label15: TLabel;
DateTimePicker9: TDateTimePicker;
DateTimePicker10: TDateTimePicker;
Label16: TLabel;
DateTimePicker11: TDateTimePicker;
DateTimePicker12: TDateTimePicker;
Label17: TLabel;
DateTimePicker13: TDateTimePicker;
DateTimePicker14: TDateTimePicker;
Label18: TLabel;
Label19: TLabel;
Label20: TLabel;
Label21: TLabel;
Label22: TLabel;
Label23: TLabel;
Label25: TLabel;
Label26: TLabel;
Label27: TLabel;
Edit1: TEdit;
ComboBox3: TComboBox;
ComboBox4: TComboBox;
ComboBox5: TComboBox;
ComboBox6: TComboBox;
ComboBox7: TComboBox;
ComboBox8: TComboBox;
ComboBox9: TComboBox;
ComboBox10: TComboBox;
Edit4: TEdit;
Edit5: TEdit;
Edit6: TEdit;
ComboBox11: TComboBox;
Edit8: TEdit;
ComboBox12: TComboBox;
tbTemp: TADOTable;
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure FormShow(Sender: TObject);
private
{ Private declarations }
procedure GetCompanyName(var cbxCompanyName:TComboBox);
procedure GetCompanyNumber(var cbxCompanyNumber:TComboBox);
procedure GetStewardName(var cbxStewardName:TComboBox);
procedure GetRoomNumber(var cbxRoomNumber:TComboBox);
procedure GetTrain(var cbxTrain:TComboBox);
procedure ActiveTabPlan;
procedure ActiveTabLeave;
procedure ActiveTabStuff;
procedure ActiveTabRoom;
procedure ActiveTabCaller;
public
{ Public declarations }
function ValidCheck:boolean;
end;
var
fmAdd: TfmAdd;
implementation
{$R *.dfm}
Uses Unit1;
function TfmAdd.ValidCheck:boolean;
var valid:boolean;
begin
valid:=true;
Result:=valid;
end;
procedure TfmAdd.BitBtn1Click(Sender: TObject);
var TimeIn,TimeOut,FirstCall,LaterCall:TDateTime;
find:boolean;
i:integer;
begin
//值有效性检查
if(not ValidCheck) then
Exit;
//添加或修改
if(PageAdd.ActivePage=tabPlan) then begin //添加或修改叫班计划
TimeOut:=DateTimePicker4.DateTime-trunc(DateTimePicker4.DateTime);
FirstCall:=DateTimePicker6.DateTime;
EnterCriticalSection(Critical1); //进入临界段
fmMain.tbPlan2.RecNo:=fmMain.tbPlan.RecNo; //设置当前项
if(IsAddRecord) then
fmMain.tbPlan2.Append;
fmMain.tbPlan2.Edit;
fmMain.tbPlan2.FieldByName('车次').AsString:=ComboBox4.Text;
fmMain.tbPlan2.FieldByName('开车时间').AsString:=FormatDateTime('hh:mm',TimeOut);
fmMain.tbPlan2.FieldByName('计划叫班时间').AsString:=FormatDateTime('hh:mm',FirstCall);
fmMain.tbPlan2.FieldByName('房间号码').AsString:=ComboBox3.Text;
fmMain.tbPlan2.FieldByName('开启').AsBoolean:=true;
fmMain.tbPlan2.FieldByName('晚点时间').AsInteger:=0;
//当添加新记录时初始化添加状态
if(IsAddRecord) then
fmMain.tbPlan2.FieldByName('状态').AsInteger:=3; //csWaitFirst;
try
fmMain.tbPlan2.Post;
except
fmMain.tbPlan2.Delete;
//MessageDlg('叫班时间不允许重复,请更改叫班时间',mtInformation,[mbYes],0);
end;
if(fmMain.tbPlan.Active)then begin
i:=fmMain.tbPlan2.FieldByName('序号').AsInteger;
fmMain.tbPlan.Close; //刷新显示
fmMain.tbPlan.Open;
fmMain.tbPlan.Sort:='计划叫班时间 ASC';
fmMain.tbPlan.Locate('序号',i,[loPartialKey]);
end;
LeaveCriticalSection(Critical1);//退出临界段
//fmMain.DBGrid1.Enabled:=false;
//fmMain.DBGrid1.Enabled:=true;
//Caller.InitQueue;
end
else if(PageAdd.ActivePage=tabLeave) then begin //添加或修改住离寓登记
TimeIn:=trunc(DateTimePicker7.DateTime)+(DateTimePicker8.DateTime-trunc(DateTimePicker8.DateTime));
TimeOut:=trunc(DateTimePicker9.DateTime)+(DateTimePicker10.DateTime-trunc(DateTimePicker10.DateTime));
FirstCall:=trunc(DateTimePicker11.DateTime)+(DateTimePicker12.DateTime-trunc(DateTimePicker12.DateTime));
LaterCall:=trunc(DateTimePicker13.DateTime)+(DateTimePicker14.DateTime-trunc(DateTimePicker14.DateTime));
fmMain.tbLeave.Edit;
fmMain.tbLeave.FieldByName('单位名称').AsString:=ComboBox5.Text;
fmMain.tbLeave.FieldByName('姓名').AsString:=ComboBox6.Text;
fmMain.tbLeave.FieldByName('房间号').AsString:=ComboBox7.Text;
fmMain.tbLeave.FieldByName('出乘车次').AsString:=ComboBox8.Text;
fmMain.tbLeave.FieldByName('入寓时间').AsDateTime:=TimeIn;
fmMain.tbLeave.FieldByName('开车时间').AsDateTime:=TimeOut;
fmMain.tbLeave.FieldByName('一叫时间').AsDateTime:=FirstCall;
fmMain.tbLeave.FieldByName('三催时间').AsDateTime:=LaterCall;
fmMain.tbLeave.Post;
end
else if(PageAdd.ActivePage=tabStuff) then begin //添加或修改住寓人员
if(Caller.EditType=etAdd) then begin //Add
fmMain.tbStuff.AppendRecord([ComboBox9.Text,ComboBox10.Text,
Edit4.Text,Edit5.Text]);
end
else begin //Modify
fmMain.tbStuff.Edit;
fmMain.tbStuff.FieldByName('单位编号').AsString:=ComboBox9.Text;
fmMain.tbStuff.FieldByName('单位名称').AsString:=ComboBox10.Text;
fmMain.tbStuff.FieldByName('乘务员编号').AsString:=Edit4.Text;
fmMain.tbStuff.FieldByName('乘务员姓名').AsString:=Edit5.Text;
fmMain.tbStuff.Post;
end;
end
else if(PageAdd.ActivePage=tabRoom) then begin //添加或修改房间
if(Caller.EditType=etAdd) then begin //Add
find:=false;
for i:=0 to ComboBox11.Items.Count-1 do
if(ComboBox11.Text=ComboBox11.Items[i]) then begin
find:=true;
Break;
end;
if(not find) then begin
MessageBox(fmAdd.Handle,'端口号不存在','错误',MB_OK);
Exit;
end;
fmMain.tbRoom.AppendRecord([strtoint(ComboBox11.Text),Edit6.Text]);
end
else begin //Modify
fmMain.tbRoom.Edit;
fmMain.tbRoom.FieldByName('房间号码').AsString:=Edit6.Text;
fmMain.tbRoom.Post;
end;
end
else if(PageAdd.ActivePage=tabCaller) then begin//添加或修改叫班员
if(Caller.EditType=etAdd) then begin //Add
fmMain.tbCaller.AppendRecord([Edit8.Text,ComboBox12.Text,Edit1.Text]);
end
else begin //Modify
fmMain.tbCaller.Edit;
fmMain.tbCaller.FieldByName('姓名').AsString:=Edit8.Text;
fmMain.tbCaller.FieldByName('类型').AsString:=ComboBox12.Text;
fmMain.tbCaller.FieldByName('密码').AsString:=Edit1.Text;
fmMain.tbCaller.Post;
end;
end;
end;
procedure TfmAdd.BitBtn2Click(Sender: TObject);
begin
fmAdd.Hide;
end;
procedure TfmAdd.GetCompanyName(var cbxCompanyName:TComboBox);
begin
if(tbTemp.Active) then
tbTemp.Close;
tbTemp.TableName:='Stuff';
tbTemp.Open;
cbxCompanyName.Clear;
cbxCompanyName.Items.Add(tbTemp.FieldByName('单位名称').AsString);
tbTemp.Next;
while(not tbTemp.Eof) do begin
cbxCompanyName.Items.Add(tbTemp.FieldByName('单位名称').AsString);
tbTemp.Next;
end;
cbxCompanyName.ItemIndex:=0;
tbTemp.Close;
end;
procedure TfmAdd.GetCompanyNumber(var cbxCompanyNumber:TComboBox);
begin
if(tbTemp.Active) then
tbTemp.Close;
tbTemp.TableName:='Stuff';
tbTemp.Open;
cbxCompanyNumber.Clear;
cbxCompanyNumber.Items.Add(tbTemp.FieldByName('单位编号').AsString);
tbTemp.Next;
while(not tbTemp.Eof) do begin
cbxCompanyNumber.Items.Add(tbTemp.FieldByName('单位编号').AsString);
tbTemp.Next;
end;
cbxCompanyNumber.ItemIndex:=0;
tbTemp.Close;
end;
procedure TfmAdd.GetStewardName(var cbxStewardName:TComboBox);
begin
if(tbTemp.Active) then
tbTemp.Close;
tbTemp.TableName:='Stuff';
tbTemp.Open;
cbxStewardName.Clear;
cbxStewardName.Items.Add(tbTemp.FieldByName('乘务员姓名').AsString);
tbTemp.Next;
while(not tbTemp.Eof) do begin
cbxStewardName.Items.Add(tbTemp.FieldByName('乘务员姓名').AsString);
tbTemp.Next;
end;
cbxStewardName.ItemIndex:=0;
tbTemp.Close;
end;
procedure TfmAdd.GetRoomNumber(var cbxRoomNumber:TComboBox);
begin
if(tbTemp.Active) then
tbTemp.Close;
tbTemp.TableName:='Room';
tbTemp.Open;
cbxRoomNumber.Clear;
cbxRoomNumber.Items.Add(tbTemp.FieldByName('房间号码').AsString);
tbTemp.Next;
while(not tbTemp.Eof) do begin
cbxRoomNumber.Items.Add(tbTemp.FieldByName('房间号码').AsString);
tbTemp.Next;
end;
cbxRoomNumber.ItemIndex:=0;
tbTemp.Close;
end;
procedure TfmAdd.GetTrain(var cbxTrain:TComboBox);
begin
if(tbTemp.Active) then
tbTemp.Close;
tbTemp.TableName:='CallPlan';
tbTemp.Open;
cbxTrain.Clear;
cbxTrain.Items.Add(tbTemp.FieldByName('车次').AsString);
tbTemp.Next;
while(not tbTemp.Eof) do begin
cbxTrain.Items.Add(tbTemp.FieldByName('车次').AsString);
tbTemp.Next;
end;
cbxTrain.ItemIndex:=0;
tbTemp.Close;
end;
procedure TfmAdd.ActiveTabPlan;
begin
if(Caller.EditType=etAdd) then begin //添加计划
//单位名称
//GetCompanyName(ComboBox1);
//姓名
//GetStewardName(ComboBox2);
//房间号码
GetRoomNumber(ComboBox3);
//出乘车次
GetTrain(ComboBox4);
//
DateTimePicker4.Time:=Time;
DateTimePicker6.Time:=Time;
end
else begin //修改计划
ComboBox3.Text:=fmMain.tbPlan.FieldByName('房间号码').AsString;
ComboBox4.Text:=fmMain.tbPlan.FieldByName('车次').AsString;
DateTimePicker4.DateTime:=fmMain.tbPlan.FieldByName('开车时间').AsDateTime;
DateTimePicker6.DateTime:=fmMain.tbPlan.FieldByName('计划叫班时间').AsDateTime;
end;
end;
procedure TfmAdd.ActiveTabLeave;
begin
if(Caller.EditType=etAdd) then begin //添加
//单位名称
GetCompanyName(ComboBox5);
//姓名
GetStewardName(ComboBox6);
//房间号码
GetRoomNumber(ComboBox7);
//出乘车次
GetTrain(ComboBox8);
//
DateTimePicker7.Date:=Date;
DateTimePicker8.Time:=Time;
DateTimePicker9.Date:=Date;
DateTimePicker10.Time:=Time;
DateTimePicker11.Time:=Time;
DateTimePicker12.Time:=Time;
DateTimePicker13.Date:=Date;
DateTimePicker14.Time:=Time;
end
else begin //修改
ComboBox5.Text:=fmMain.tbLeave.FieldByName('单位名称').AsString;
ComboBox6.Text:=fmMain.tbLeave.FieldByName('姓名').AsString;
ComboBox7.Text:=fmMain.tbLeave.FieldByName('房间号').AsString;
ComboBox8.Text:=fmMain.tbLeave.FieldByName('出乘车次').AsString;
DateTimePicker7.DateTime:=fmMain.tbLeave.FieldByName('入寓时间').AsDateTime;
DateTimePicker8.DateTime:=fmMain.tbLeave.FieldByName('入寓时间').AsDateTime;
DateTimePicker9.DateTime:=fmMain.tbLeave.FieldByName('开车时间').AsDateTime;
DateTimePicker10.DateTime:=fmMain.tbLeave.FieldByName('开车时间').AsDateTime;
DateTimePicker11.DateTime:=fmMain.tbLeave.FieldByName('一叫时间').AsDateTime;
DateTimePicker12.DateTime:=fmMain.tbLeave.FieldByName('一叫时间').AsDateTime;
DateTimePicker13.DateTime:=fmMain.tbLeave.FieldByName('三催时间').AsDateTime;
DateTimePicker14.DateTime:=fmMain.tbLeave.FieldByName('三催时间').AsDateTime;
end;
end;
procedure TfmAdd.ActiveTabStuff;
begin
if(Caller.EditType=etAdd) then begin //添加
//单位编号
GetCompanyNumber(ComboBox9);
//单位名称
GetCompanyName(ComboBox10);
//
Edit4.Text:='';
Edit5.Text:='';
end
else begin //修改
ComboBox9.Text:=fmMain.tbStuff.FieldByName('单位编号').AsString;
ComboBox10.Text:=fmMain.tbStuff.FieldByName('单位名称').AsString;
Edit4.Text:=fmMain.tbStuff.FieldByName('乘务员编号').AsString;
Edit5.Text:=fmMain.tbStuff.FieldByName('乘务员姓名').AsString;
end;
end;
procedure TfmAdd.ActiveTabRoom;
begin
if(Caller.EditType=etAdd) then begin //添加
Edit6.Text:='';
end
else begin //修改
Edit6.Text:=fmMain.tbRoom.FieldByName('房间号码').AsString;
end;
end;
procedure TfmAdd.ActiveTabCaller;
begin
if(Caller.EditType=etAdd) then begin //添加
Edit8.Text:='';
Edit1.Text:='';
end
else begin //修改
Edit8.Text:=fmMain.tbCaller.FieldByName('姓名').AsString;
ComboBox12.Text:=fmMain.tbCaller.FieldByName('类型').AsString;
Edit1.Text:=fmMain.tbCaller.FieldByName('密码').AsString;
end;
end;
procedure TfmAdd.FormShow(Sender: TObject);
begin
if(PageAdd.ActivePage=tabPlan) then
ActiveTabPlan
else if(PageAdd.ActivePage=tabLeave) then
ActiveTabLeave
else if(PageAdd.ActivePage=tabStuff) then
ActiveTabStuff
else if(PageAdd.ActivePage=tabRoom) then
ActiveTabRoom
else if(PageAdd.ActivePage=tabCaller) then
ActiveTabCaller;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -