📄 callouttimetablefm.pas
字号:
unit CallOutTimeTableFM;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ChildFM, StdCtrls, ExtCtrls, Buttons, Mask, dbtables;
type
Tfm_CallOutTimetable = class(Tfm_Child)
pnl_Client: TPanel;
GroupBox1: TGroupBox;
Label1: TLabel;
Label2: TLabel;
GroupBox2: TGroupBox;
GroupBox3: TGroupBox;
GroupBox4: TGroupBox;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
edt_TimesPerMonth: TEdit;
edt_MaxTimesPerDay: TEdit;
Ch_week1: TCheckBox;
Ch_week2: TCheckBox;
Ch_week3: TCheckBox;
Ch_week4: TCheckBox;
Ch_week5: TCheckBox;
Ch_week6: TCheckBox;
Ch_week7: TCheckBox;
Label6: TLabel;
Label7: TLabel;
edt_starttime_1: TMaskEdit;
edt_endtime_1: TMaskEdit;
Label8: TLabel;
edt_starttime_2: TMaskEdit;
Label9: TLabel;
edt_endtime_2: TMaskEdit;
Label10: TLabel;
edt_starttime_3: TMaskEdit;
Label11: TLabel;
edt_endtime_3: TMaskEdit;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
ch_Month1: TCheckBox;
ch_Month2: TCheckBox;
ch_Month3: TCheckBox;
ch_Month4: TCheckBox;
ch_Month5: TCheckBox;
ch_Month6: TCheckBox;
ch_Month7: TCheckBox;
ch_Month8: TCheckBox;
ch_Month9: TCheckBox;
ch_Month10: TCheckBox;
ch_Month11: TCheckBox;
ch_Month12: TCheckBox;
ch_Month13: TCheckBox;
ch_Month14: TCheckBox;
ch_Month15: TCheckBox;
ch_Month16: TCheckBox;
ch_Month17: TCheckBox;
ch_Month18: TCheckBox;
ch_Month19: TCheckBox;
ch_Month20: TCheckBox;
ch_Month21: TCheckBox;
ch_Month22: TCheckBox;
ch_Month23: TCheckBox;
ch_Month24: TCheckBox;
ch_Month25: TCheckBox;
ch_Month26: TCheckBox;
ch_Month27: TCheckBox;
ch_Month28: TCheckBox;
ch_Month29: TCheckBox;
ch_Month30: TCheckBox;
ch_Month31: TCheckBox;
Cb_ID: TComboBox;
Label12: TLabel;
Label13: TLabel;
Edt_UserType: TEdit;
Btn_AddNew: TBitBtn;
procedure FormResize(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Btn_AddNewClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure Cb_IDChange(Sender: TObject);
private
{ Private declarations }
m_iTableID : Integer;
procedure LoadCallOutTimeTable(iID: Integer);
procedure PostCallOutTimeTable(iID:Integer);
procedure DecodeWeekStr(WeekStr:string);
procedure DecodeMonthStr(MonthStr:String);
function EnCodeWeekStr:string;
function EnCodeMonthStr:string;
function GetMaxID : Integer;
procedure LoadID;
public
{ Public declarations }
end;
var
fm_CallOutTimetable: Tfm_CallOutTimetable;
implementation
uses CommonDataDM,SystemDM;
{$R *.DFM}
procedure Tfm_CallOutTimeTable.DecodeWeekStr(WeekStr:string);
var
i,m:integer;
TempComponent:TComponent;
begin
WeekStr:=SysDM.SelfStrCat(weekstr,7,'0');
for i:=0 to ComponentCount-1 do
begin
TempComponent := Components[i];
if (TempComponent is TCheckbox) and (Pos('week',TempComponent.Name)>0) then
begin
m:=TempComponent.Tag;
if WeekStr[m]='1' then
(TempComponent as TcheckBox).checked:=true
else
(TempComponent as TcheckBox).checked:=False;
end;
end;
end;
procedure Tfm_CallOutTimeTable.DecodeMonthStr(MonthStr:String);
var
i,m:integer;
TempComponent:TComponent;
begin
MonthStr:=SysDM.SelfStrCat(Monthstr,31,'0');
for i:=0 to ComponentCount-1 do
begin
TempComponent := Components[i];
if (TempComponent is TCheckbox) and (Pos('Month',TempComponent.Name)>0) then
begin
m:=TempComponent.Tag;
if MonthStr[m]='1' then
(TempComponent as TcheckBox).checked:=true
else
(TempComponent as TcheckBox).checked:=False;
end;
end;
end;
function Tfm_CallOutTimetable.EnCodeWeekStr:string;
var
i,m:integer;
TempComponent:TComponent;
sRet:String;
begin
sRet:='0000000';
for i:=0 to ComponentCount-1 do
begin
TempComponent := Components[i];
if (TempComponent is TCheckbox) and (Pos('week',TempComponent.Name)>0) then
begin
m:=TempComponent.Tag;
if (TempComponent as TcheckBox).checked=true then
sRet[m]:='1';
end;
end;
result:=sRet;
end;
function Tfm_CallOutTimetable.EnCodeMonthStr:string;
var
i,m:integer;
TempComponent:TComponent;
sRet:String;
begin
sRet:='0000000000000000000000000000000';
for i:=0 to ComponentCount-1 do
begin
TempComponent := Components[i];
if (TempComponent is TCheckbox) and (Pos('Month',TempComponent.Name)>0) then
begin
m:=TempComponent.Tag;
if (TempComponent as TcheckBox).checked=true then
sRet[m]:='1';
end;
end;
result:=sRet;
end;
procedure Tfm_CallOutTimeTable.LoadCallOutTimeTable(iID: Integer);
begin
with DM_CommonData.Qr_CallOutTimeTable do
begin
Close;
if iID = -1 then
Sql.Text :='Select * from CalloutTimeTable where ID=1'
else
Sql.Text :=Format('Select * from CalloutTimeTable where ID = %d',[iID]);
Prepare;
Open;
//if not IsEmpty then
//begin
edt_TimesPerMonth.Text := FieldbyName('TimesPerMonth').AsString;
edt_MaxTimesPerDay.Text:= FieldbyName('MaxTimesPerDay').AsString;
edt_StartTime_1.Text := FieldbyName('StartTime_1').AsString;
edt_StartTime_2.Text := FieldbyName('StartTime_2').AsString;
edt_StartTime_3.Text := FieldbyName('StartTime_3').AsString;
edt_EndTime_1.Text := FieldbyName('EndTime_1').AsString;
edt_EndTime_2.Text := FieldbyName('EndTime_2').AsString;
edt_EndTime_3.Text := FieldbyName('EndTime_3').AsString;
Edt_UserType.Text := FieldByName('Note').AsString;
DecodeWeekStr(FieldbyName('WeekDayEnable').AsString);
DecodeMonthStr(FieldbyName('MonthDayEnable').AsString);
//end;
end;
end;
procedure Tfm_CallOutTimetable.PostCallOutTimeTable(iID: Integer);
begin
with DM_CommonData.Qr_CallOutTimeTable do
begin
Close;
Sql.Text :=Format('Select * from CallOutTimeTable where ID= %d',[iID]);
Prepare;
Open;
if not IsEmpty then
Edit
else
begin
Append;
FieldbyName('ID').AsInteger:=iID;
end;
FieldbyName('TimesPerMonth').AsString :=edt_TimesPerMonth.Text;
FieldbyName('MaxTimesPerDay').AsString:=edt_MaxTimesPerDay.Text;
FieldbyName('StartTime_1').AsString :=edt_StartTime_1.Text;
FieldbyName('StartTime_2').AsString :=edt_StartTime_2.Text;
FieldbyName('StartTime_3').AsString :=edt_StartTime_3.Text;
FieldbyName('EndTime_1').AsString :=edt_EndTime_1.Text;
FieldbyName('EndTime_2').AsString :=edt_EndTime_2.Text;
FieldbyName('EndTime_3').AsString :=edt_EndTime_3.Text;
FieldbyName('WeekDayEnable').AsString :=EnCodeWeekStr;
FieldbyName('MonthDayEnable').AsString :=EnCodeMonthStr;
FieldbyName('Note').AsString := Edt_userType.Text ;
Post;
Close;
end;
end;
procedure Tfm_CallOutTimetable.FormResize(Sender: TObject);
begin
inherited;
pnl_Client.Top := (Height - pnl_Client.Height) div 2;
pnl_Client.Left := (Width - pnl_Client.Width) div 2;
end;
procedure Tfm_CallOutTimetable.BitBtn1Click(Sender: TObject);
begin
inherited;
PostCallOutTimeTable(StrToInt(Cb_ID.Text));
Btn_AddNew.Enabled := True;
end;
procedure Tfm_CallOutTimetable.BitBtn2Click(Sender: TObject);
begin
inherited;
close;
end;
procedure Tfm_CallOutTimetable.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
inherited;
FM_CallOutTimeTable:=nil;
end;
function Tfm_CallOutTimetable.GetMaxID: Integer;
begin
with TQuery.Create(nil)do
try
DataBaseName := SysDM.DBMain.DatabaseName;
Close;
Sql.Text := 'Select ID from CallOutTimeTable order by ID Desc';
Open;
First;
Result := FieldByName('ID').AsInteger + 1;
finally
Free;
end;
end;
procedure Tfm_CallOutTimetable.Btn_AddNewClick(Sender: TObject);
begin
inherited;
m_iTableID := GetMaxID;
CB_ID.Items.Add(IntToStr(m_iTableID));
CB_ID.ItemIndex := Cb_ID.Items.Count - 1;
LoadCallOutTimeTable(m_iTableID);
Btn_AddNew.Enabled := False;
end;
procedure Tfm_CallOutTimetable.FormShow(Sender: TObject);
begin
inherited;
LoadID;
LoadCallOutTimeTable(StrToInt(Cb_ID.Text));
end;
procedure Tfm_CallOutTimetable.LoadID;
var
I: Integer;
begin
with TQuery.Create(nil)do
try
DataBaseName := SysDM.DBMain.DatabaseName;
Close;
Sql.Text := 'Select ID From CallOutTimeTable Order By id';
Open;
for I := 0 to RecordCount - 1 do
begin
Cb_ID.Items.Add(FieldByName('ID').AsString);
Next;
end;
Cb_ID.ItemIndex := 0;
finally
Free;
end;
end;
procedure Tfm_CallOutTimetable.Cb_IDChange(Sender: TObject);
begin
inherited;
LoadCallOutTimeTable(StrToInt(Cb_ID.Text));
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -