?? custom.cpp
字號:
Holder=Myset->GetCollect ("發(fā)出日期");
if(Holder.vt!=VT_NULL)
{mystr4=(char*)(_bstr_t)Holder;
mystr4.TrimRight (" ");}
else
mystr4="未知日期";
laststr.Format ("%s對%s說:%s %s",mystr1,mystr2,mystr3,mystr4);
m_Content=m_Content+laststr+"\n";
Myset->MoveNext ();}
UpdateData(false);
*pResult = 0;
}
void CCustom::OnDblclkList1(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
POSITION pos=m_List.GetFirstSelectedItemPosition();
if(pos==NULL)return;//判斷是否選中記錄
int i=m_List.GetSelectionMark ();
CString strColText[11];
CString strItemText[11];
CString OutPutStr="";
LVCOLUMN lvc;
char text[100];
lvc.mask = LVCF_TEXT|LVCF_SUBITEM;
lvc.pszText = text;
lvc.cchTextMax = 100;
int shumu=m_List.GetItemCount ();
for(int j=0;j<m_ListNumber;j++)
{
m_List.GetColumn(j, &lvc);
strColText[j] = lvc.pszText;
strItemText[j]=m_List.GetItemText(i,j);
OutPutStr=OutPutStr+strColText[j]+":"+strItemText[j]+_T("\n");
}
AfxMessageBox(OutPutStr);
*pResult = 0;
}
void CCustom::OnRclickList1(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
POSITION pos=m_List.GetFirstSelectedItemPosition();
if(pos==NULL)return;//判斷是否選中記錄
MSG msg;
GetMessage(&msg,NULL,0,0);//獲得當(dāng)前點
POINT point= msg.pt;
((CCustom*)(GetDlgItem(IDC_LIST1)->GetParent()))->PopupMenu(point);//先獲得父窗口指針,在使用它的函數(shù)
*pResult = 0;
}
void CCustom::PopupMenu(POINT pt)
{
CMenu myPopupMenu;
myPopupMenu.LoadMenu (IDR_USERMENU);
CMenu *pPopup=myPopupMenu.GetSubMenu (0);
switch(m_treatType){
case 3:{
pPopup->EnableMenuItem(IDR_USERDELETE, MF_GRAYED);
pPopup->EnableMenuItem(IDR_USERUNDO, MF_GRAYED);
// if(m_DelSum<1) pPopup->EnableMenuItem(IDR_UNDO, MF_GRAYED);
break;}
case 0:
{
if(m_DelSum<1) pPopup->EnableMenuItem(IDR_UNDO, MF_GRAYED);
break;}
case 2:
{ pPopup->EnableMenuItem(IDR_USERDELETE, MF_GRAYED);
pPopup->EnableMenuItem(IDR_USERUNDO, MF_GRAYED);
break; }
case 1:
{
pPopup->EnableMenuItem(IDR_USERMODIFY, MF_GRAYED);
if(m_DelSum<1) pPopup->EnableMenuItem(IDR_UNDO, MF_GRAYED);
break;}
case 4:
{ pPopup->EnableMenuItem(IDR_USERDELETE, MF_GRAYED);
pPopup->EnableMenuItem(IDR_USERUNDO, MF_GRAYED);
break; }
case 5:
{ pPopup->EnableMenuItem(IDR_USERDELETE, MF_GRAYED);
pPopup->EnableMenuItem(IDR_USERUNDO, MF_GRAYED);break;
}}
pPopup->TrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTBUTTON,pt.x,pt.y,this);
}
void CCustom::DeleteRemain()
{
if(m_PreType!=0 && m_PreType!=1)return;
CString sql_,ApplyNumber,strGeshi,ChatType;
for(int i=1;i<m_DelSum+1;i++)
{
if(m_PreType==1){//刪除申請記錄
ApplyNumber=a[b[i]*10+6];
try{
m_DBCnt->BeginTrans ();
sql_.Format ("delete from ApplyTable where 申請?zhí)?='%s'",ApplyNumber);
_bstr_t sql=sql_;
m_DBCnt->Execute(sql,NULL,adCmdText);//刪除記錄
ChatType=a[b[i]*10+1];
ChatType.TrimRight (" ");
if(ChatType=="借"){
ApplyNumber=a[b[i]*10+4];
strGeshi=a[b[i]*10+3];
sql_.Format ("update SoftDocInfo set %s ='在家' where 軟件編號 ='%s'",strGeshi,ApplyNumber);
_bstr_t sql2=sql_;
m_DBCnt->Execute(sql2,NULL,adCmdText);//刪除記錄
}
m_DBCnt->CommitTrans ();
}
catch(_com_error &e){
AfxMessageBox(e.ErrorMessage ());
m_DBCnt->RollbackTrans ();
return;}
}
if(m_PreType==0)
{ ApplyNumber=a[b[i]*10+7];
sql_.Format ("delete from StateReport where 狀態(tài)編號 ='%s'",ApplyNumber);
_bstr_t sql=sql_;
try{
m_DBCnt->Execute(sql,NULL,adCmdText);}
catch(_com_error &e){
AfxMessageBox(e.ErrorMessage ());return;}
}
}
m_DelSum=0;
}
void CCustom::OnUsercopy()
{
// TODO: Add your command handler code here
POSITION pos=m_List.GetFirstSelectedItemPosition();//判斷是否選中記錄
if(pos==NULL){AfxMessageBox("沒有選中記錄",MB_ICONEXCLAMATION);return;}
CString mystr;
int i=m_List.GetSelectionMark();
for(int j=0;j<m_ListNumber;j++)
{mystr+=m_List.GetItemText(i,j);
mystr+=" ";
}
::OpenClipboard(this->m_hWnd);
::EmptyClipboard();
HGLOBAL h=GlobalAlloc(GHND|GMEM_SHARE,mystr.GetLength()+1);
strcpy((LPSTR)GlobalLock(h),mystr);
GlobalUnlock(h);
::SetClipboardData(CF_TEXT,h);
::CloseClipboard();
}
void CCustom::OnUserdelete()
{
// TODO: Add your command handler code here
POSITION pos=m_List.GetFirstSelectedItemPosition();//判斷是否選中記錄
if(pos==NULL){AfxMessageBox("沒有選中記錄",MB_ICONEXCLAMATION);return;}
int i,j;
if(m_DelSum==3)
DeleteFirst();//刪除最先第一個記錄
int n=(m_DelSum==3)?1:m_DelSum+1;
int m=b[n]*10;//本條記錄應(yīng)該保存的位置
if(m_treatType==0 || m_treatType==1){//狀態(tài)匯報刪除管理
i=m_List.GetSelectionMark ();
for(j=0;j<m_ListNumber;j++)
a[m+j]=m_List.GetItemText (i,j);//保存數(shù)據(jù)
m_List.DeleteItem (i);
int NowNumber=m_DelSum;
m_DelSum=(m_DelSum==3)?3:m_DelSum+1;//保存刪除的記錄數(shù)
if(NowNumber<3)b[NowNumber+1]=NowNumber;
else
{b[m_DelSum]=b[n];
for(j=1;j<m_DelSum+1;j++)//保存刪除的順序
b[j-1]=b[j];
}
AfxMessageBox("你的申請記錄已成功刪除,如果操作錯誤,請選擇'恢復(fù)刪除'");
return;}
}
void CCustom::OnUserundo()
{
// TODO: Add your command handler code here
int i,j=m_List.GetSelectionMark ();
if(m_DelSum>0){
int NowNumber=10*b[m_DelSum];
m_List.InsertItem (j,a[NowNumber]);
for(i=0;i<m_ListNumber+1;i++)
m_List.SetItemText (j,i,a[NowNumber+i]);
m_DelSum-=1;}
}
void CCustom::DeleteFirst()
{
//if(m_treatType!=0 && m_treatType!=1)return;
CString sql_,ApplyNumber,strGeshi,ChatType;
if(m_treatType==1){//刪除申請記錄
ApplyNumber=a[b[1]*10+6];
try{
m_DBCnt->BeginTrans ();
sql_.Format ("delete from ApplyTable where 申請?zhí)?='%s'",ApplyNumber);
_bstr_t sql=sql_;
m_DBCnt->Execute(sql,NULL,adCmdText);//刪除記錄
ChatType=a[b[1]*10+1];
ChatType.TrimRight (" ");
if(ChatType=="借"){
strGeshi=a[b[1]*10+3];
ApplyNumber=a[b[1]*10+4];
sql_.Format ("update SoftDocInfo set %s ='在家' where 軟件編號 ='%s'",strGeshi,ApplyNumber);
_bstr_t sql2=sql_;
m_DBCnt->Execute(sql2,NULL,adCmdText);//刪除記錄
}
m_DBCnt->CommitTrans ();
}
catch(_com_error &e){
AfxMessageBox(e.ErrorMessage ());
m_DBCnt->RollbackTrans ();return;}
}
if(m_treatType==0)
{ ApplyNumber=a[b[1]*10+7];
sql_.Format ("delete from StateReport where 狀態(tài)編號 ='%s'",ApplyNumber);
_bstr_t sql=sql_;
try{
m_DBCnt->Execute(sql,NULL,adCmdText);}
catch(_com_error &e){
AfxMessageBox(e.ErrorMessage ());return;}
}
}
void CCustom::OnStateReport()
{
// TODO: Add your control notification handler code here
InitList();//初始化列表框
if(m_DelSum>0)DeleteRemain();
m_PreType=0;
GetDlgItem(IDC_BUTTON5)->EnableWindow(false);
m_DelSum=0;
b[1]=b[0]=b[4]=b[5]=b[6]=0;
b[2]=1;
b[3]=2;
m_List.SetRedraw (false);
CString mysql,StateString,StateMiaoShu;
mysql.Format("SELECT * FROM StateReport WHERE 用戶名 = '%s'",PublicUserName);
_bstr_t sql=mysql;
_bstr_t source=m_strSource;
_RecordsetPtr Myset;
Myset.CreateInstance (__uuidof(Recordset));
try{
Myset->Open (sql,source,adOpenDynamic,adLockOptimistic,adCmdText);}
catch(_com_error &e){
AfxMessageBox(e.ErrorMessage ());return;
}
CString str1,mystr;
_variant_t Holder;
int i=0,StateIndex;
while(!Myset->adoEOF ){
Holder=Myset->GetCollect ("用戶名");//
if(Holder.vt!=VT_NULL)
{mystr=(char*)(_bstr_t)Holder;
mystr.TrimRight(" ");
m_List.InsertItem (i,mystr);}
else
m_List.InsertItem (i,"未知用戶名");
Holder=Myset->GetCollect ("軟件名稱");//
if(Holder.vt!=VT_NULL)
{mystr=(char*)(_bstr_t)Holder;
mystr.TrimRight(" ");
m_List.SetItemText (i,1,mystr);}
else
m_List.SetItemText (i,1,"未知軟件");
Holder=Myset->GetCollect ("軟件作者");//
if(Holder.vt!=VT_NULL)
{mystr=(char*)(_bstr_t)Holder;
mystr.TrimRight(" ");
m_List.SetItemText (i,2,mystr);}
else
m_List.SetItemText (i,2,"未知作者");
Holder=Myset->GetCollect ("狀態(tài)");//根據(jù)不同狀態(tài)判斷
if(Holder.vt!=VT_NULL)
{mystr=(char*)(_bstr_t)Holder;
mystr.TrimRight (" ");
StateIndex=atoi(mystr);
switch(StateIndex)
{case 1:
{mystr="";
Holder=Myset->GetCollect ("剩余時間");
if(Holder.vt!=VT_NULL)
{mystr=(char*)(_bstr_t)Holder;
mystr.TrimRight (" ");
StateString.Format("還需%s天完成",mystr);}
else
StateString="時間不定";
Holder=Myset->GetCollect ("狀態(tài)描述");
if(Holder.vt!=VT_NULL)
{mystr=(char*)(_bstr_t)Holder;
mystr.TrimRight (" ");
StateMiaoShu=mystr;}
else
StateMiaoShu="狀態(tài)不定";
break;
}
case 2:
{
Holder=Myset->GetCollect ("索取地址");
if(Holder.vt!=VT_NULL)
{mystr=(char*)(_bstr_t)Holder;
mystr.TrimRight (" ");
StateMiaoShu.Format("將于%s送管理員",mystr);}
else
StateMiaoShu="地址不定";
StateString="送管理員";
break;}
case 3:
{
Holder=Myset->GetCollect ("索取地址");
if(Holder.vt!=VT_NULL)
{mystr=(char*)(_bstr_t)Holder;
mystr.TrimRight (" ");}
StateMiaoShu.Format("到%s取",mystr);
StateString="請管理員來取";
break; }
}}
else
{StateMiaoShu="不定";
StateString="狀態(tài)不定";}
m_List.SetItemText (i,3,StateString);
m_List.SetItemText (i,4,StateMiaoShu);
Holder=Myset->GetCollect ("文檔形式");//
if(Holder.vt!=VT_NULL)
{mystr=(char*)(_bstr_t)Holder;
mystr.TrimRight(" ");
m_List.SetItemText(i,5,mystr);
}
else
m_List.SetItemText(i,5,"未知格式");
Holder=Myset->GetCollect ("匯報時間");//
if(Holder.vt!=VT_NULL)
{mystr=(char*)(_bstr_t)Holder;
mystr.TrimRight(" ");
m_List.SetItemText(i,6,"mystr");
}
else
m_List.SetItemText(i,6,"未知時間");
Holder=Myset->GetCollect ("狀態(tài)編號");//
if(Holder.vt!=VT_NULL)
{mystr=(char*)(_bstr_t)Holder;
mystr.TrimRight(" ");
m_List.SetItemText(i,7,mystr);
}
else
m_List.SetItemText(i,7,"未知編號");
Myset->MoveNext ();
i++;
}
Myset->Close();
m_List.SetRedraw (true);
}
void CCustom::OnApplyRecord()
{
// TODO: Add your control notification handler code here
GetDlgItem(IDC_BUTTON5)->EnableWindow(false);
if(m_DelSum>0)DeleteRemain();
m_PreType=1;
InitList();
m_DelSum=0;
b[1]=b[0]=b[4]=b[5]=b[6]=0;
b[2]=1;
b[3]=2;
m_List.SetRedraw (false);
CString mysql;
mysql.Format("SELECT * FROM ApplyTable WHERE 用戶名 = '%s' ORDER BY 申請?zhí)?quot;,PublicUserName);
_bstr_t sql=mysql;
_bstr_t source=m_strSource;
_RecordsetPtr Myset;
Myset.CreateInstance (__uuidof(Recordset));
try{
Myset->Open (sql,source,adOpenDynamic,adLockOptimistic,adCmdText);}
catch(_com_error &e){
AfxMessageBox(e.ErrorMessage ());return;
}
CString str1,mystr;
_variant_t Holder;
int i=0;
while(!Myset->adoEOF ){
Holder=Myset->GetCollect ("用戶名");//
if(Holder.vt!=VT_NULL)
{mystr=(char*)(_bstr_t)Holder;
mystr.TrimRight(" ");
m_List.InsertItem (i,mystr);}
else
m_List.InsertItem (i,"未知用戶名");
Holder=Myset->GetCollect ("申請類別");//
if(Holder.vt!=VT_NULL)
{mystr=(char*)(_bstr_t)Holder;
mystr.TrimRight(" ");
m_List.SetItemText (i,1,mystr);}
else
m_List.SetItemText (i,1,"未知類別");
Holder=Myset->GetCollect ("軟件名稱");//
if(Holder.vt!=VT_NULL)
{mystr=(char*)(_bstr_t)Holder;
mystr.TrimRight(" ");
m_List.SetItemText (i,2,mystr);}
else
m_List.SetItemText (i,2,"未知名稱");
Holder=Myset->GetCollect ("格式");//
if(Holder.vt!=VT_NULL)
{mystr=(char*)(_bstr_t)Holder;
mystr.TrimRight(" ");
m_List.SetItemText (i,3,mystr);}
else
m_List.SetItemText (i,3,"未知格式");
Holder=Myset->GetCollect ("軟件編號");//
if(Holder.vt!=VT_NULL)
{mystr=(char*)(_bstr_t)Holder;
mystr.TrimRight(" ");
m_List.SetItemText (i,4,mystr);}
else
m_List.SetItemText (i,4,"未知編號");
Holder=Myset->GetCollect ("申請日期");//
if(Holder.vt!=VT_NULL)
{mystr=(char*)(_bstr_t)Holder;
mystr.TrimRight(" ");
m_List.SetItemText (i,5,mystr);}
else
m_List.SetItemText (i,5,"未知日期");
Holder=Myset->GetCollect ("申請?zhí)?quot;);//
if(Holder.vt!=VT_NULL)
{mystr=(char*)(_bstr_t)Holder;
mystr.TrimRight(" ");
m_List.SetItemText (i,6,mystr);}
else
m_List.SetItemText (i,6,"未知號碼");
i++;
Myset->MoveNext();
}
Myset->Close();
m_List.SetRedraw (true);
}
void CCustom::OnHaveSeenDoc()
{
// TODO: Add your control notification handler code here
InitList();
if(m_DelSum>0)DeleteRemain();
m_PreType=2;
m_List.SetRedraw (false);
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -