AddEquip.cpp
资源名称:Equipment.rar [点击查看]
上传用户:latoyin
上传日期:2017-10-19
资源大小:2882k
文件大小:12k
源码类别:
数据库系统
开发平台:
Visual C++
- // AddEquip.cpp : implementation file
- //
- #include "stdafx.h"
- #include "Equipment.h"
- #include "AddEquip.h"
- #include "NumberEdit.h"
- #ifdef _DEBUG
- #define new DEBUG_NEW
- #undef THIS_FILE
- static char THIS_FILE[] = __FILE__;
- #endif
- extern CEquipmentApp theApp;
- /////////////////////////////////////////////////////////////////////////////
- // CAddEquip dialog
- CAddEquip::CAddEquip(CWnd* pParent /*=NULL*/)
- : CDialog(CAddEquip::IDD, pParent)
- {
- m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINTITLE);
- }
- void CAddEquip::DoDataExchange(CDataExchange* pDX)
- {
- CDialog::DoDataExchange(pDX);
- //{{AFX_DATA_MAP(CAddEquip)
- DDX_Control(pDX, IDC_PUREVALUE, purevalue);
- DDX_Control(pDX, IDC_PREPURSERATE, prepurerate);
- DDX_Control(pDX, IDC_PREPUREVALUE, prepurevalue);
- DDX_Control(pDX, IDC_MONTHDEPREVALUE, monthdeprevalue);
- DDX_Control(pDX, IDC_MONTHDEPRERATE, monthdeprerate);
- DDX_Control(pDX, IDC_ADDUPDEPRE, addupdepre);
- DDX_Control(pDX, IDC_SOURCEVALUE, sourcevalue);
- DDX_Control(pDX, IDC_USESTATE, usestate);
- DDX_Control(pDX, IDC_SPEC, spec);
- DDX_Control(pDX, IDC_REGDATE, regdate);
- DDX_Control(pDX, IDC_PREUSEMONTH, preusemonth);
- DDX_Control(pDX, IDC_EQUIPNAME, equipname);
- DDX_Control(pDX, IDC_EQUIPKINDS, equipkinds);
- DDX_Control(pDX, IDC_DEPREMONTH, depremonth);
- DDX_Control(pDX, IDC_DEPREMETHOD, depremethod);
- DDX_Control(pDX, IDC_ADDKINDS, addkinds);
- //}}AFX_DATA_MAP
- }
- BEGIN_MESSAGE_MAP(CAddEquip, CDialog)
- //{{AFX_MSG_MAP(CAddEquip)
- ON_COMMAND(ID_BUTTONCLOSE, OnButtonclose)
- ON_COMMAND(ID_BUTTONREFRESH, OnButtonrefresh)
- ON_EN_CHANGE(IDC_SOURCEVALUE, OnChangeSourcevalue)
- ON_EN_CHANGE(IDC_ADDUPDEPRE, OnChangeAddupdepre)
- ON_EN_CHANGE(IDC_PREPURSERATE, OnChangePrepurserate)
- ON_EN_CHANGE(IDC_PUREVALUE, OnChangePurevalue)
- ON_EN_CHANGE(IDC_PREUSEMONTH, OnChangePreusemonth)
- ON_CBN_SELCHANGE(IDC_DEPREMETHOD, OnSelchangeDepremethod)
- ON_EN_CHANGE(IDC_DEPREMONTH, OnChangeDepremonth)
- ON_EN_CHANGE(IDC_MONTHDEPRERATE, OnChangeMonthdeprerate)
- ON_COMMAND(ID_BUTTONADD, OnButtonadd)
- ON_EN_CHANGE(IDC_PREPUREVALUE, OnChangePrepurevalue)
- //}}AFX_MSG_MAP
- END_MESSAGE_MAP()
- /////////////////////////////////////////////////////////////////////////////
- // CAddEquip message handlers
- void CAddEquip::OnOK()
- {
- // TODO: Add extra validation here
- }
- BOOL CAddEquip::OnInitDialog()
- {
- CDialog::OnInitDialog();
- SetIcon(m_hIcon,true);
- toolbar.Create(TBSTYLE_FLAT|CCS_TOP|WS_CHILD|WS_VISIBLE|WS_BORDER|CCS_ADJUSTABLE|TBSTYLE_WRAPABLE,CRect(0,0,0,0),this,IDR_TOOLBAR2);
- toolbar.SetBitmapSize(CSize(32,32));
- imagelist.Create(32,32,ILC_COLOR32|ILC_MASK,0,0);
- for (int n =0;n<5;n++)
- {
- imagelist.Add(theApp.LoadIcon(n+IDI_ICON1));
- }
- toolbar.SetImageList(&imagelist);
- TBBUTTON buttons[4];
- for (int i =0; i<4;i++)
- {
- CString str;
- int strlength;
- CCHAR *temp;
- if (i<1)
- buttons[i].fsStyle =TBSTYLE_SEP;
- else
- {
- buttons[i].fsStyle =TBSTYLE_BUTTON;
- }
- buttons[i].fsState =TBSTATE_ENABLED;
- buttons[i].dwData =0;
- if ((i ==2)|(i==3))
- {
- buttons[i].idCommand = ID_BUTTONADD+i+1;
- buttons[i].iBitmap = i+1;
- str.LoadString(ID_BUTTONADD+i+1);
- }
- else
- {
- buttons[i].idCommand = ID_BUTTONADD+i-1;
- buttons[i].iBitmap = i-1;
- str.LoadString(ID_BUTTONADD+i-1);//第一个按钮为分隔条
- }
- strlength = str.GetLength()+1;
- temp = str.GetBufferSetLength(strlength);
- temp[strlength]= ' ';
- temp[strlength-1]= ' ';
- buttons[i].iString = toolbar.AddStrings(temp);
- str.ReleaseBuffer();
- }
- toolbar.AutoSize();
- toolbar.AddButtons(4,buttons);
- toolbar.ShowWindow(SW_SHOW);
- OnButtonrefresh();
- return TRUE;
- }
- BOOL CAddEquip::PreTranslateMessage(MSG* pMsg)
- {
- if (pMsg->message ==WM_KEYDOWN)
- if (pMsg->wParam ==13)
- pMsg->wParam = 9;
- return CDialog::PreTranslateMessage(pMsg);
- }
- void CAddEquip::OnButtonclose()
- {
- EndDialog(0);
- }
- void CAddEquip::OnButtonrefresh()
- {
- AddEquipKinds();
- AddEquipMode();
- AddUseState();
- ClearText();
- }
- void CAddEquip::AddEquipKinds()
- {
- _RecordsetPtr temp;
- temp =theApp.datamanage->Record1;
- temp->raw_Close();
- temp->Open("select kinds from tb_kinds",theApp.datamanage->GetConn().GetInterfacePtr(),adOpenKeyset,adLockPessimistic,adCmdText);
- if (temp->RecordCount>0) //如果有数据,利用循环向组合框中添加数据
- {
- equipkinds.ResetContent();
- while (!temp->ADOEOF)
- {
- CString str;
- str = temp->GetFields()->GetItem("kinds")->Value.bstrVal;
- equipkinds.AddString(str);
- temp->MoveNext();
- }
- }
- }
- void CAddEquip::AddEquipMode()
- {
- _RecordsetPtr temp;
- temp =theApp.datamanage->Record1;
- temp->raw_Close();
- temp->Open("select addkinds from tb_addkinds",theApp.datamanage->GetConn().GetInterfacePtr(),adOpenKeyset,adLockPessimistic,adCmdText);
- if (temp->RecordCount>0) //如果有数据,利用循环向组合框中添加数据
- {
- addkinds.ResetContent();
- while (!temp->ADOEOF)
- {
- CString str;
- str = temp->GetFields()->GetItem("addkinds")->Value.bstrVal;
- addkinds.AddString(str);
- temp->MoveNext();
- }
- }
- }
- void CAddEquip::ClearText()
- {
- CWnd * temp;
- temp = this;
- for (int i= 0;i<16;i++)
- {
- temp = this->GetNextDlgTabItem(temp);
- temp->SetWindowText("");
- }
- //设置日期
- CTime t=CTime::GetCurrentTime();
- regdate.SetTime(&t);
- }
- //入账原值改变时的事件
- void CAddEquip::OnChangeSourcevalue()
- {
- CString temp1,temp2;
- sourcevalue.GetWindowText(temp1);
- addupdepre.GetWindowText(temp2);
- if ((temp1.IsEmpty())|(temp2.IsEmpty())) //如果入账原值或累计折旧为空,净值为空
- {
- purevalue.SetWindowText("");
- }
- else
- {
- float source,add,netvalue;
- source = atof(temp1);
- add = atof(temp2);
- netvalue = source-add;
- CString temp3;
- temp3.Format("%f",netvalue);
- purevalue.SetWindowText(temp3);
- }
- OnChangePrepurserate();//计算预计净残值
- }
- //累计折旧改变时的事件
- void CAddEquip::OnChangeAddupdepre()
- {
- OnChangeSourcevalue(); //调用入账原值改变时的事件
- }
- //处理预计净残值率改变时的事件,用于计算预计净残值,月折旧率
- void CAddEquip::OnChangePrepurserate()
- {
- CString temp1,temp2;
- prepurerate.GetWindowText(temp1); //获得净残值率
- sourcevalue.GetWindowText(temp2);//获入账原值
- if ((temp1.IsEmpty())|(temp2.IsEmpty())) //如果净值或净残值率为空,清空净残值
- {
- prepurevalue.SetWindowText("");
- }
- else
- {
- float netrate,value,netvalue;
- netrate = atof(temp1);
- value = atof(temp2);
- //净残值 = 入账原值 * 净残值率
- netvalue = value * netrate;
- CString temp3;
- temp3.Format("%f",netvalue);
- prepurevalue.SetWindowText(temp3);
- }
- OnChangePreusemonth();//计算月折旧率
- }
- //处理净值改变时的事件
- void CAddEquip::OnChangePurevalue()
- {
- //月折旧额 =( 入账原值-累计折旧-预计净残值)/(预计使用月份-已计提月份)
- CString c_temp1,c_temp2,c_temp3,c_temp4,c_temp5;
- sourcevalue.GetWindowText(c_temp1);
- addupdepre.GetWindowText(c_temp2);
- prepurevalue.GetWindowText(c_temp3);
- preusemonth.GetWindowText(c_temp4);
- depremonth.GetWindowText(c_temp5);
- if (c_temp1.IsEmpty()|c_temp2.IsEmpty()|c_temp3.IsEmpty()|c_temp4.IsEmpty()|c_temp5.IsEmpty())
- {
- monthdeprevalue.SetWindowText("");
- }
- else
- {
- float f_value1,f_value2,f_value3,f_value4,f_value5,f_value;
- f_value1 = atof(c_temp1);
- f_value2 = atof(c_temp2);
- f_value3 = atof(c_temp3);
- f_value4 = atof(c_temp4);
- f_value5 = atof(c_temp5);
- f_value = (f_value1-f_value2-f_value3)/(f_value4-f_value5);
- CString temp;
- temp.Format("%f",f_value);
- monthdeprevalue.SetWindowText(temp);
- }
- }
- //处理预计使用月份的OnChange事件,计算月折旧率
- void CAddEquip::OnChangePreusemonth()
- {
- CString temp1,temp2;
- preusemonth.GetWindowText(temp1); //获得预计使用月份
- prepurerate.GetWindowText(temp2);//获得净残值率
- if ((temp1.IsEmpty())|(temp2.IsEmpty())) //如果预计使用月份或净残值率为空,清空月折旧率
- {
- monthdeprerate.SetWindowText("");
- }
- else
- {
- float monthrate,value,monthvalue;
- monthvalue = atof(temp1);
- value = atof(temp2);
- //月折旧率 = (1 - 净残值率)/预计使用月份
- monthrate = (1- value)/(monthvalue);
- CString temp3;
- temp3.Format("%f",monthrate);
- monthdeprerate.SetWindowText(temp3);
- }
- }
- //处理折旧方法改变时的事件,计算月折旧额
- void CAddEquip::OnSelchangeDepremethod()
- {
- if (depremethod.GetCurSel()==-1)
- monthdeprevalue.SetWindowText("");
- else if (depremethod.GetCurSel()==0) //平均年限法1
- {
- CString value1,value2;
- sourcevalue.GetWindowText(value1);//获取入账原值
- monthdeprerate.GetWindowText(value2);
- if ((value1.IsEmpty())|(value2.IsEmpty())) //如果入账原值或月折旧率为空,月折旧额为空
- monthdeprevalue.SetWindowText("");
- else //计算月折旧额
- {
- //月折旧额 = 入账原值*月折旧率
- float m_value,m_rate,s_value;
- m_rate = atof(value2);
- s_value = atof(value1);
- m_value = s_value * m_rate;
- CString c_value;
- c_value.Format("%f",m_value);
- monthdeprevalue.SetWindowText(c_value);
- }
- }
- else //平均年限法2
- {
- OnChangePurevalue(); //调用预计净残值改变时的事件
- }
- }
- void CAddEquip::OnChangeDepremonth()
- {
- if (depremethod.GetCurSel()==1)//平均年限法2
- OnChangePurevalue();
- }
- void CAddEquip::OnChangeMonthdeprerate()
- {
- OnSelchangeDepremethod() ;
- }
- void CAddEquip::AddUseState()
- {
- _RecordsetPtr temp;
- temp =theApp.datamanage->Record1;
- temp->raw_Close();
- temp->Open("select usestate from tb_usestate",theApp.datamanage->GetConn().GetInterfacePtr(),adOpenKeyset,adLockPessimistic,adCmdText);
- if (temp->RecordCount>0) //如果有数据,利用循环向组合框中添加数据
- {
- usestate.ResetContent();
- while (!temp->ADOEOF)
- {
- CString str;
- str = temp->GetFields()->GetItem("usestate")->Value.bstrVal;
- usestate.AddString(str);
- temp->MoveNext();
- }
- }
- }
- bool CAddEquip::InfoIsNull()
- {
- CWnd * temp;
- temp = this;
- for (int i= 0;i<16;i++)
- {
- temp = this->GetNextDlgTabItem(temp);
- CString str;
- temp->GetWindowText(str);
- if (str.IsEmpty())
- {
- return true;
- }
- }
- return false;
- }
- bool CAddEquip::IsNegative()
- {
- CString c_value1,c_value2,c_value3,c_value4,c_value5,c_value6,c_value7,c_value8;
- float f_value1,f_value2,f_value3,f_value4,f_value5,f_value6,f_value7,f_value8;
- sourcevalue.GetWindowText(c_value1);//入账原值
- addupdepre.GetWindowText(c_value2);//累计折旧
- purevalue.GetWindowText(c_value3);//净值
- prepurevalue.GetWindowText(c_value4);//净残值率
- preusemonth.GetWindowText(c_value5);//预计使用月份
- depremonth.GetWindowText(c_value6);//已计提月份
- monthdeprerate.GetWindowText(c_value7);//月折旧率
- monthdeprevalue.GetWindowText(c_value8); //月折旧额
- f_value1 = atof(c_value1);
- f_value2 = atof(c_value2);
- f_value3 = atof(c_value3);
- f_value4 = atof(c_value4);
- f_value5 = atof(c_value5);
- f_value6 = atof(c_value6);
- f_value7 = atof(c_value7);
- f_value8 = atof(c_value8);
- if ((f_value1 <0)|(f_value2<0)|(f_value3<0)|(f_value4 <0)|(f_value5 <0)|(f_value6 <0)|(f_value7 <0))
- return true;
- else
- return false;
- }
- void CAddEquip::OnButtonadd()
- {
- if (!InfoIsNull())
- if (!IsNegative())
- {
- float f_sourcevalue,f_addupdepre,f_netvalue,f_prenetrate,f_prenetvalue,f_premonth,f_month,f_deprevalue,f_deprerate;
- CTime t;
- regdate.GetTime(t);
- CString arrays[16];
- CWnd * temp;
- temp = this;
- for (int i= 0;i<16;i++)
- {
- temp = this->GetNextDlgTabItem(temp);
- temp->GetWindowText(arrays[i]);
- }
- f_sourcevalue = atof(arrays[3]);
- f_addupdepre = atof(arrays[4]);
- f_netvalue = atof(arrays[5]);
- f_prenetrate = atof(arrays[8]);
- f_prenetvalue = atof(arrays[9]);
- f_premonth = atoi(arrays[11]);
- f_month = atoi(arrays[12]);
- f_deprerate = atof(arrays[14]);
- f_deprevalue = atof(arrays[15]);
- try
- { //执行存储过程保存数据
- CString sql;
- CString str;
- str = "temp";
- sql.Format(" Add_Equipmentinfo '%s','%s','%s',%f,%f,%f,'%s','%s',%f,%f,'%s',%f,%f,'%s',%f,%f ,'%s'",arrays[0],arrays[1],arrays[2],f_sourcevalue,f_addupdepre,f_netvalue,arrays[6],arrays[7],f_prenetrate,f_prenetvalue,arrays[10],f_premonth,f_month,arrays[13],f_deprerate,f_deprevalue,str);
- theApp.datamanage->ExecSQL(sql);
- MessageBox("操作成功.","提示",64);
- }
- catch(...)
- {
- MessageBox("操作失败.","提示",64);
- }
- OnButtonrefresh();
- }
- else
- {
- MessageBox("基础信息不能出现负数.","提示",64);
- }
- else
- this->MessageBox("基础信息不能为空.","提示",64);
- }
- void CAddEquip::OnChangePrepurevalue()
- {
- // TODO: If this is a RICHEDIT control, the control will not
- // send this notification unless you override the CDialog::OnInitDialog()
- // function and call CRichEditCtrl().SetEventMask()
- // with the ENM_CHANGE flag ORed into the mask.
- // TODO: Add your control notification handler code here
- }