📄 addmodifyassets.cpp
字号:
// AddModifyAssets.cpp : implementation file
//
#include "stdafx.h"
#include "FixedAssets.h"
#include "AddModifyAssets.h"
#include "CRACK.h"
#include "PromptDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CAddModifyAssets dialog
CAddModifyAssets::CAddModifyAssets(CWnd* pParent /*=NULL*/)
: CDialog(CAddModifyAssets::IDD, pParent)
{
//{{AFX_DATA_INIT(CAddModifyAssets)
m_InDate = -1;
m_strInterID = _T("");
m_LFDate = -1;
m_strName = _T("");
m_strRemark = _T("");
m_strType = _T("");
m_strFactory = _T("");
m_strUseInfo = _T("");
m_strAssetID = _T("");
m_LeftValue = 0.0;
m_dOrigValue = 0.0;
m_dLRatio = 0.0;
m_nYearNum = 0;
//}}AFX_DATA_INIT
m_ID=_T("");
}
void CAddModifyAssets::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CAddModifyAssets)
DDX_Control(pDX, IDC_AM_AssetID, m_CtrlEditAssetID);
DDX_Control(pDX, IDC_AM_TYPE, m_CtrlEditType);
DDX_Control(pDX, IDC_AM_NAME, m_CtrlEditName);
DDX_Control(pDX, IDC_AM_USEINFO, m_CtrlCBUseInfo);
DDX_Control(pDX, IDC_AM_SORT, m_CtrlCBSort);
DDX_Control(pDX, IDC_AM_LIST, m_CtrlList);
DDX_Control(pDX, IDC_AM_KEEPER, m_CtrlCBKeeper);
DDX_Control(pDX, IDC_AM_FACTORY, m_CtrlCBFactory);
DDX_Control(pDX, IDC_AM_DEPRECIATION, m_CtrlCBDepreciation);
DDX_Control(pDX, IDC_AM_DEPOSITARY, m_CtrlCBDepositary);
DDX_Control(pDX, IDC_AM_DEPARTMENT, m_CtrlCBDepartment);
DDX_Control(pDX, IDC_AM_ADDTYPE, m_CtrlCBAddType);
DDX_DateTimeCtrl(pDX, IDC_AM_INDATE, m_InDate);
DDX_Text(pDX, IDC_AM_INTERID, m_strInterID);
DDX_DateTimeCtrl(pDX, IDC_AM_LFDATE, m_LFDate);
DDX_Text(pDX, IDC_AM_NAME, m_strName);
DDX_Text(pDX, IDC_AM_REMARK, m_strRemark);
DDX_Text(pDX, IDC_AM_TYPE, m_strType);
DDX_CBString(pDX, IDC_AM_FACTORY, m_strFactory);
DDX_CBString(pDX, IDC_AM_USEINFO, m_strUseInfo);
DDX_Text(pDX, IDC_AM_AssetID, m_strAssetID);
DDX_Text(pDX, IDC_AM_LEFTVALUE, m_LeftValue);
DDX_Text(pDX, IDC_AM_ORIGVALUE, m_dOrigValue);
DDV_MinMaxDouble(pDX, m_dOrigValue, 0., 9.e+030);
DDX_Text(pDX, IDC_LRATIO, m_dLRatio);
DDV_MinMaxDouble(pDX, m_dLRatio, 0., 1.);
DDX_Text(pDX, IDC_AM_YEARNUM, m_nYearNum);
DDV_MinMaxInt(pDX, m_nYearNum, 0, 1000);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CAddModifyAssets, CDialog)
//{{AFX_MSG_MAP(CAddModifyAssets)
ON_BN_CLICKED(IDD_ADD, OnAddModify)
ON_BN_CLICKED(IDD_REFRESH, OnRefreshDelet)
ON_NOTIFY(LVN_ITEMCHANGED, IDC_AM_LIST, OnItemchangedAmList)
ON_EN_CHANGE(IDC_AM_ORIGVALUE, OnChangeAmOrigvalue)
ON_EN_CHANGE(IDC_AM_LEFTVALUE, OnChangeAmLeftvalue)
ON_EN_CHANGE(IDC_LRATIO, OnChangeLratio)
ON_EN_CHANGE(IDC_AM_YEARNUM, OnChangeAmYearnum)
ON_CBN_SELCHANGE(IDC_AM_ADDTYPE, OnSelchangeAmAddtype)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CAddModifyAssets message handlers
int CAddModifyAssets::DoModal()
{
// TODO: Add your specialized code here and/or call the base class
return CDialog::DoModal();
}
BOOL CAddModifyAssets::OnInitDialog()
{
CDialog::OnInitDialog();
//设置列表框控件属性为可整行选择,各项间画线区分
m_CtrlList.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
if(AddModify)//添加
{
//按钮上的字
SetDlgItemText(IDD_ADD,"添加"); //第一个按钮
SetDlgItemText(IDD_REFRESH,"刷新"); //第二个按钮
SetWindowText("添加固定资产"); //对话框标题
}
else//修改
{
//按钮上的字
SetDlgItemText(IDD_ADD,"修改"); //第一个按钮
SetDlgItemText(IDD_REFRESH,"删除"); //第二个按钮
SetWindowText("变更固定资产信息"); //对话框标题
//调用函数SetEditable,该函数用于使对话框中的控件处于不可用态
SetEditable(0);
}
//连接数据库
m_pDatabase=new CDaoDatabase;
try{
m_pDatabase->Open("FixedAssets");
m_pRecordset=new CDaoRecordset(m_pDatabase);
}
catch(CDaoException *e)
{
e->ReportError();
delete m_pDatabase;
m_pDatabase=NULL;
e->Delete();
}
//初始化变量
if(!m_pDatabase->IsOpen()) return 0;
if(!m_pRecordset) return 0;
if(m_pRecordset->IsOpen()) m_pRecordset->Close();
CString strSelect;
try
{ //保管人员
strSelect = _T("Select 保管人员ID,保管人员 From 保管人员");
m_pRecordset->Open(dbOpenDynaset,strSelect);
while (!m_pRecordset->IsEOF())
{
COleVariant var;
var = m_pRecordset->GetFieldValue(0);
m_uaKeeper.Add(var.lVal);
var = m_pRecordset->GetFieldValue(1);
m_saKeeper.Add(CCrack::strVARIANT(var));
m_pRecordset->MoveNext();
}
m_pRecordset->Close();
// 部门
strSelect = _T("Select 部门ID,部门名称 From 部门");
m_pRecordset->Open(dbOpenDynaset,strSelect);
while (!m_pRecordset->IsEOF())
{
COleVariant var;
var = m_pRecordset->GetFieldValue(0);
m_uaDepartment.Add(var.lVal);
var = m_pRecordset->GetFieldValue(1);
m_saDepartment.Add(CCrack::strVARIANT(var));
m_pRecordset->MoveNext();
}
m_pRecordset->Close();
// 存放地点
strSelect = _T("Select 存放地点ID,存放地点 From 存放地点");
m_pRecordset->Open(dbOpenDynaset,strSelect);
while (!m_pRecordset->IsEOF())
{
COleVariant var;
var = m_pRecordset->GetFieldValue(0);
m_uaDepositary.Add(var.lVal);
var = m_pRecordset->GetFieldValue(1);
m_saDepositary.Add(CCrack::strVARIANT(var));
m_pRecordset->MoveNext();
}
m_pRecordset->Close();
// 增加方式
strSelect = _T("Select 增加方式ID,增加方式 From 增加方式");
m_pRecordset->Open(dbOpenDynaset,strSelect);
while (!m_pRecordset->IsEOF())
{
COleVariant var;
var = m_pRecordset->GetFieldValue(0);
m_uaAddType.Add(var.lVal);
var = m_pRecordset->GetFieldValue(1);
m_saAddType.Add(CCrack::strVARIANT(var));
m_pRecordset->MoveNext();
}
m_pRecordset->Close();
// 资产类别
strSelect = _T("Select 资产类别ID,资产类别 From 资产类别");
m_pRecordset->Open(dbOpenDynaset,strSelect);
while (!m_pRecordset->IsEOF())
{
COleVariant var;
var = m_pRecordset->GetFieldValue(0);
m_uaSort.Add(var.lVal);
var = m_pRecordset->GetFieldValue(1);
m_saSort.Add(CCrack::strVARIANT(var));
m_pRecordset->MoveNext();
}
m_pRecordset->Close();
//生产厂家
strSelect = _T("Select DISTINCT 生产厂家 From 资产信息");
m_pRecordset->Open(dbOpenDynaset,strSelect);
while (!m_pRecordset->IsEOF())
{
COleVariant var;
var = m_pRecordset->GetFieldValue(0);
m_CtrlCBFactory.AddString(CCrack::strVARIANT(var));
m_pRecordset->MoveNext();
}
m_pRecordset->Close();
}
catch (CDaoException* e)
{
e->ReportError();
e->Delete();
return 0;
}
int nIndex,i;
for(i=0;i<m_saKeeper.GetSize();i++) //初始化 保管人员
{
nIndex =m_CtrlCBKeeper.InsertString(i,m_saKeeper.GetAt(i));
m_CtrlCBKeeper.SetItemData(nIndex, m_uaKeeper.GetAt(i));
}
for(i=0;i<m_saDepartment.GetSize();i++) //初始化 部门
{
nIndex =m_CtrlCBDepartment.InsertString(i,m_saDepartment.GetAt(i));
m_CtrlCBDepartment.SetItemData(nIndex, m_uaDepartment.GetAt(i));
}
for(i=0;i<m_saDepositary.GetSize();i++) //初始化 存放地点
{
nIndex =m_CtrlCBDepositary.InsertString(i,m_saDepositary.GetAt(i));
m_CtrlCBDepositary.SetItemData(nIndex, m_uaDepositary.GetAt(i));
}
for(i=0;i<m_saAddType.GetSize();i++) //初始化 增加方式
{
nIndex =m_CtrlCBAddType.InsertString(i,m_saAddType.GetAt(i));
m_CtrlCBAddType.SetItemData(nIndex, m_uaAddType.GetAt(i));
}
for(i=0;i<m_saSort.GetSize();i++) //初始化 类别
{
nIndex =m_CtrlCBSort.InsertString(i,m_saSort.GetAt(i));
m_CtrlCBSort.SetItemData(nIndex, m_uaSort.GetAt(i));
}
m_CtrlCBDepreciation.InsertString(0,"平均年限法"); //初始化折旧方法
m_CtrlCBDepreciation.InsertString(1,"工作量法");
m_CtrlCBDepreciation.InsertString(2,"双倍余额递减法");
m_CtrlCBDepreciation.InsertString(3,"年数总和法");
m_CtrlCBDepreciation.InsertString(4,"不折旧");
m_CtrlCBUseInfo.InsertString(0,"使用中"); //初始化使用情况
m_CtrlCBUseInfo.InsertString(1,"不使用");
m_CtrlCBUseInfo.InsertString(2,"不需要");
m_CtrlCBUseInfo.InsertString(3,"经营性出租");
Refresh(); //刷新list控件
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CAddModifyAssets::SetEditable(bool label)
{
(CButton*)GetDlgItem(IDD_ADD)->EnableWindow(label);
(CButton*)GetDlgItem(IDD_REFRESH)->EnableWindow(label);
(CEdit*)GetDlgItem(IDC_AM_NAME)->EnableWindow(label);
(CEdit*)GetDlgItem(IDC_AM_AssetID)->EnableWindow(label);
(CEdit*)GetDlgItem(IDC_AM_TYPE)->EnableWindow(label);
(CEdit*)GetDlgItem(IDC_AM_INTERID)->EnableWindow(label);
(CEdit*)GetDlgItem(IDC_AM_LEFTVALUE)->EnableWindow(label);
(CEdit*)GetDlgItem(IDC_AM_ORIGVALUE)->EnableWindow(label);
(CEdit*)GetDlgItem(IDC_LRATIO)->EnableWindow(label);
(CEdit*)GetDlgItem(IDC_AM_YEARNUM)->EnableWindow(label);
(CEdit*)GetDlgItem(IDC_AM_REMARK)->EnableWindow(label);
(CComboBox*)GetDlgItem(IDC_AM_FACTORY)->EnableWindow(label);
(CComboBox*)GetDlgItem(IDC_AM_DEPRECIATION)->EnableWindow(label);
(CComboBox*)GetDlgItem(IDC_AM_DEPARTMENT)->EnableWindow(label);
(CComboBox*)GetDlgItem(IDC_AM_DEPOSITARY)->EnableWindow(label);
(CComboBox*)GetDlgItem(IDC_AM_SORT)->EnableWindow(label);
(CComboBox*)GetDlgItem(IDC_AM_USEINFO)->EnableWindow(label);
(CComboBox*)GetDlgItem(IDC_AM_ADDTYPE)->EnableWindow(label);
(CComboBox*)GetDlgItem(IDC_AM_KEEPER)->EnableWindow(label);
(CDateTimeCtrl*)GetDlgItem(IDC_AM_LFDATE)->EnableWindow(label);
(CDateTimeCtrl*)GetDlgItem(IDC_AM_INDATE)->EnableWindow(label);
}
void CAddModifyAssets::Refresh()//刷新
{
m_strTableName = _T("资产信息");
if(!m_pDatabase->IsOpen()) return;
if(!m_pRecordset) return;
if(m_pRecordset->IsOpen()) m_pRecordset->Close();
//清空list控件
m_CtrlList.DeleteAllItems();
while(m_CtrlList.DeleteColumn(0));
CDaoFieldInfo fieldInfo;
int nFields;
CDaoTableDef td(m_pDatabase);
try
{
td.Open(m_strTableName);
nFields = td.GetFieldCount();
for (int j=0; j < nFields; j++)
{
td.GetFieldInfo(j,fieldInfo);
int nWidth = m_CtrlList.GetStringWidth(fieldInfo.m_strName) + 15;
m_CtrlList.InsertColumn(j,fieldInfo.m_strName, LVCFMT_LEFT, nWidth);
}
}
catch (CDaoException* e)
{
e->ReportError();
e->Delete();
return;
}
td.Close();
int nItem = 0,i;
try
{
CString strSelect(_T("Select * From ["));
strSelect += m_strTableName;
strSelect += _T("]");
m_pRecordset->Open(dbOpenDynaset,strSelect);
while (!m_pRecordset->IsEOF())
{
COleVariant var;
var = m_pRecordset->GetFieldValue(0);
m_CtrlList.InsertItem(nItem,CCrack::strVARIANT(var));
for (i=0; i < nFields; i++)
{
var = m_pRecordset->GetFieldValue(i);
if(i==3||i==15||i==16||i==17||i==18)
{
CString item;
item=IdToString(atoi(CCrack::strVARIANT(var)),i);
m_CtrlList.SetItemText( nItem,i,item);
continue;
}
m_CtrlList.SetItemText( nItem,i,CCrack::strVARIANT(var));
}
nItem++;
m_pRecordset->MoveNext();
}
}
catch (CDaoException* e)
{
e->ReportError();
e->Delete();
return;
}
}
void CAddModifyAssets::Empty()
{
m_ID=_T("");
m_strInterID = _T("");
m_LeftValue =0;
m_strName = _T("");
m_strAssetID = _T("");
m_dOrigValue =0;
m_strRemark = _T("");
m_strType = _T("");
m_nYearNum =0;
m_dLRatio = 0;
m_strFactory=_T("");
m_CtrlCBKeeper.SetCurSel(-1);
m_CtrlCBDepartment.SetCurSel(-1);
m_CtrlCBDepositary.SetCurSel(-1);
m_CtrlCBUseInfo.SetCurSel(-1);
m_CtrlCBAddType.SetCurSel(-1);
m_CtrlCBSort.SetCurSel(-1);
m_CtrlCBDepreciation.SetCurSel(-1);
m_LFDate=CTime::GetCurrentTime();
m_InDate=CTime::GetCurrentTime();
UpdateData(0);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -