📄 classedit.cpp
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "ClassEdit.h"
#include "DM.h"
#include "Public.h"
#include "Class.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "DBGridEh"
#pragma resource "*.dfm"
TfrmClassEdit *frmClassEdit;
bool mEdit;
long mClassID;
//---------------------------------------------------------------------------
__fastcall TfrmClassEdit::TfrmClassEdit(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void TfrmClassEdit::AddBill(void)
{
QurGrid->Close();
QurGrid->SQL->Clear();
QurGrid->SQL->Add("select * from Class_D where ClassID=0");
QurGrid->Open();
EdtName->Clear();
BtnState(1);
mEdit=false;
mClassID=0;
}
void TfrmClassEdit::ViewBill(long ClassID)
{
QurFree->Close();
QurFree->SQL->Clear();
QurFree->SQL->Add("select * from Class where ClassID=" + IntToStr(ClassID) );
QurFree->Open();
if (QurFree->RecordCount==0)
{
Message("该单据已不存在!");
return;
}
EdtName->Text = QurFree->FieldByName("ClassName")->AsString;
QurGrid->Close();
QurGrid->SQL->Clear();
QurGrid->SQL->Add("select * from Class_D where ClassID=" + IntToStr(ClassID));
QurGrid->Open();
BtnState(2);
mEdit=true;
mClassID= ClassID;
}
void TfrmClassEdit::BtnState(long State)
{
switch (State)
{
case 1 : //新增
//EdtName->Enabled=true;
EdtName->ReadOnly =false;
//Grid->Enabled=true;
Grid->ReadOnly =false;
Grid->PopupMenu =mnuClassEdit;
break;
case 2 : //查看
//EdtName->Enabled=false;
EdtName->ReadOnly =true;
//Grid->Enabled=false;
Grid->ReadOnly =true;
Grid->PopupMenu =NULL;
break;
case 3 : //修改
EdtName->Enabled=true;
EdtName->ReadOnly =false;
//Grid->Enabled=true;
Grid->ReadOnly =false;
Grid->PopupMenu =mnuClassEdit;
break;
}
}
void TfrmClassEdit::SaveBill(void)
{
if (EdtName->Text =="")
{
Message("请输入班次名称!");
return;
}
QurGrid->Edit();
QurGrid->Post();
if (QurGrid->IsEmpty() || QurGrid->RecordCount ==0 )
{
Message("明细不能为空!");
return;
}
if (!mEdit)
{
QurFree->Close();
QurFree->SQL->Clear();
QurFree->SQL->Add("select * from Class where ClassName='" + Trim(EdtName->Text) + "'" );
QurFree->Open();
if (QurFree->RecordCount>0 )
{
Message ("该班次名称已存在!");
return;
}
QurFree->Append();
QurFree->FieldByName("ClassName")->AsString=EdtName->Text ;
QurFree->UpdateBatch();
QurFree->Close();
QurFree->SQL->Clear();
QurFree->SQL->Add("select * from Class where ClassName='" + Trim(EdtName->Text) + "'" );
QurFree->Open();
if (QurFree->RecordCount >0)
{
mClassID=QurFree->FieldByName("ClassID")->AsInteger;
}
}
else
{
QurFree->Close();
QurFree->SQL->Clear();
QurFree->SQL->Add("select * from Class where ClassID=" + IntToStr(mClassID) );
QurFree->Open();
if (QurFree->RecordCount==0 )
{
Message ("该班次已不存在!");
return;
}
QurFree->Edit() ;
QurFree->FieldByName("ClassName")->AsString=EdtName->Text ;
QurFree->UpdateBatch();
}
frmDM->Con->Execute("delete from Class_D where ClassID=" + IntToStr(mClassID) );
if (QurGrid->RecordCount>0)
{
QurGrid->First() ;
for (int i=1;i<=QurGrid->RecordCount;i++)
{
frmDM->Con->Execute("insert into class_d(ClassID,ItemNo,OnDutyTime,OffDutyTime) Values("
+ IntToStr(mClassID) + "," + IntToStr(i) + ",'"
+ QurGrid->FieldByName("OnDutyTime")->AsString
+ "','" + QurGrid->FieldByName("OffDutyTime")->AsString + "')");
QurGrid->Next() ;
}
}
mEdit=true;
if (frmClass!=NULL)
frmClass->RefreshData() ;
}
//---------------------------------------------------------------------------
void __fastcall TfrmClassEdit::BtnPriorClick(TObject *Sender)
{
frmDM->QurClass->Prior() ;
ViewBill(frmDM->QurClass->FieldByName("ClassID")->AsInteger);
}
//---------------------------------------------------------------------------
void __fastcall TfrmClassEdit::BtnNextClick(TObject *Sender)
{
frmDM->QurClass->Next();
ViewBill(frmDM->QurClass->FieldByName("ClassID")->AsInteger);
}
//---------------------------------------------------------------------------
void __fastcall TfrmClassEdit::BtnSaveClick(TObject *Sender)
{
SaveBill() ;
}
//---------------------------------------------------------------------------
void __fastcall TfrmClassEdit::BtnAddClick(TObject *Sender)
{
AddBill();
}
//---------------------------------------------------------------------------
void __fastcall TfrmClassEdit::BtnEditClick(TObject *Sender)
{
BtnState(3);
}
//---------------------------------------------------------------------------
void __fastcall TfrmClassEdit::BtnExitClick(TObject *Sender)
{
Close();
}
//---------------------------------------------------------------------------
void __fastcall TfrmClassEdit::FormClose(TObject *Sender,
TCloseAction &Action)
{
frmClassEdit=NULL;
Action=caFree;
}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
void __fastcall TfrmClassEdit::GridKeyPress(TObject *Sender, char &Key)
{
/* if (Grid->ReadOnly) return;
if (Key==VK_RETURN)
{
switch(Grid->SelectedIndex)
{
case 0:
Grid->SelectedIndex=1;
break;
case 1:
if (QurGrid->Eof )
QurGrid->Append() ;
else
QurGrid->Next() ;
Grid->SelectedIndex=0;
break;
}
} */
}
//---------------------------------------------------------------------------
void __fastcall TfrmClassEdit::N2Click(TObject *Sender)
{
QurGrid->Append();
QurGrid->Post();
}
//---------------------------------------------------------------------------
void __fastcall TfrmClassEdit::N1Click(TObject *Sender)
{
QurGrid->Delete() ;
}
void __fastcall TfrmClassEdit::AddRecord(void)
{
if (Grid->ReadOnly) return;
if (QurGrid->RecNo == QurGrid->RecordCount)
{
if (!QurGrid->FieldByName("OnDutyTime")->IsNull && !QurGrid->FieldByName("OnDutyTime")->IsNull
&& !QurGrid->FieldByName("OffDutyTime")->IsNull && !QurGrid->FieldByName("OffDutyTime")->IsNull)
{
Grid->DataSource->DataSet->Append();
Grid->DataSource->DataSet->Post();
}
}
}
void __fastcall TfrmClassEdit::GridCellClick(TColumnEh *Column)
{
AddRecord();
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -