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

📄 wsalary_salary.cpp

📁 很经典的数据库代码
💻 CPP
📖 第 1 页 / 共 2 页
字号:
    F_Work->RunQuery(DM->AQ_Back_Restore,QStr);  //运行SQL语句得到累计津贴总金额
    try{
      Allow = DM->AQ_Back_Restore->Fields->Fields[0]->Value; //提取累计津贴总金额
      }
    catch(...){
      Allow = 0;                                             //如果无津贴记录则为0
      }
    //计算其它扣发总金额
    QStr = "SELECT SUM(SOther_Money) AS TMoney FROM WSalary_SOther WHERE SOther_PID="+IntToStr(Person_ID)+" AND "; //生成SQL语句
    QStr.Insert("SOther_YMonth BETWEEN '"+IntToStr(year)+"-"+IntToStr(month)+"-01'AND '"+IntToStr(year)+"-"+IntToStr(month)+"-31'",QStr.Length()+1);
    QStr.Insert(" AND SOther_Type = 3",QStr.Length()+1);  //提取累加其它扣发金额
    F_Work->RunQuery(DM->AQ_Back_Restore,QStr);  //运行SQL语句得到累计其它扣发总金额
    try{
      Insure = DM->AQ_Back_Restore->Fields->Fields[0]->Value; //提取累计其它扣发总金额
      }
    catch(...){
      Insure = 0;                                             //如果无其它扣发记录则为0
      }
    //实发工资计算
    PTotal=PWork+POTime+PEvect+Bonus+Welfare+Allow-LateEarly-DAbsent-Insure;

    //添加工资统计记录
    DM->AT_Count->Close();                        //关闭记录编号数据表
    DM->AT_Count->Filter = "Count_Name='Salary'"; //设置过滤器,提取工资统计信息表计数值
    DM->AT_Count->Filtered = true;                //开启过滤器
    DM->AT_Count->Open();                         //打开记录编号计数表
    Record = DM->AT_CountCount_Value->Value;      //提取计数值
    DM->AQ_Salary->Append();                      //追加一条工资统计记录
    DM->AQ_SalarySalary_PID->Value = Person_ID;
    DM->AQ_SalarySalary_Month->Value = IntToStr(year)+"-"+IntToStr(month)+"-01";
    DM->AQ_SalarySalary_PWork->Value = PWork;     //正常工作工资赋值
    DM->AQ_SalarySalary_POTime->Value = POTime;   //加班工资赋值
    DM->AQ_SalarySalary_PEvect->Value = PEvect;   //出差补贴赋值
    DM->AQ_SalarySalary_Bonus->Value = Bonus;     //奖金总金额赋值
    DM->AQ_SalarySalary_Welfare->Value = Welfare; //福利总金额赋值
    DM->AQ_SalarySalary_Allow->Value = Allow;     //津贴总金额赋值
    DM->AQ_SalarySalary_LateEarly->Value = LateEarly;//迟到早退扣发总金额赋值
    DM->AQ_SalarySalary_DAbsent->Value = DAbsent;    //旷工扣发总金额赋值
    DM->AQ_SalarySalary_DInsure->Value = Insure;     //其它扣发总金额赋值
    DM->AQ_SalarySalary_PTotal->Value = PTotal;      //实发工资赋值
    DM->AQ_SalarySalary_ID->Value = Record+1;        //记录编号赋值 
    DM->AQ_Salary->Post();
    return Record;
}
//---------------------------------------------------------------------------

void __fastcall TF_Salary::ToolButton1Click(TObject *Sender)
{   /*****单个工具条快捷按钮单击事件*****/
    DBGrid1DblClick(this);        //增加员工列表中选中员工工号的记录
}
//---------------------------------------------------------------------------

void __fastcall TF_Salary::ToolButton13Click(TObject *Sender)
{   /*****所列工具条快捷按钮单击事件*****/
    DM->AQ_Employee->First();     //移动当前活动记录到第一条记录
    F_Main->CGauge1->Progress = 0;//进度条回到零状态
    for(int i=0;i<DM->AQ_Employee->RecordCount;i++){ //添加所有列表记录
      DBGrid1DblClick(this);      //增加当前活动记录员工工员对应的记录
      DM->AQ_Employee->Next();    //当前活动记录下移一条记录
      F_Main->CGauge1->Progress = 100/DM->AQ_Employee->RecordCount;  //进度条显示统计进度
      }
}
//---------------------------------------------------------------------------

void __fastcall TF_Salary::ToolButton2Click(TObject *Sender)
{   /*****编辑工具条快捷按钮单击事件*****/
    DBNavigator1->BtnClick(nbEdit);    //编辑当前数据表当前活动记录
}
//---------------------------------------------------------------------------

void __fastcall TF_Salary::ToolButton3Click(TObject *Sender)
{   /*****删除工具条快捷按钮单击事件*****/
    DBNavigator1->BtnClick(nbDelete);   //删除当前数据表当前活动记录
}
//---------------------------------------------------------------------------

void __fastcall TF_Salary::ToolButton4Click(TObject *Sender)
{   /*****提交工具条快捷按钮单击事件*****/
    DBNavigator1->BtnClick(nbPost);     //提交当前数据表操作
}
//---------------------------------------------------------------------------

void __fastcall TF_Salary::ToolButton6Click(TObject *Sender)
{   /*****取消工具条快捷按钮单击事件*****/
    DBNavigator1->BtnClick(nbCancel);  //取消当前数据表操作
}
//---------------------------------------------------------------------------

void __fastcall TF_Salary::ToolButton5Click(TObject *Sender)
{   /*****最前条工具条快捷按钮单击事件*****/
    DBNavigator1->BtnClick(nbFirst);   //移动当第一条记录
}
//---------------------------------------------------------------------------

void __fastcall TF_Salary::ToolButton7Click(TObject *Sender)
{   /*****前一条工具条快捷按钮单击事件*****/
    DBNavigator1->BtnClick(nbPrior);   //上移第一条记录
}
//---------------------------------------------------------------------------

void __fastcall TF_Salary::ToolButton8Click(TObject *Sender)
{   /*****后一条工具条快捷按钮单击事件*****/
    DBNavigator1->BtnClick(nbNext);   //下移一条记录
}
//---------------------------------------------------------------------------

void __fastcall TF_Salary::ToolButton9Click(TObject *Sender)
{   /*****最后条工具条快捷按钮单击事件*****/
    DBNavigator1->BtnClick(nbLast);   //移动到最后一条记录
}
//---------------------------------------------------------------------------

void __fastcall TF_Salary::ToolButton12Click(TObject *Sender)
{   /*****关闭工具条快捷按钮单击事件*****/
    F_Salary->Close();                  //关闭工资管理窗口
}
//---------------------------------------------------------------------------

void __fastcall TF_Salary::ToolButton10Click(TObject *Sender)
{   /*****查找工具条快捷按钮单击事件*****/
    TStringList *str1 = new TStringList();
    TStringList *str2 = new TStringList();
    switch(PageControl1->ActivePageIndex){  //判断PageControl现在切换到了那一页,对导航条控件数据源进行动态赋值,实现动态切换数据源的目的
    case 0 :{
      F_Query->Q_Table = "WSalary_Salary";  //赋查找表名为工资统计信息表
      str1->Add("员工工号");       //添加员工工号查找字段
      str2->Add("Salary_PID");     //添加员工工员在数据表中的字段名
      F_Query->T_Field[0] = 0;     //添加部门字段类型代号,为整数类型
      str1->Add("月份");          //添加工资日期查找字段
      str2->Add("Salary_Month");  //添加工资日期在数据表中的字段名
      F_Query->T_Field[1] = 2;     //添加出勤日期字段类型代号,为日期类型
      F_Query->S_Field = str1;
      F_Query->N_Field = str2;
      F_Query->Query = DM->AQ_Salary; //设定查找数据集为工资统计信息表
      F_Query->ShowModal();           //打开数据记录查询窗口
      DM->AQ_Salary = F_Query->Query;
      break;
      }
    case 1 :{
      F_Query->Q_Table = "WSalary_SOther";  //赋查找表名为奖金扣发信息表
      str1->Add("员工工号");       //添加员工工号查找字段
      str2->Add("SOther_PID");     //添加员工工员在数据表中的字段名
      F_Query->T_Field[0] = 0;     //添加部门字段类型代号,为整数类型
      str1->Add("发放月份");       //添加发放月份查找字段
      str2->Add("Stat_YMonth");    //添加发放月份在数据表中的字段名
      F_Query->T_Field[1] = 2;     //添加发放月份字段类型代号,为日期类型
      F_Query->S_Field = str1;
      F_Query->N_Field = str2;
      F_Query->Query = DM->AQ_SOther; //设定查找数据集为奖金扣发信息表
      F_Query->ShowModal();           //打开数据记录查询窗口
      DM->AQ_SOther = F_Query->Query;
      }
    }
    delete str1,str2;            //释放str1,str2对象
}
//---------------------------------------------------------------------------



⌨️ 快捷键说明

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