📄 ttaskform.cpp
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#include <DateUtils.hpp>
#pragma hdrstop
#include "TTaskForm.h"
#include "ClientConnect.h"
#include "TMainForm.h"
#include "TRunForm.h"
#include "BackupTask.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "CSPIN"
#pragma resource "*.dfm"
//---------------------------------------------------------------------------
__fastcall TTaskForm::TTaskForm(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void TTaskForm::ChangeBox(int nPage)
{
switch (nPage)
{
case 1:
MonthBox->Visible = TRUE;
DayBox->Visible = FALSE;
WeekBox->Visible = FALSE;
break;
case 2:
WeekBox->Visible = TRUE;
MonthBox->Visible = FALSE;
DayBox->Visible = FALSE;
break;
case 3:
DayBox->Visible = TRUE;
MonthBox->Visible = FALSE;
WeekBox->Visible = FALSE;
break;
}
}
void __fastcall TTaskForm::OnCycleClick(TObject *Sender)
{
ChangeBox(((TRadioButton *)Sender)->Tag);
}
//---------------------------------------------------------------------------
void __fastcall TTaskForm::FormCreate(TObject *Sender)
{
rbMonth->Checked = TRUE;
rbMonday->Checked = TRUE;
Sender = rbMonday;
ChangeBox(1);
ClientConnect conn;
AnsiString strIP;
ActiveTime->DateTime = Now();
BeginDate->DateTime = Now();
strIP.sprintf(g_IPFormat , g_nIP1 , g_nIP2 , g_nIP3 , g_nIP4 );
ClientConnect ServerConnect;
if(g_nIP1 == 0)
{
MessageBox(Handle , "服务器IP地址没有指定" , "提示" , MB_OK);
btnOk->Enabled = FALSE;
return ;
}
if(!ServerConnect.Connect(strIP.c_str()))
{
MessageBox(Handle , "不能连接服务器" , "提示" , MB_OK);
btnOk->Enabled = FALSE;
return ;
}
StringArray arrDatabase;
if(ServerConnect.GetDatabase(arrDatabase))
{
StringArray::iterator i;
for(i = arrDatabase.begin() ; i != arrDatabase.end() ; i++)
{
DatabaseList->Items->Add((*i).c_str());
}
}
else
{
MessageBox(Handle , ServerConnect.GetError().c_str() , "提示" , MB_OK);
}
}
//---------------------------------------------------------------------------
void __fastcall TTaskForm::btnOkClick(TObject *Sender)
{
if(DatabaseList->ItemIndex < 0)
{
MessageBox(Handle , "请选择要备份的数据库" , "提示" , MB_OK);
ModalResult = mrNone;
return;
}
BackupTask task;
task.SetDatabase(GetDatabase());
task.SetCycleType(GetCycleType());
task.SetCycleCount(GetCycleCount());
task.SetDayCount(GetDayCount());
task.SetActiveDate(GetBeginDate());
task.SetActiveTime(GetBackupTime());
if(task.GetNextDate() < Now())
{
MessageBox(Handle , "起始时间加上一个备份周期不能小于当前时间" , "提示" , MB_OK);
ModalResult = mrNone;
BeginDate->SetFocus();
return;
}
}
//---------------------------------------------------------------------------
void __fastcall TTaskForm::OnDayClick(TObject *Sender)
{
m_pSelectDay =(TRadioButton *) Sender;
}
//---------------------------------------------------------------------------
void __fastcall TTaskForm::DatabaseListClick(TObject *Sender)
{
txtDatabase->Caption = DatabaseList->Items->Strings[DatabaseList->ItemIndex];
}
//---------------------------------------------------------------------------
int TTaskForm::GetCycleType()
{
if(rbDay->Checked)
{
return 1;
}
else
if(rbWeek->Checked)
{
return 2;
}
else
if(rbMonth->Checked)
{
return 3;
}
}
int TTaskForm::GetCycleCount()
{
if(rbDay->Checked)
{
return txtDayNum->Text.ToInt();
}
else
if(rbWeek->Checked)
{
return txtWeekNum->Text.ToInt();
}
else
if(rbMonth->Checked)
{
return txtMonthNum->Text.ToInt();
}
}
int TTaskForm::GetDayCount()
{
if(rbDay->Checked)
{
return 0;
}
else
if(rbWeek->Checked)
{
return m_pSelectDay->Tag;
}
else
if(rbMonth->Checked)
{
return txtMonthDayNum->Text.ToInt();
}
}
//---------------------------------------------------------------------------
AnsiString TTaskForm::GetDatabase()
{
return DatabaseList->Items->Strings[DatabaseList->ItemIndex];
}
void TTaskForm::SetCycle(int nType , int nCycleCount , int nDayCount)
{
switch(nType)
{
case 1:
if(nCycleCount > 0 && nCycleCount < 8)
{
txtDayNum->Text = IntToStr(nCycleCount);
rbDay->Checked = TRUE;
}
break;
case 2:
if(nCycleCount > 0 && nCycleCount < 6)
{
switch (nDayCount)
{
case 1:
rbMonday->Checked = TRUE;
break;
case 2:
rbTuesday->Checked = TRUE;
break;
case 3:
rbWednesday->Checked = TRUE;
break;
case 4:
rbThursday->Checked = TRUE;
break;
case 5:
rbFriday->Checked = TRUE;
break;
case 6:
rbSaturday->Checked = TRUE;
break;
case 7:
rbSunday->Checked = TRUE;
break;
default:
return;
}
txtWeekNum->Text = IntToStr(nCycleCount);
rbWeek->Checked = TRUE;
}
break;
case 3:
if(nCycleCount > 0 && nCycleCount < 12)
{
if(nDayCount > 0 && nDayCount < 29)
{
txtMonthDayNum->Text = IntToStr(nDayCount);
txtMonthNum->Text = IntToStr(nCycleCount);
}
}
break;
}
}
TDateTime TTaskForm::GetBackupTime()
{
return TimeOf(ActiveTime->DateTime);
}
void TTaskForm::SetBackupTime(TDateTime &value)
{
ActiveTime->DateTime = TimeOf(value);
}
void TTaskForm::SetDatabase(AnsiString & strDatabase)
{
int i;
for(i = 0 ; i < DatabaseList->Items->Count ; i++)
{
if(DatabaseList->Items->Strings[i] == strDatabase)
{
DatabaseList->ItemIndex = i;
txtDatabase->Caption = strDatabase;
}
}
}
TDateTime TTaskForm::GetBeginDate()
{
return DateOf(BeginDate->DateTime);
}
void TTaskForm::SetBeginDate(TDateTime & datBegin)
{
BeginDate->DateTime = DateOf(datBegin);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -