?? findother.cpp
字號:
// FindOther.cpp : implementation file
//
#include "stdafx.h"
#include "FixedAssets.h"
#include "FindOther.h"
#include "CRACK.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CFindOther dialog
CFindOther::CFindOther(CWnd* pParent /*=NULL*/)
: CDialog(CFindOther::IDD, pParent)
{
//{{AFX_DATA_INIT(CFindOther)
m_strAssetID = _T("");
m_CKAddType = FALSE;
m_CKAssetID = FALSE;
m_CKDepartment = FALSE;
m_CKInDate = FALSE;
m_CKInterID = FALSE;
m_CKKeeper = FALSE;
m_CKLFDate = FALSE;
m_CKName = FALSE;
m_CKPosition = FALSE;
m_CKSort = FALSE;
m_CKType = FALSE;
m_CKUseInfo = FALSE;
m_CKYearNum = FALSE;
m_InDate1 = -1;
m_InDate2 = -1;
m_strInterID = _T("");
m_LFDate1 = -1;
m_LFDate2 = -1;
m_strName = _T("");
m_strType = _T("");
m_strUseInfo = _T("");
m_nYearNum1 = 0;
m_nYearNum2 = 0;
//}}AFX_DATA_INIT
flag=0;
}
void CFindOther::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CFindOther)
DDX_Control(pDX, IDC_FDOR_USEINFO, m_CtrlCBUseInfo);
DDX_Control(pDX, IDC_FDOR_TYPE, m_CtrlCBType);
DDX_Control(pDX, IDC_FDOR_SORT, m_CtrlCBSort);
DDX_Control(pDX, IDC_FDOR_POSITION, m_CtrlCBPosition);
DDX_Control(pDX, IDC_FDOR_NAME, m_CtrlCBName);
DDX_Control(pDX, IDC_FDOR_LIST, m_CtrlList);
DDX_Control(pDX, IDC_FDOR_ADDTYPE, m_CtrlCBAddType);
DDX_Control(pDX, IDC_FDOR_DEPARTMENT, m_CtrlCBDepartment);
DDX_Control(pDX, IDC_FDOR_KEEPER, m_CtrlCBKeeper);
DDX_Control(pDX, IDC_FDOR_INTERID, m_CtrlCBInterID);
DDX_Control(pDX, IDC_FDOR_ASSETID, m_CtrlCBAssetID);
DDX_CBString(pDX, IDC_FDOR_ASSETID, m_strAssetID);
DDX_Check(pDX, IDC_FDOR_CKADDTYPE, m_CKAddType);
DDX_Check(pDX, IDC_FDOR_CKASSETID, m_CKAssetID);
DDX_Check(pDX, IDC_FDOR_CKDEPARTMENT, m_CKDepartment);
DDX_Check(pDX, IDC_FDOR_CKINDATE, m_CKInDate);
DDX_Check(pDX, IDC_FDOR_CKINTERID, m_CKInterID);
DDX_Check(pDX, IDC_FDOR_CKKEEPER, m_CKKeeper);
DDX_Check(pDX, IDC_FDOR_CKLFDATE, m_CKLFDate);
DDX_Check(pDX, IDC_FDOR_CKNAME, m_CKName);
DDX_Check(pDX, IDC_FDOR_CKPOSITION, m_CKPosition);
DDX_Check(pDX, IDC_FDOR_CKSORT, m_CKSort);
DDX_Check(pDX, IDC_FDOR_CKTYPE, m_CKType);
DDX_Check(pDX, IDC_FDOR_CKUSEINFO, m_CKUseInfo);
DDX_Check(pDX, IDC_FDOR_CKYEARNUM, m_CKYearNum);
DDX_DateTimeCtrl(pDX, IDC_FDOR_INDATE1, m_InDate1);
DDX_DateTimeCtrl(pDX, IDC_FDOR_INDATE2, m_InDate2);
DDX_CBString(pDX, IDC_FDOR_INTERID, m_strInterID);
DDX_DateTimeCtrl(pDX, IDC_FDOR_LFDATE1, m_LFDate1);
DDX_DateTimeCtrl(pDX, IDC_FDOR_LFDATE2, m_LFDate2);
DDX_CBString(pDX, IDC_FDOR_NAME, m_strName);
DDX_CBString(pDX, IDC_FDOR_TYPE, m_strType);
DDX_CBString(pDX, IDC_FDOR_USEINFO, m_strUseInfo);
DDX_Text(pDX, IDC_FDOR_YEARNUM1, m_nYearNum1);
DDV_MinMaxInt(pDX, m_nYearNum1, 0, 1000);
DDX_Text(pDX, IDC_FDOR_YEARNUM2, m_nYearNum2);
DDV_MinMaxInt(pDX, m_nYearNum2, 0, 1000);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CFindOther, CDialog)
//{{AFX_MSG_MAP(CFindOther)
ON_BN_CLICKED(IDC_FDOR_CKNAME, OnFdorCkname)
ON_BN_CLICKED(IDC_FDOR_CKASSETID, OnFdorCkassetid)
ON_BN_CLICKED(IDC_FDOR_CKSORT, OnFdorCksort)
ON_BN_CLICKED(IDC_FDOR_CKTYPE, OnFdorCktype)
ON_BN_CLICKED(IDC_FDOR_CKLFDATE, OnFdorCklfdate)
ON_BN_CLICKED(IDC_FDOR_CKINDATE, OnFdorCkindate)
ON_BN_CLICKED(IDC_FDOR_CKYEARNUM, OnFdorCkyearnum)
ON_BN_CLICKED(IDC_FDOR_CKADDTYPE, OnFdorCkaddtype)
ON_BN_CLICKED(IDC_FDOR_CKUSEINFO, OnFdorCkuseinfo)
ON_BN_CLICKED(IDC_FDOR_CKDEPARTMENT, OnFdorCkdepartment)
ON_BN_CLICKED(IDC_FDOR_CKINTERID, OnFdorCkinterid)
ON_BN_CLICKED(IDC_FDOR_CKPOSITION, OnFdorCkposition)
ON_BN_CLICKED(IDC_FDOR_CKKEEPER, OnFdorCkkeeper)
ON_EN_CHANGE(IDC_FDOR_YEARNUM1, OnChangeFdorYearnum1)
ON_EN_CHANGE(IDC_FDOR_YEARNUM2, OnChangeFdorYearnum2)
ON_BN_CLICKED(IDC_FDOR_FIND, OnFdorFind)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CFindOther message handlers
int CFindOther::DoModal()
{
// TODO: Add your specialized code here and/or call the base class
return CDialog::DoModal();
}
BOOL CFindOther::DestroyWindow()
{
// TODO: Add your specialized code here and/or call the base class
m_pDatabase->Close();
delete m_pDatabase;
m_pDatabase=NULL;
return CDialog::DestroyWindow();
}
BOOL CFindOther::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
m_CtrlList.SetExtendedStyle(LVS_EX_GRIDLINES);
//連接數(shù)據(jù)庫
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();
// 資產(chǎn)類別
strSelect = _T("Select 資產(chǎn)類別ID,資產(chǎn)類別 From 資產(chǎn)類別");
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();
}
// close recordset
m_pRecordset->Close();
strSelect = _T("Select DISTINCT 資產(chǎn)名稱 From 資產(chǎn)信息");
m_pRecordset->Open(dbOpenDynaset,strSelect);
while (!m_pRecordset->IsEOF())
{
COleVariant var;
var = m_pRecordset->GetFieldValue(0);
m_CtrlCBName.AddString(CCrack::strVARIANT(var));
m_pRecordset->MoveNext();
}
m_pRecordset->Close();
strSelect = _T("Select DISTINCT 資產(chǎn)編號 From 資產(chǎn)信息");
m_pRecordset->Open(dbOpenDynaset,strSelect);
while (!m_pRecordset->IsEOF())
{
COleVariant var;
var = m_pRecordset->GetFieldValue(0);
m_CtrlCBAssetID.AddString(CCrack::strVARIANT(var));
m_pRecordset->MoveNext();
}
m_pRecordset->Close();
strSelect = _T("Select DISTINCT 型號 From 資產(chǎn)信息");
m_pRecordset->Open(dbOpenDynaset,strSelect);
while (!m_pRecordset->IsEOF())
{
COleVariant var;
var = m_pRecordset->GetFieldValue(0);
m_CtrlCBType.AddString(CCrack::strVARIANT(var));
m_pRecordset->MoveNext();
}
m_pRecordset->Close();
strSelect = _T("Select DISTINCT 國際編號 From 資產(chǎn)信息");
m_pRecordset->Open(dbOpenDynaset,strSelect);
while (!m_pRecordset->IsEOF())
{
COleVariant var;
var = m_pRecordset->GetFieldValue(0);
m_CtrlCBInterID.AddString(CCrack::strVARIANT(var));
m_pRecordset->MoveNext();
}
m_pRecordset->Close();
strSelect = _T("Select DISTINCT 使用情況 From 資產(chǎn)信息");
m_pRecordset->Open(dbOpenDynaset,strSelect);
while (!m_pRecordset->IsEOF())
{
COleVariant var;
var = m_pRecordset->GetFieldValue(0);
m_CtrlCBUseInfo.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.AddString(m_saKeeper.GetAt(i));
m_CtrlCBKeeper.SetItemData(nIndex, m_uaKeeper.GetAt(i));
}
for(i=0;i<m_saDepositary.GetSize();i++) //初始化 存放地點
{
nIndex =m_CtrlCBPosition.AddString(m_saDepositary.GetAt(i));
m_CtrlCBPosition.SetItemData(nIndex, m_uaDepositary.GetAt(i));
}
for(i=0;i<m_saAddType.GetSize();i++) //初始化 增加方式
{
nIndex =m_CtrlCBAddType.AddString(m_saAddType.GetAt(i));
m_CtrlCBAddType.SetItemData(nIndex, m_uaAddType.GetAt(i));
}
for(i=0;i<m_saDepartment.GetSize();i++) //初始化 部門
{
nIndex =m_CtrlCBDepartment.AddString(m_saDepartment.GetAt(i));
m_CtrlCBDepartment.SetItemData(nIndex, m_uaDepartment.GetAt(i));
}
for(i=0;i<m_saSort.GetSize();i++) //初始化類別
{
nIndex =m_CtrlCBSort.AddString(m_saSort.GetAt(i));
m_CtrlCBSort.SetItemData(nIndex, m_uaSort.GetAt(i));
}
strSelect=_T("Select * From 資產(chǎn)信息");
Refresh(strSelect);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CFindOther::Refresh(CString strSelect)//刷新
{
m_strTableName = _T("資產(chǎn)信息");
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();
int nWidth;
for (int j=0; j < nFields; j++)
{
td.GetFieldInfo(j,fieldInfo);
nWidth = m_CtrlList.GetStringWidth(fieldInfo.m_strName) + 15;
m_CtrlList.InsertColumn(j+2,fieldInfo.m_strName, LVCFMT_LEFT, nWidth);
}
}
catch (CDaoException* e)
{
e->ReportError();
e->Delete();
return;
}
td.Close();
int nItem = 0,i;
try
{
CString select;
m_pRecordset->Open(dbOpenDynaset,strSelect);
while (!m_pRecordset->IsEOF())
{
COleVariant var;
////////////////////////////////////////////////////////////////////////////////
if(m_CKLFDate) //出廠日期
{
if(m_LFDate1>m_LFDate2)
{
CTime temp;
temp=m_LFDate1;m_LFDate1=m_LFDate2;m_LFDate2=temp;
}
var = m_pRecordset->GetFieldValue(6);
CString year,month,day,str;
str=CCrack::strVARIANT(var);
if(str.GetAt(6)=='0')
year.Format("20%c%c",str.GetAt(6),str.GetAt(7));
else
year.Format("19%c%c",str.GetAt(6),str.GetAt(7));
month.Format("%c%c",str.GetAt(0),str.GetAt(1));
day.Format("%c%c",str.GetAt(3),str.GetAt(4));
CTime time(atoi(year),atoi(month),atoi(day),m_LFDate1.GetHour(),m_LFDate1.GetMinute(),m_LFDate1.GetSecond());
if(time<m_LFDate1||time>m_LFDate2)
{
m_pRecordset->MoveNext();
continue;
}
}
if(m_CKInDate) //入庫日期
{
if(m_InDate1>m_InDate2)
{
CTime temp;
temp=m_InDate1;m_InDate1=m_InDate2;m_InDate2=temp;
}
var = m_pRecordset->GetFieldValue(8);
CString year,month,day,str;
str=CCrack::strVARIANT(var);
if(str.GetAt(6)=='0')
year.Format("20%c%c",str.GetAt(6),str.GetAt(7));
else
year.Format("19%c%c",str.GetAt(6),str.GetAt(7));
month.Format("%c%c",str.GetAt(0),str.GetAt(1));
day.Format("%c%c",str.GetAt(3),str.GetAt(4));
CTime time(atoi(year),atoi(month),atoi(day),m_InDate1.GetHour(),m_InDate1.GetMinute(),m_InDate1.GetSecond());
if(time<m_InDate1||time>m_InDate2)
{
m_pRecordset->MoveNext();
continue;
}
}
/////////////////////////////////////////////////////////////////////////////////
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;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -