⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 classedit.cpp

📁 是我编写的一个考勤机管理系统,用于计算某员工某段时间以来的迟到与早退等情况.
💻 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 + -