📄 wsalary_salary.cpp
字号:
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 + -