📄 defclassedit.cpp
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "DefClassEdit.h"
#include "Public.h"
#include "DM.h"
#include "DefClass.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "DBGridEh"
#pragma link "DBCtrlsEh"
#pragma resource "*.dfm"
TfrmDefClassEdit *frmDefClassEdit;
//---------------------------------------------------------------------------
__fastcall TfrmDefClassEdit::TfrmDefClassEdit(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TfrmDefClassEdit::BtnState(int State)
{
switch (State)
{
case 1 : //新增
//EdtName->Enabled=true;
EdtName->ReadOnly =false;
Memo->ReadOnly =false;
Grid->Enabled=true;
Grid->ReadOnly =false;
Grid->PopupMenu =mnuClassEdit;
break;
case 2 : //查看
//EdtName->Enabled=false;
EdtName->ReadOnly =true;
Memo->ReadOnly =true;
// Grid->Enabled=false;
Grid->ReadOnly =true;
Grid->PopupMenu =NULL;
break;
case 3 : //修改
//EdtName->Enabled=true;
EdtName->ReadOnly =false;
Memo->ReadOnly =false;
Grid->Enabled=true;
Grid->ReadOnly =false;
Grid->PopupMenu =mnuClassEdit;
break;
}
}
void __fastcall TfrmDefClassEdit::AddRecord(void)
{
if (Grid->ReadOnly) return;
if (QurGrid->RecNo == QurGrid->RecordCount)
{
if (!QurGrid->FieldByName("BeginDate")->IsNull && !QurGrid->FieldByName("EndDate")->IsNull
&& !QurGrid->FieldByName("TimeMode")->IsNull && !QurGrid->FieldByName("ClassName")->IsNull)
{
Grid->DataSource->DataSet->Append();
Grid->DataSource->DataSet->Post();
}
}
}
void __fastcall TfrmDefClassEdit::AddBill(void)
{
OpenSQL(QurGrid,"SELECT A.BEGINDATE,A.ENDDATE,A.TIMEMODE,"
"A.BEGINTIME,A.ENDTIME,A.CLASSID,B.CLASSNAME FROM DEFCLASS_D A "
"LEFT OUTER JOIN CLASS B ON A.CLASSID=B.CLASSID WHERE A.CLASSID=0");
EdtName->Clear();
Memo->Clear();
BtnState(1);
mEdit=false;
mChanged=true;
mDefClassID=0;
}
void __fastcall TfrmDefClassEdit::ViewBill(int DefClassID)
{
OpenSQL(QurFree,"select * from DefClass where DefClassID=" + IntToStr(DefClassID));
if (QurFree->RecordCount==0)
{
Message("该单据已不存在!");
return;
}
EdtName->Text = QurFree->FieldByName("DefClassName")->AsString;
Memo->Text = QurFree->FieldByName("Memo1")->AsString;
/* OpenSQL(QurGrid,"SELECT A.BEGINDATE,A.ENDDATE,A.TIMEMODE,"
"A.BEGINTIME,A.ENDTIME,A.CLASSID,B.CLASSNAME FROM DEFCLASS_D A "
"LEFT OUTER JOIN CLASS B ON A.CLASSID=B.CLASSID WHERE A.DefCLASSID=" + IntToStr(DefClassID)); */
OpenSQL(QurGrid,"SELECT A.BEGINDATE,A.ENDDATE,A.TIMEMODE, "
"A.BEGINTIME,A.ENDTIME,A.CLASSID AS CLASSNAME FROM DEFCLASS_D A WHERE A.DefCLASSID= " + IntToStr(DefClassID));
BtnState(2);
mEdit=true;
mChanged=false;
mDefClassID= DefClassID;
}
bool __fastcall TfrmDefClassEdit::SaveBill(void)
{
if (EdtName->Text =="")
{
Message("请输入默认排班名称!");
return false;
}
QurGrid->Edit();
QurGrid->Post();
QurGrid->First();
while (!QurGrid->Eof)
{
if (QurGrid->FieldByName("BeginDate")->IsNull && QurGrid->FieldByName("EndDate")->IsNull
&& QurGrid->FieldByName("TimeMode")->IsNull && QurGrid->FieldByName("ClassName")->IsNull)
{
QurGrid->Delete();
if (QurGrid->IsEmpty() || QurGrid->RecordCount ==0 )
{
Message("明细不能为空!");
return false;
}
continue;
}
if (QurGrid->FieldByName("BeginDate")->IsNull)
{
Grid->SelectedIndex=0;
Message("请选择开始日期!");
return false;
}
if (QurGrid->FieldByName("EndDate")->IsNull)
{
Grid->SelectedIndex=1;
Message("请选择结束日期!");
return false;
}
if (QurGrid->FieldByName("TimeMode")->IsNull)
{
Grid->SelectedIndex=2;
Message("请选择时间模式!");
return false;
}
else
{
if (QurGrid->FieldByName("TimeMode")->AsString=="每周" ||
QurGrid->FieldByName("TimeMode")->AsString=="每月" )
{
if (QurGrid->FieldByName("BeginTime")->IsNull)
{
Grid->SelectedIndex=3;
Message("请选择开始时间!");
return false;
}
if (QurGrid->FieldByName("EndTime")->IsNull)
{
Grid->SelectedIndex=4;
Message("请选择结束时间!");
return false;
}
}
}
if (QurGrid->FieldByName("ClassName")->IsNull)
{
Grid->SelectedIndex=5;
Message("请选择班次名称!");
return false;
}
QurGrid->Next();
}
if(mChanged==false) return false;
if (!mEdit)
{
OpenSQL(QurFree,"select * from DefClass where DefClassName='" + Trim(EdtName->Text) + "'");
if (QurFree->RecordCount>0 )
{
Message ("该默认排班名称已存在!");
return false;
}
QurFree->Append();
QurFree->FieldByName("DefClassName")->AsString=EdtName->Text ;
QurFree->FieldByName("Memo1")->AsString=Memo->Text ;
QurFree->UpdateBatch();
OpenSQL(QurFree,"select * from DefClass where DefClassName='" + Trim(EdtName->Text) + "'");
if (QurFree->RecordCount >0)
{
mDefClassID=QurFree->FieldByName("DefClassID")->AsInteger;
}
else
{
Message ("保存失败!");
return false;
}
}
else
{
OpenSQL(QurFree,"select * from DefClass where DefClassID=" + IntToStr(mDefClassID));
if (QurFree->RecordCount==0 )
{
Message ("该班次已不存在!");
return false;
}
QurFree->Edit() ;
QurFree->FieldByName("DefClassName")->AsString=EdtName->Text ;
QurFree->FieldByName("Memo1")->AsString=Memo->Text ;
QurFree->UpdateBatch();
}
frmDM->Con->Execute("delete from DefClass_D where DefClassID=" + IntToStr(mDefClassID));
AnsiString Sql;
if (QurGrid->RecordCount>0)
{
QurGrid->First() ;
for (int i=1;i<=QurGrid->RecordCount;i++)
{
Sql=" insert into DefClass_D(DefClassID,ItemNo,BeginDate,EndDate,"
"TimeMode,BeginTime,EndTime,ClassID) Values("
+ IntToStr(mDefClassID) + "," + IntToStr(i) + ","
+ "'" + QurGrid->FieldByName("BeginDate")->AsString + "',"
+ "'" + QurGrid->FieldByName("EndDate")->AsString + "',"
+ "'" + QurGrid->FieldByName("TimeMode")->AsString + "',"
+ "'" + QurGrid->FieldByName("BeginTime")->AsString + "',"
+ "'" + QurGrid->FieldByName("EndTime")->AsString + "',"
+ QurGrid->FieldByName("ClassName")->AsString +")";
//Message(Sql);
frmDM->Con->Execute(Sql);
QurGrid->Next() ;
}
}
ViewBill(mDefClassID);
if (frmDefClass!=NULL)
frmDefClass->RefreshData() ;
return true;
}
void __fastcall TfrmDefClassEdit::FormShow(TObject *Sender)
{
Grid->Columns->Items[2]->PickList->Clear();
Grid->Columns->Items[2]->PickList->CommaText = "每天,每周,每月";
OpenSQL(QurFree,"select * from class");
Grid->Columns->Items[5]->PickList->Clear();
Grid->Columns->Items[5]->KeyList->Clear();
QurFree->First();
while (!QurFree->Eof)
{
Grid->Columns->Items[5]->PickList->Add(QurFree->FieldByName("ClassName")->AsString);
Grid->Columns->Items[5]->KeyList->Add(QurFree->FieldByName("ClassID")->AsString);
QurFree->Next();
}
}
void __fastcall TfrmDefClassEdit::BtnPriorClick(TObject *Sender)
{
frmDM->QurDefClass->Prior() ;
ViewBill(frmDM->QurDefClass->FieldByName("DefClassID")->AsInteger);
}
//---------------------------------------------------------------------------
void __fastcall TfrmDefClassEdit::BtnNextClick(TObject *Sender)
{
frmDM->QurDefClass->Next();
ViewBill(frmDM->QurDefClass->FieldByName("DefClassID")->AsInteger);
}
//---------------------------------------------------------------------------
void __fastcall TfrmDefClassEdit::BtnAddClick(TObject *Sender)
{
AddBill();
}
//---------------------------------------------------------------------------
void __fastcall TfrmDefClassEdit::BtnEditClick(TObject *Sender)
{
BtnState(3);
}
//---------------------------------------------------------------------------
void __fastcall TfrmDefClassEdit::BtnSaveClick(TObject *Sender)
{
SaveBill() ;
}
//---------------------------------------------------------------------------
void __fastcall TfrmDefClassEdit::BtnExitClick(TObject *Sender)
{
Close();
}
//---------------------------------------------------------------------------
void __fastcall TfrmDefClassEdit::GridColumns2UpdateData(TObject *Sender,
AnsiString &Text, Variant &Value, bool &UseText, bool &Handled)
{
if (Text == "每天")
{
Grid->Columns->Items[3]->PickList->Clear();
Grid->Columns->Items[3]->Field->AsString ="";
Grid->Columns->Items[4]->PickList->Clear();
Grid->Columns->Items[4]->Field->AsString ="";
}
if (Text == "每周")
{
Grid->Columns->Items[3]->PickList->Clear();
Grid->Columns->Items[3]->Field->AsString ="1";
Grid->Columns->Items[4]->PickList->Clear();
Grid->Columns->Items[4]->Field->AsString ="1";
}
if (Text == "每月")
{
Grid->Columns->Items[3]->PickList->Clear();
Grid->Columns->Items[3]->Field->AsString ="1";
Grid->Columns->Items[4]->PickList->Clear();
Grid->Columns->Items[4]->Field->AsString ="1";
}
mChanged=true;
AddRecord();
}void __fastcall TfrmDefClassEdit::GridCellClick(TColumnEh *Column)
{
Grid->DataSource->DataSet->Edit();
switch (Grid->SelectedIndex)
{
case 3:
case 4:
if (Grid->Columns->Items[2]->Field->AsString == "每天")
{
Grid->Columns->Items[3]->PickList->Clear();
Grid->Columns->Items[3]->Field->AsString ="";
Grid->Columns->Items[4]->PickList->Clear();
Grid->Columns->Items[4]->Field->AsString ="";
}
if (Grid->Columns->Items[2]->Field->AsString == "每周")
{
Grid->Columns->Items[3]->PickList->Clear();
Grid->Columns->Items[3]->PickList->CommaText ="1,2,3,4,5,6,7";
Grid->Columns->Items[4]->PickList->Clear();
Grid->Columns->Items[4]->PickList->CommaText ="1,2,3,4,5,6,7";
}
if (Grid->Columns->Items[2]->Field->AsString == "每月")
{
Grid->Columns->Items[3]->PickList->Clear();
Grid->Columns->Items[4]->PickList->Clear();
for (int i=1; i<=31 ;i++)
{
Grid->Columns->Items[3]->PickList->Add(IntToStr(i));
Grid->Columns->Items[4]->PickList->Add(IntToStr(i));
}
}
break;
}
Grid->DataSource->DataSet->Post();
AddRecord();
}
//---------------------------------------------------------------------------
void __fastcall TfrmDefClassEdit::GridColumns5NotInList(TObject *Sender,
AnsiString NewText, bool &RecheckInList)
{
Grid->Columns->Items[Grid->SelectedIndex]->Field->AsString =
Grid->Columns->Items[Grid->SelectedIndex]->Field->AsString ;
}
//---------------------------------------------------------------------------
void __fastcall TfrmDefClassEdit::GridColumns5UpdateData(TObject *Sender,
AnsiString &Text, Variant &Value, bool &UseText, bool &Handled)
{
AddRecord();
mChanged=true;
}
//---------------------------------------------------------------------------
void __fastcall TfrmDefClassEdit::N1Click(TObject *Sender)
{
QurGrid->Delete() ;
}
void __fastcall TfrmDefClassEdit::N2Click(TObject *Sender)
{
Grid->DataSource->DataSet->Append();
Grid->DataSource->DataSet->Post();
}
//---------------------------------------------------------------------------
void __fastcall TfrmDefClassEdit::FormClose(TObject *Sender,
TCloseAction &Action)
{
frmDefClassEdit=NULL;
Action=caFree;
}
//---------------------------------------------------------------------------
void __fastcall TfrmDefClassEdit::GridKeyPress(TObject *Sender, char &Key)
{
Key=0;
}
//---------------------------------------------------------------------------
void __fastcall TfrmDefClassEdit::EdtNameChange(TObject *Sender)
{
mChanged=true;
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -