?? clearassets.cpp
字號:
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(14);
if(CCrack::strVARIANT(var)=="清理"||CCrack::strVARIANT(var)=="借出"||CCrack::strVARIANT(var)=="維修")
{
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;
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 CClearAssets::Empty()
{
m_ID=_T("");
m_strInterID = _T("");
m_LeftValue =0;
m_strName = _T("");
m_strAssetID = _T("");
m_OrigValue =0;
m_LRatio=0;
m_strRemark = _T("");
m_strType = _T("");
m_YearNum = 0;
m_strFactory=_T("");
m_strReason=_T("");
m_strPerson=_T("");
m_CtrlCBKeeper.SetCurSel(-1);
m_CtrlCBDepartment.SetCurSel(-1);
m_CtrlCBDepositary.SetCurSel(-1);
m_CtrlCBClearType.SetCurSel(-1);
m_strUseInfo=_T("");
m_CtrlCBAddType.SetCurSel(-1);
m_CtrlCBSort.SetCurSel(-1);
m_CtrlCBDepreciation.SetCurSel(-1);
m_LFDate=CTime::GetCurrentTime();
m_InDate=CTime::GetCurrentTime();
m_ClearDate=CTime::GetCurrentTime();
UpdateData(0);
}
CString CClearAssets::IdToString(int ID,int Index) //將索引ID轉換為字符
{
CStringArray sa; //資產類別
CUIntArray ua;
bool flag=0;
switch(Index)
{
case 3:sa.Copy(m_saSort);ua.Copy(m_uaSort);break;//資產類別
case 15:sa.Copy(m_saDepartment);ua.Copy(m_uaDepartment);break;//使用部門
case 16:sa.Copy(m_saDepositary);ua.Copy(m_uaDepositary);break;//存放地點
case 17:sa.Copy(m_saAddType);ua.Copy(m_uaAddType);break;//增加方式
case 18:sa.Copy(m_saKeeper);ua.Copy(m_uaKeeper);break;//保管人員
}
int j;
for(j=0;j<ua.GetSize();j++)
{
if(ua[j]==unsigned(ID))
{
flag=1;
break;
}
}
if(flag)
return sa[j];
else
return "!!刪除!!";
}
void CClearAssets::OnItemchangedListAddassert(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
if(pNMListView->uNewState&LVIS_SELECTED)
{
int iCurrent = pNMListView->iItem;
Fill(iCurrent);
(CEdit*)GetDlgItem(IDC_CLE_REMARK)->EnableWindow(1);
(CEdit*)GetDlgItem(IDC_CLE_REASON)->EnableWindow(1);
(CComboBox*)GetDlgItem(IDC_CLR_CLEARTYPE)->EnableWindow(1);
(CComboBox*)GetDlgItem(IDC_LER_PERSON)->EnableWindow(1);
(CDateTimeCtrl*)GetDlgItem(IDC_CLE_CLEARDATE)->EnableWindow(1);
(CButton*)GetDlgItem(IDD_CLEAR)->EnableWindow(1);
}
else
{
if(m_CtrlList.GetSelectedCount()<=0)
{
(CEdit*)GetDlgItem(IDC_CLE_REMARK)->EnableWindow(0);
(CEdit*)GetDlgItem(IDC_CLE_REASON)->EnableWindow(0);
(CComboBox*)GetDlgItem(IDC_CLR_CLEARTYPE)->EnableWindow(0);
(CComboBox*)GetDlgItem(IDC_LER_PERSON)->EnableWindow(0);
(CDateTimeCtrl*)GetDlgItem(IDC_CLE_CLEARDATE)->EnableWindow(0);
(CButton*)GetDlgItem(IDD_CLEAR)->EnableWindow(0);
Empty();
}
}
*pResult = 0;
}
void CClearAssets::Fill(int iCurrent)
{ UpdateData(1);
char pContent[50] ;
CString temp;
m_CtrlList.GetItemText(iCurrent,0,pContent,50);
m_ID.Format("%s", pContent);
m_CtrlList.GetItemText(iCurrent,1,pContent,50);
m_strAssetID.Format("%s", pContent);
m_CtrlList.GetItemText(iCurrent,2,pContent,50);
m_strName.Format("%s", pContent);
m_CtrlList.GetItemText(iCurrent,4,pContent,50);
m_strType.Format("%s",pContent);
m_CtrlList.GetItemText(iCurrent,5,pContent,50);
m_strFactory.Format("%s",pContent);
m_CtrlList.GetItemText(iCurrent,7,pContent,50);
m_strInterID.Format("%s",pContent);
m_CtrlList.GetItemText(iCurrent,9,pContent,50);
temp.Format("%s",pContent);
m_LRatio=atof(temp);
m_CtrlList.GetItemText(iCurrent,10,pContent,50);
temp.Format("%s",pContent);
m_YearNum=atoi(temp);
m_CtrlList.GetItemText(iCurrent,11,pContent,50);
temp.Format("%s",pContent);
m_OrigValue=atof(temp);
m_CtrlList.GetItemText(iCurrent,12,pContent,50);
temp.Format("%s",pContent);
m_LeftValue=atof(temp);;
m_CtrlList.GetItemText(iCurrent,14,pContent,50);
m_strUseInfo.Format("%s",pContent);
m_CtrlList.GetItemText(iCurrent,19,pContent,50);
m_strRemark.Format("%s",pContent);
CString str,year,month,day;
m_CtrlList.GetItemText(iCurrent,3,pContent,50); //資產類別
str.Format("%s",pContent);
m_CtrlCBSort.SetCurSel(m_CtrlCBSort.FindString(0,str));
m_CtrlList.GetItemText(iCurrent,6,pContent,50); // 出廠日期
str.Format("%s",pContent);
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 time1(atoi(year),atoi(month),atoi(day),0,0,0);
m_LFDate=time1;
m_CtrlList.GetItemText(iCurrent,8,pContent,50); // 購買日期
str.Format("%s",pContent);
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 time2(atoi(year),atoi(month),atoi(day),0,0,0);
m_InDate=time2;
m_CtrlList.GetItemText(iCurrent,13,pContent,50); //折舊方式
str.Format("%s",pContent);
m_CtrlCBDepreciation.SetCurSel(m_CtrlCBDepreciation.FindString(0,str));
m_CtrlList.GetItemText(iCurrent,15,pContent,50); //使用部門
str.Format("%s",pContent);
m_CtrlCBDepartment.SetCurSel(m_CtrlCBDepartment.FindString(0,str));
m_CtrlList.GetItemText(iCurrent,16,pContent,50); //存放地點
str.Format("%s",pContent);
m_CtrlCBDepositary.SetCurSel(m_CtrlCBDepositary.FindString(0,str));
m_CtrlList.GetItemText(iCurrent,17,pContent,50); //增加方式
str.Format("%s",pContent);
m_CtrlCBAddType.SetCurSel(m_CtrlCBAddType.FindString(0,str));
m_CtrlList.GetItemText(iCurrent,18,pContent,50); //保管人員
str.Format("%s",pContent);
m_CtrlCBKeeper.SetCurSel(m_CtrlCBKeeper.FindString(0,str));
UpdateData(0);
}
void CClearAssets::OnClear() //清理
{
UpdateData(1);
if(!m_pDatabase->IsOpen()) return;
if(!m_pRecordset) return;
if(m_pRecordset->IsOpen()) m_pRecordset->Close();
CString strSql;
UINT uSelectedCount = m_CtrlList.GetSelectedCount();
if (uSelectedCount <= 0){MessageBox("請選擇記錄中的一項","清理提示");return;}
//檢查數據是否正確
if(m_CtrlCBClearType.GetCurSel()==-1) {AfxMessageBox("清理方式不能為空!");m_CtrlCBClearType.SetFocus();return;}
if(m_strReason.IsEmpty()) {AfxMessageBox("清理原因不能為空!");m_CtrlEditReason.SetFocus();return;}
if(m_strPerson.IsEmpty()) {AfxMessageBox("清理人不能為空!");m_CtrlCBPerson.SetFocus();return;}
CPromptDlg dlg;
dlg.m_Prompt="\n清理這些固定資產?";
if(dlg.DoModal()==IDCANCEL) return;
CString ClearDate,useinfo="清理";
ClearDate.Format("%d %d %d",m_ClearDate.GetYear(),m_ClearDate.GetMonth(),m_ClearDate.GetDay());//清理日期
int ClearType;
ClearType=m_CtrlCBClearType.GetItemData(m_CtrlCBClearType.GetCurSel()); //清理方式
int nItemIndex = -1,nSelectIndex;
if (uSelectedCount > 0)
{
while((nItemIndex=m_CtrlList.GetNextItem(nItemIndex,LVNI_SELECTED ) ) != -1 )
{
m_ID=m_CtrlList.GetItemText ( nItemIndex, 0 );
nSelectIndex=nItemIndex;
try{
if(m_pDatabase->CanUpdate())
{
strSql.Format("Update 資產信息 set 使用情況='%s' where 資產ID=%d",useinfo,atoi(m_ID));
m_pDatabase->Execute(strSql, dbDenyWrite|dbConsistent);
strSql.Format("Insert into 清理資產(資產ID,清理理由,清理方式ID,清理日期,\
清理人,備注)values(%d,'%s',%d,'%s','%s','%s') ",atoi(m_ID),m_strReason,ClearType,\
ClearDate,m_strPerson,m_strRemark);
m_pDatabase->Execute(strSql, dbDenyWrite|dbConsistent);
}
}
catch(CDaoException* e){
e->ReportError();
e->Delete();}
}
(CEdit*)GetDlgItem(IDC_CLE_REMARK)->EnableWindow(0);
(CEdit*)GetDlgItem(IDC_CLE_REASON)->EnableWindow(0);
(CComboBox*)GetDlgItem(IDC_CLR_CLEARTYPE)->EnableWindow(0);
(CComboBox*)GetDlgItem(IDC_LER_PERSON)->EnableWindow(0);
(CDateTimeCtrl*)GetDlgItem(IDC_CLE_CLEARDATE)->EnableWindow(0);
(CButton*)GetDlgItem(IDD_CLEAR)->EnableWindow(0);
Refresh();
//使被清理記錄的下一條處于選中狀態
m_CtrlList.EnsureVisible(nSelectIndex,nItemIndex+1);
m_CtrlList.SetItemState(nSelectIndex,LVNI_SELECTED ,LVNI_SELECTED );
Empty();
}
}
BOOL CClearAssets::DestroyWindow()
{
m_pDatabase->Close();
delete m_pDatabase;
m_pDatabase=NULL;
return CDialog::DestroyWindow();
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -