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

📄 employeeseek.cpp

📁 员工管理系统读您的文件包然后写出其具体功能(至少要20个字)。尽量不要让站长把时间都花费在为您
💻 CPP
字号:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "employeeseek.h"
#include "main.h"
#include "rep.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TFm_employeeseek *Fm_employeeseek;
//---------------------------------------------------------------------------
__fastcall TFm_employeeseek::TFm_employeeseek(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TFm_employeeseek::FormShow(TObject *Sender)
{
AnsiString S;
  DTP1->Date=Date();
  DTP2->Date=Date();
  DTP3->Date=Date();
  DTP4->Date=Date();
  DTP1->Checked=false;
  DTP2->Enabled=false;
  DTP3->Checked=false;
  DTP4->Enabled=false;

  //下拉内容
  S="select * from basic where xm='性别'";
  Query->Close();
  Query->SQL->Clear();
  Query->SQL->Add(S);
  Query->Open();
  Edit3->Items->Clear();
  if(!Query->IsEmpty())
  {
    while(!Query->Eof)
    {
      Edit3->Items->Add(Query->FieldByName("sjnr")->AsString);
      Query->Next();
    }
  }
  S="select * from basic where xm='学历'";
  Query->Close();
  Query->SQL->Clear();
  Query->SQL->Add(S);
  Query->Open();
  Edit4->Items->Clear();
  if(!Query->IsEmpty())
  {
    while(!Query->Eof)
    {
      Edit4->Items->Add(Query->FieldByName("sjnr")->AsString);
      Query->Next();
    }
  }

  S="select * from basic where xm='部门名称'";
  Query->Close();
  Query->SQL->Clear();
  Query->SQL->Add(S);
  Query->Open();
  Edit5->Items->Clear();
  if(!Query->IsEmpty())
  {
    while(!Query->Eof)
    {
      Edit5->Items->Add(Query->FieldByName("sjnr")->AsString);
      Query->Next();
    }
  }

  S="select * from basic where xm='职务'";
  Query->Close();
  Query->SQL->Clear();
  Query->SQL->Add(S);
  Query->Open();
  Edit6->Items->Clear();
  if(!Query->IsEmpty())
  {
    while(!Query->Eof)
    {
      Edit6->Items->Add(Query->FieldByName("sjnr")->AsString);
      Query->Next();
    }
  }
        
}
//---------------------------------------------------------------------------
void __fastcall TFm_employeeseek::bt_resetClick(TObject *Sender)
{
 Edit1->Text="";
   Edit2->Text="";
   Edit3->Text="";
   Edit4->Text="";
   Edit5->Text="";
   Edit6->Text="";
   Edit7->Text="";
   Edit8->Text="";
   Edit9->Text="";
   DTP1->Date=Date();
   DTP2->Date=Date();
   DTP3->Date=Date();
   DTP4->Date=Date();
   DTP1->Checked=false;
   DTP2->Enabled=false;
   DTP3->Checked=false;
   DTP4->Enabled=false;
   seekQuery->Close();
   bt_print->Enabled=false;
   Edit1->SetFocus();
        
}
//---------------------------------------------------------------------------
void __fastcall TFm_employeeseek::bt_seekClick(TObject *Sender)
{
 AnsiString S="";

    if(Edit1->Text!="")
     S=" bh like '%"+Edit1->Text+"%'";

    if(Edit2->Text!="")
      if(S!="")
        S= S+" and xm like '%"+Edit2->Text+"%'";
      else
        S=" xm like '%"+Edit2->Text+"%'";

    if(Edit3->Text!="")
      if(S!="")
        S= S+" and xb like '%"+Edit3->Text+"%'";
      else
        S=" xb like '%"+Edit3->Text+"%'";

    if(Edit4->Text!="")
      if(S!="")
        S= S+" and xl like '%"+Edit4->Text+"%'";
      else
        S=" xl like '%"+ Edit4->Text+"%'";

    if(Edit5->Text!="")
      if(S!="")
        S= S+" and lsbm like '%"+Edit5->Text+"%'";
      else
        S=" lsbm like '%"+Edit5->Text+"%'";

    if(Edit6->Text!="")
      if(S!="")
        S= S+" and zw like '%"+Edit6->Text+"%'";
      else
        S=" zw like '%"+Edit6->Text+"%'";

    if(Edit7->Text!="")
      if(S!="")
        S= S+" and lxdh like '%"+Edit7->Text+"%'";
      else
        S=" lxdh like '%"+Edit7->Text+"%'";

    if(Edit8->Text!="")
      if(S!="")
        S= S+" and dz like '%"+Edit8->Text+"%'";
      else
        S=" dz like '%"+Edit8->Text+"%'";

    if(Edit9->Text!="")
      if(S!="")
        S= S+" and email like '%"+Edit9->Text+"%'";
      else
        S=" email like '%"+Edit9->Text+"%'";
    if(DTP1->Checked)
    {
      if(S!="")
        S=S+" and csrq Between #"+DateToStr(DTP1->Date)+"# and #"+DateToStr(DTP2->Date)+"#";
      else
        S=" csrq Between #"+DateToStr(DTP1->Date)+"# and #"+DateToStr(DTP2->Date)+"#";
    }

    if(DTP3->Checked)
    {
      if(S!="")
        S=S+" and rzrq Between #"+DateToStr(DTP3->Date)+"# and #"+DateToStr(DTP4->Date)+"#";
      else
        S=" rzrq Between #"+DateToStr(DTP3->Date)+"# and #"+DateToStr(DTP4->Date)+"#";
    }

    if(S!="")
      S="select * from stufff where"+S+" order by bh";
    else
      S="select * from stufff order by bh";

    seekQuery->Close();
    seekQuery->SQL->Clear();
    seekQuery->SQL->Add(S);
    seekQuery->Open();
    if(seekQuery->IsEmpty())
      bt_print->Enabled=false;
    else
      bt_print->Enabled=true;
      bt_export->Enabled=true;
        
}
//---------------------------------------------------------------------------
void __fastcall TFm_employeeseek::bt_exitClick(TObject *Sender)
{
  Close();
}
//---------------------------------------------------------------------------
void __fastcall TFm_employeeseek::DTP1Click(TObject *Sender)
{
    if(DTP1->Checked)
    DTP2->Enabled=true;
  else
    DTP2->Enabled=false;

}
//---------------------------------------------------------------------------
void __fastcall TFm_employeeseek::DTP3Click(TObject *Sender)
{
    if(DTP3->Checked)
        DTP4->Enabled=true;
else
        DTP4->Enabled=false;

}
//---------------------------------------------------------------------------
void __fastcall TFm_employeeseek::seekQueryAfterScroll(TDataSet *DataSet)
{
    if(!seekQuery->IsEmpty())
  {
    Edit1->Text=seekQuery->FieldByName("bh")->AsString;
    Edit2->Text=seekQuery->FieldByName("xm")->AsString;
    Edit3->Text=seekQuery->FieldByName("xb")->AsString;
    Edit4->Text=seekQuery->FieldByName("xl")->AsString;
    Edit5->Text=seekQuery->FieldByName("lsbm")->AsString;
    Edit6->Text=seekQuery->FieldByName("zw")->AsString;
    Edit7->Text=seekQuery->FieldByName("lxdh")->AsString;
    Edit8->Text=seekQuery->FieldByName("dz")->AsString;
    Edit9->Text=seekQuery->FieldByName("email")->AsString;
    DTP1->DateTime=seekQuery->FieldByName("csrq")->AsDateTime;
    DTP3->DateTime=seekQuery->FieldByName("rzrq")->AsDateTime;
    DTP1->Checked=false;
    DTP2->Enabled=false;
    DTP3->Checked=false;
    DTP4->Enabled=false;
  }

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


void __fastcall TFm_employeeseek::bt_exportClick(TObject *Sender)
{
        Fm_employeerep->QuickRep1->Preview();
}
//---------------------------------------------------------------------------



void __fastcall TFm_employeeseek::bt_printClick(TObject *Sender)
{
    SaveDialog1->Filter="*.xls|*.xls";
    if(SaveDialog1->Execute())
    {
        if(SaveDialog1->FileName!="")
        {
            if(SaveDialog1->FileName.SubString(SaveDialog1->FileName.Length()-3,4)!=".xls")
              SaveDialog1->FileName=SaveDialog1->FileName+".xls";
            DBGridToExcel(placeDBG, SaveDialog1->FileName.c_str());
        }
    }
}
//---------------------------------------------------------------------------
void __fastcall TFm_employeeseek::DBGridToExcel(TDBGrid *dbg, String strXlsFile)
{
    Variant vExcelApp, vSheet;
    try
    {
      vExcelApp = Variant::CreateObject("Excel.Application");
    }
    catch(...)
    {
      MessageBox(0, "启动 Excel 出错, 可能是没有安装Excel.","DBGridToExcel", MB_OK | MB_ICONERROR);
      return;
    }
    // 隐藏Excel界面
    vExcelApp.OlePropertySet("Visible", false);
    // 新建一个工作表
    vExcelApp.OlePropertyGet("Workbooks").OleFunction("Add",1);
    // 操作这个工作表
    vSheet = vExcelApp.OlePropertyGet("ActiveWorkbook").OlePropertyGet("Sheets",1);

    // 设置Excel文档的字体
    vSheet.OleProcedure("Select");
    vSheet.OlePropertyGet("Cells").OleProcedure("Select");
    vExcelApp.OlePropertyGet("Selection").OlePropertyGet("Font").OlePropertySet("Size", dbg->Font->Size);
    vExcelApp.OlePropertyGet("Selection").OlePropertyGet("Font").OlePropertySet("Name", dbg->Font->Name.c_str());
    vExcelApp.OlePropertyGet("Selection").OlePropertyGet("Font").OlePropertySet("FontStyle", "常规");
    vExcelApp.OlePropertyGet("Selection").OlePropertySet("NumberFormatLocal", "@");
    vSheet.OlePropertyGet("Cells",1,1).OleProcedure("Select");
    // 表格的行数
    int nRowCount(dbg->DataSource->DataSet->RecordCount+1);
    nRowCount = nRowCount < 2? 2: nRowCount;
    // 表格的列数
    int nColCount(dbg->Columns->Count);
    nColCount = nColCount < 1? 1: nColCount;
    // 设置单元格的宽度
    for(int i=0;i<nColCount;i++)
    {
      int nColWidth = dbg->Columns->Items[i]->Width;
      vExcelApp.OlePropertyGet("Columns",i+1).OlePropertySet("ColumnWidth", nColWidth/7);
    }

    // 将列名写入Excel表格
    for(int j=0;j<dbg->Columns->Count;j++)
    {
      // 标题行的行高
      vExcelApp.OlePropertyGet("Rows",1).OlePropertySet("RowHeight",16);
      // 写入标题
      vSheet.OlePropertyGet("Cells",1,j+1).OlePropertySet("Value",dbg->Columns->Items[j]->Title->Caption.c_str());
    }

    // 将DBGrid中的数据写入Excel表格
    dbg->DataSource->DataSet->First();
    for(int i=0; i<nRowCount-1; i++)
    {
      // 设置数据行的行高
      vExcelApp.OlePropertyGet("Rows",i+2).OlePropertySet("RowHeight", 16);
      // 写入某行的每列数据
      for(int j=0; j<dbg->Columns->Count; j++)
        vExcelApp.Exec(PropertyGet("Cells")<<i+2<<j+1).Exec(PropertySet("Value")<<dbg->DataSource->DataSet->FieldByName(dbg->Columns->Items[j]->FieldName)->AsString);
      dbg->DataSource->DataSet->Next();
    }

    // 保存Excel文档并退出
    vExcelApp.OlePropertyGet("ActiveWorkbook").OleFunction("SaveAs", strXlsFile.c_str());
    vExcelApp.OleFunction("Quit");
    vSheet = Unassigned;
    vExcelApp = Unassigned;
}

void __fastcall TFm_employeeseek::placeDBGTitleClick(TColumn *Column)
{
  AnsiString str;      //保存字段名
  AnsiString caption;  //保存DBGrid的标题

  str= Column->FieldName;

  for (int i=0;i<placeDBG->Columns->Count-1;i++)
  {
     caption=placeDBG->Columns->Items[i]->Title->Caption;
     if (placeDBG->Columns->Items[i]->FieldName==str)
     {
       if(caption.SubString(1,2)=="▲")
       {
         //将标题前的▲和▼去掉 
         caption=caption.SubString(3,caption.Length()-2); 
         //在标题前加上▼ 
         placeDBG->Columns->Items[i]->Title->Caption = "▼"+caption;
         seekQuery->Sort=Column->FieldName+" DESC";
       }
       else
       {
         if(caption.SubString(1,2)=="▼")
         {
           caption=caption.SubString(3,caption.Length()-2);
           placeDBG->Columns->Items[i]->Title->Caption = "▲"+caption;
           seekQuery->Sort=Column->FieldName+" ASC";
         }
         else    //2,还有第三种情况:首次点击某列,前面既不是"▲"也不是"▼"
         {
           placeDBG->Columns->Items[i]->Title->Caption = "▼"+caption;
           seekQuery->Sort=Column->FieldName+" DESC";
         }
       }
     }
     else
     {
       //清除未点击的标题的▲和▼
       if(caption.SubString(1,2)=="▲"||caption.SubString(1,2)=="▼")
         placeDBG->Columns->Items[i]->Title->Caption = caption.SubString(3,caption.Length()-2);
     }
  }

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

⌨️ 快捷键说明

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