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

📄 uachievement.cpp

📁 可实现科研信息管理系统的功能,有项目管理,教师管理,科研项目管理等多项内容
💻 CPP
字号:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "UAchievement.h"
#include "UDM.h"
#include "UMsgBox.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
//---------------------------------------------------------------------------
__fastcall TFormAchievement::TFormAchievement(TComponent* Owner)
        : TFormTemplate(Owner)
{
}
//---------------------------------------------------------------------------


void __fastcall TFormAchievement::CBPNameChange(TObject *Sender)
{
        DBEPName->Text=CBPName->Text;
        DisplayAttender();
        //DM->ADOQReward->SQL->Clear();
        //DM->ADOQReward->SQL->Add("insert into reward select pname,tname from project,attender where project.pname='"+CBPName->Text+"' and attender.pno=project.pno")        
}
//---------------------------------------------------------------------------


void __fastcall TFormAchievement::DataControlState(bool ReadOnly)
{
        //TODO: Add your source code here
        DBEANo->ReadOnly=ReadOnly;
        //DBEPName->ReadOnly=ReadOnly;
        DBETime->ReadOnly=ReadOnly;
        DBCBType->ReadOnly=ReadOnly;
        DBCBLevel->ReadOnly=ReadOnly;
        DBCBRank->ReadOnly=ReadOnly;
        //CBPName->Visible=!ReadOnly;
        DBGridPName->Enabled=ReadOnly;
        DBGridPName->Refresh();
        SBtnAdd->Enabled=ReadOnly;
        SBtnModify->Enabled=ReadOnly;
        SBtnPri->Enabled=ReadOnly;
        SBtnNext->Enabled=ReadOnly;
        SBtnDelete->Enabled=ReadOnly;
        SBtnCommit->Enabled=!ReadOnly;
        DBEANo->SetFocus();
        Panel2->Visible=!ReadOnly;
}
void __fastcall TFormAchievement::SBtnAddClick(TObject *Sender)
{
        DataControlState(false);
        //DBEPName->ReadOnly=false;
        CBPName->Visible=true;
        DM->ADOQAchievement->Append();
        DBEPName->Text=CBPName->Text;
}
//---------------------------------------------------------------------------

void __fastcall TFormAchievement::SBtnCommitClick(TObject *Sender)
{
        try
        {
                DM->ADOQAchievement->Post();
                DataControlState(true);
                CBPName->Visible=false;
                if(CBTName1->Text!="")
                {
                        DM->ADOQReward->SQL->Clear();
                        DM->ADOQReward->SQL->Add("delete * from reward where pname='"+DBEPName->Text+"'");
                        DM->ADOQReward->ExecSQL();
                        DM->ADOQReward->SQL->Clear();
                        DM->ADOQReward->SQL->Add("insert into reward values('"+DBEPName->Text+"','"+CBTName1->Text+"','1')");
                        DM->ADOQReward->ExecSQL();
                }
                if(CBTName2->Text!="")
                {
                        DM->ADOQReward->SQL->Clear();
                        DM->ADOQReward->SQL->Add("insert into reward values('"+DBEPName->Text+"','"+CBTName2->Text+"','2')");
                        DM->ADOQReward->ExecSQL();
                }
                if(CBTName3->Text!="")
                {
                        DM->ADOQReward->SQL->Clear();
                        DM->ADOQReward->SQL->Add("insert into reward values('"+DBEPName->Text+"','"+CBTName3->Text+"','3')");
                        DM->ADOQReward->ExecSQL();
                }
                if(CBTName4->Text!="")
                {
                        DM->ADOQReward->SQL->Clear();
                        DM->ADOQReward->SQL->Add("insert into reward values('"+DBEPName->Text+"','"+CBTName4->Text+"','4')");
                        DM->ADOQReward->ExecSQL();
                }
                if(CBTName5->Text!="")
                {
                        DM->ADOQReward->SQL->Clear();
                        DM->ADOQReward->SQL->Add("insert into reward values('"+DBEPName->Text+"','"+CBTName5->Text+"','5')");
                        DM->ADOQReward->ExecSQL();
                }
                if(CBTName6->Text!="")
                {
                        DM->ADOQReward->SQL->Clear();
                        DM->ADOQReward->SQL->Add("insert into reward values('"+DBEPName->Text+"','"+CBTName6->Text+"','6')");
                        DM->ADOQReward->ExecSQL();
                }
                if(CBTName7->Text!="")
                {
                        DM->ADOQReward->SQL->Clear();
                        DM->ADOQReward->SQL->Add("insert into reward values('"+DBEPName->Text+"','"+CBTName7->Text+"','7')");
                        DM->ADOQReward->ExecSQL();
                }
                FormShow(Sender);
                DM->ADOQAchievement->Prior();
        }
        catch(...)
        {
                //ShowMessage("Error");
                DBGridPName->Refresh();
        }

}
//---------------------------------------------------------------------------

void __fastcall TFormAchievement::SBtnModifyClick(TObject *Sender)
{
        DataControlState(false);
        DisplayAttender();
        DM->ADOQAchievement->Edit();        
}
//---------------------------------------------------------------------------

void __fastcall TFormAchievement::SBtnDeleteClick(TObject *Sender)
{
        DM->ADOQAchievement->Delete();
        DM->ADOQProject->SQL->Clear();
        DM->ADOQProject->SQL->Add("select Pname from project where pname not in(select Pname from achievement)");
        DM->ADOQProject->Open();
        DisplayRestProject();
        if(CBPName->Items->Count<1)
                SBtnAdd->Enabled=false;
        SBtnAdd->Enabled=true;
}
//---------------------------------------------------------------------------


void __fastcall TFormAchievement::DisplayRestProject()
{
        CBPName->Items->Clear();
        while(!DM->ADOQProject->Eof)
        {
                CBPName->AddItem(DM->ADOQProject->FieldByName("PName")->AsString,0);
                DM->ADOQProject->Next();
        }
        DM->ADOQProject->Prior();
        DM->ADOQProject->Active=false;
}
void __fastcall TFormAchievement::FormShow(TObject *Sender)
{
        DM->ADOQProject->SQL->Clear();
        DM->ADOQProject->SQL->Add("select Pname from project where pname not in(select Pname from achievement)");
        DM->ADOQProject->Open();
        DisplayRestProject();
        if(CBPName->Items->Count<1)
                SBtnAdd->Enabled=false;
}
//---------------------------------------------------------------------------




void __fastcall TFormAchievement::DBEPNameChange(TObject *Sender)
{
        DM->ADOQReward->SQL->Clear();
        DM->ADOQReward->SQL->Add("select * from reward where pname='"+DBEPName->Text+"'");
        DM->ADOQReward->Open();
}
//---------------------------------------------------------------------------



void __fastcall TFormAchievement::SBtnPriClick(TObject *Sender)
{
        DM->ADOQAchievement->Prior();        
}
//---------------------------------------------------------------------------

void __fastcall TFormAchievement::SBtnNextClick(TObject *Sender)
{
        DM->ADOQAchievement->Next();        
}
//---------------------------------------------------------------------------


void __fastcall TFormAchievement::DisplayAttender()
{
        CBTName1->Items->Clear();
        DM->ADOQAttender->SQL->Clear();
        DM->ADOQAttender->SQL->Add("select tname from attender where pno in(select pno from project where pname='"+DBEPName->Text+"') union select pmanager as tname from project where pname='"+DBEPName->Text+"'");
        DM->ADOQAttender->Active=true;
        while(!DM->ADOQAttender->Eof)
        {
                CBTName1->AddItem(DM->ADOQAttender->FieldByName("TName")->AsString,0);
                DM->ADOQAttender->Next();
        }
        DM->ADOQAttender->Prior();
        DM->ADOQAttender->Active=false;
        CBTName2->Items=CBTName1->Items;
        CBTName3->Items=CBTName1->Items;
        CBTName4->Items=CBTName1->Items;
        CBTName5->Items=CBTName1->Items;
        CBTName6->Items=CBTName1->Items;
        CBTName7->Items=CBTName1->Items;
}
void __fastcall TFormAchievement::FormCloseQuery(TObject *Sender,
      bool &CanClose)
{
        DM->ADOQProject->SQL->Clear();
        DM->ADOQProject->SQL->Add("select * from project order by pno");
        DM->ADOQAttender->SQL->Clear();
        DM->ADOQAttender->SQL->Add("select * from attender order by pno");
        DM->ADOQProject->Active=false;
        DM->ADOQAttender->Active=false;
        DM->ADOQAchievement->Active=false;

        
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -