📄 setvacedit.cpp
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "SetVacEdit.h"
#include "SetVac.h"
#include "Public.h"
#include "DM.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "Register"
#pragma resource "*.dfm"
TfrmSetVacEdit *frmSetVacEdit;
//---------------------------------------------------------------------------
__fastcall TfrmSetVacEdit::TfrmSetVacEdit(TComponent* Owner)
: TfrmRegister(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TfrmSetVacEdit::LoadData(void)
{
CmbEmployee->Text="";
CmbTimeMode->Text="";
CmbBeginTime->Text="";
CmbEndTime->Text="";
CmbTimePos->Text="";
Memo->Clear();
OpenSQL(QurFree,"select * from Employee");
CmbEmployee->Items->Clear();
if (QurFree->RecordCount>0)
{
QurFree->First();
while (!QurFree->Eof)
{
CEmp = new cEmployee;
CEmp->iID = QurFree->FieldByName("EmployeeID")->AsInteger ;
CEmp->sName = QurFree->FieldByName("Name")->AsString ;
CmbEmployee->Items->AddObject(CEmp->sName,CEmp );
QurFree->Next();
}
}
int iTimePosCount;
iTimePosCount = GetTimePosCount();
CmbTimePos->Items->Clear();
for(int i=1;i<=iTimePosCount;i++)
{
CmbTimePos->Items->Add("时间段"+IntToStr(i));
}
CmbTimePos->Items->Add("全天");
CmbTimeMode->Items->Clear();
CmbTimeMode->Items->Add("每天");
CmbTimeMode->Items->Add("每周");
CmbTimeMode->Items->Add("每月");
}
void __fastcall TfrmSetVacEdit::AddBill(void)
{
LoadData();
BtnState(1);
mEdit=false;
mChanged=false;
mDataID=0;
}
void __fastcall TfrmSetVacEdit::ViewBill(int DataID)
{
LoadData();
OpenSQL(QurFree," select b.Name,a.DataID,a.BeginDate,EndDate,TimeMode,BeginTime,EndTime,TimePos,Memo1 from SetVac a "
" left outer join Employee b on a.EmployeeID=b.EmployeeID where a.DataID= " +IntToStr(DataID));
if(QurFree->RecordCount==0)
{
Message("该单据已不存在!");
return;
}
CmbEmployee->Text=QurFree->FieldByName("Name")->AsString;
DtpBeginDate->Date=QurFree->FieldByName("BeginDate")->AsDateTime;
DtpEndDate->Date=QurFree->FieldByName("EndDate")->AsDateTime;
CmbTimeMode->Text=QurFree->FieldByName("TimeMode")->AsString;
CmbBeginTime->Text=QurFree->FieldByName("BeginTime")->AsString;
CmbEndTime->Text=QurFree->FieldByName("EndTime")->AsString;
CmbTimePos->Text=QurFree->FieldByName("TimePos")->AsString;
Memo ->Text=QurFree->FieldByName("Memo1")->AsString;
BtnState(2);
mEdit=true;
mChanged=false;
mDataID=DataID;
}
bool __fastcall TfrmSetVacEdit::SaveBill(void)
{
if (Trim(CmbEmployee->Text) == "")
{
Message ("请选择员工!");
return false;
}
if (DtpBeginDate->Date > DtpEndDate->Date)
{
Message ("结束日期不能比开始日期早!");
return false;
}
if (Trim(CmbTimeMode->Text) == "")
{
Message ("请选择时间模式!");
return false;
}
if (Trim(CmbTimeMode->Text) != "每天")
{
if (Trim(CmbBeginTime->Text) == "")
{
Message ("请选择开始时间!");
return false;
}
if (Trim(CmbEndTime->Text) == "")
{
Message ("请选择结束时间!");
return false;
}
if (StrToInt(CmbBeginTime->Text) > StrToInt(CmbEndTime->Text))
{
Message ("结束时间不能比开始时间早!");
return false;
}
}
if (Trim(CmbTimePos->Text) == "")
{
Message ("请选择时间段!");
return false;
}
if (!mChanged) return false;
AnsiString SQL;
if(!mEdit)
{
SQL = "insert into SetVac(EmployeeID,BeginDate,EndDate,TimeMode,"
"BeginTime,EndTime,TimePos,Memo1) Values( "
+ IntToStr(((cEmployee*)(CmbEmployee->Items->Objects[CmbEmployee->ItemIndex]))->iID) + ","
"'" + DtpBeginDate->Date + "',"
"'" + DtpEndDate->Date + "',"
"'" + CmbTimeMode->Text + "',"
"'" + CmbBeginTime->Text + "',"
"'" + CmbEndTime->Text + "',"
"'" + CmbTimePos->Text + "',"
"'" + Memo->Text + "')" ;
//Message (SQL);
frmDM->Con->Execute(SQL);
}
else
{
OpenSQL(QurFree,"select * from SetVac where DataID="+IntToStr(mDataID));
if (QurFree->RecordCount==0)
{
Message("该单据已不存在!");
return false;
}
QurFree->Edit();
QurFree->FieldByName("EmployeeID")->AsInteger=
((cEmployee*)(CmbEmployee->Items->Objects[CmbEmployee->Items->IndexOf(CmbEmployee->Text)]))->iID;
QurFree->FieldByName("BeginDate")->AsDateTime=DtpBeginDate->Date;
QurFree->FieldByName("EndDate")->AsDateTime=DtpEndDate->Date;
QurFree->FieldByName("TimeMode")->AsString=CmbTimeMode->Text;
QurFree->FieldByName("BeginTime")->AsString=CmbBeginTime->Text;
QurFree->FieldByName("EndTime")->AsString=CmbEndTime->Text;
QurFree->FieldByName("TimePos")->AsString=CmbTimePos->Text;
QurFree->FieldByName("Memo1")->AsString=Memo->Text;
QurFree->Post();
}
BtnState(2);
mChanged=false;
mEdit=true;
if (frmSetVac!=NULL)
frmSetVac->RefreshData() ;
return true;
}
void __fastcall TfrmSetVacEdit::BtnPriorClick(TObject *Sender)
{
frmDM->QurSetVac->Prior() ;
ViewBill(frmDM->QurSetVac->FieldByName("DataID")->AsInteger);
}
//---------------------------------------------------------------------------
void __fastcall TfrmSetVacEdit::BtnNextClick(TObject *Sender)
{
frmDM->QurSetVac->Next() ;
ViewBill(frmDM->QurSetVac->FieldByName("DataID")->AsInteger);
}
//---------------------------------------------------------------------------
void __fastcall TfrmSetVacEdit::BtnAddClick(TObject *Sender)
{
AddBill();
}
//---------------------------------------------------------------------------
void __fastcall TfrmSetVacEdit::BtnEditClick(TObject *Sender)
{
BtnState(3);
}
//---------------------------------------------------------------------------
void __fastcall TfrmSetVacEdit::BtnSaveClick(TObject *Sender)
{
SaveBill();
}
//---------------------------------------------------------------------------
void __fastcall TfrmSetVacEdit::BtnExitClick(TObject *Sender)
{
Close();
}
//---------------------------------------------------------------------------
void __fastcall TfrmSetVacEdit::FormClose(TObject *Sender,
TCloseAction &Action)
{
frmSetVacEdit=NULL;
Action=caFree;
}
//---------------------------------------------------------------------------
void __fastcall TfrmSetVacEdit::CmbEmployeeChange(TObject *Sender)
{
mChanged=true;
}
//---------------------------------------------------------------------------
void __fastcall TfrmSetVacEdit::DtpBeginDateKeyPress(TObject *Sender,
char &Key)
{
Key=0;
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -