?? 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 + -