?? custom.cpp
字號:
CString sql_,str1,str2,sql1_;
sql_.Format("SELECT * FROM ChatInfo WHERE 用戶名='%s' AND 交易類別='借'" ,PublicUserName);
_bstr_t sql=sql_;
_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;}
_variant_t Holder;
int Shumu=Myset->GetRecordCount();
int i=0;
while(!Myset->adoEOF ){
Holder=Myset->GetCollect ("用戶名");
if(Holder.vt!=VT_NULL)
{str1=(char*)(_bstr_t)Holder;
str1.TrimRight (" ");
m_List.InsertItem(i,str1);}
else
m_List.InsertItem(i,"未知]用戶名");
Holder=Myset->GetCollect ("軟件名稱");
if(Holder.vt!=VT_NULL)
{str1=(char*)(_bstr_t)Holder;
str1.TrimRight (" ");
m_List.SetItemText(i,1,str1);}
else
m_List.SetItemText(i,1,"未知]軟件名");
Holder=Myset->GetCollect ("格式");
if(Holder.vt!=VT_NULL)
{str1=(char*)(_bstr_t)Holder;
str1.TrimRight (" ");
m_List.SetItemText(i,2,str1);}
else
m_List.SetItemText(i,2,"未知格式");
Holder=Myset->GetCollect ("交易類別");
if(Holder.vt!=VT_NULL)
{str1=(char*)(_bstr_t)Holder;
str1.TrimRight (" ");
m_List.SetItemText(i,3,str1);}
else
m_List.SetItemText(i,3,"未知交易類");
Holder=Myset->GetCollect ("軟件編號");
if(Holder.vt!=VT_NULL)
{str1=(char*)(_bstr_t)Holder;
str1.TrimRight (" ");
m_List.SetItemText(i,4,str1);}
else
m_List.SetItemText(i,4,"未知]軟件號");
Holder=Myset->GetCollect ("交易時間");
if(Holder.vt!=VT_NULL)
{str1=(char*)(_bstr_t)Holder;
str1.TrimRight (" ");
m_List.SetItemText(i,5,str1);}
else
m_List.SetItemText(i,5,"未知時間");
Myset->MoveNext();
i++;}
Myset->Close();
m_List.SetRedraw (true);
}
void CCustom::OnNotReturn()
{
// TODO: Add your control notification handler code here
CString geshi[6];
geshi[1]="軟盤";
geshi[2]="光盤";
geshi[4]="文本";
geshi[3]="硬盤";
geshi[5]="其他";
InitList();
if(m_DelSum>0)DeleteRemain();
m_PreType=3;
m_List.SetRedraw (false);
CString softName,softNumber,softgeshi,softtype,softdate,Borrowdate;
CString sql_,sql1_,mystr;
sql_.Format("SELECT * FROM SoftDocInfo WHERE 軟盤='%s' or 光盤='%s' or 硬盤='%s' or 文本='%s' or 其他='%s'",PublicUserName,PublicUserName,PublicUserName,PublicUserName,PublicUserName);
_bstr_t sql=sql_;
_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;}
_variant_t Holder;
int i,j=0;
while(!Myset->adoEOF ){
Holder=Myset->GetCollect ("軟件名稱");
if(Holder.vt!=VT_NULL)
{softName=(char*)(_bstr_t)Holder;
softName.TrimRight (" ");}
else
softName="未知軟件名";
Holder=Myset->GetCollect ("軟件類型");
if(Holder.vt!=VT_NULL)
{softtype=(char*)(_bstr_t)Holder;
softtype.TrimRight (" ");}
else
softtype="未知類型";
Holder=Myset->GetCollect ("軟件編號");
if(Holder.vt!=VT_NULL)
{softNumber=(char*)(_bstr_t)Holder;
softNumber.TrimRight (" ");}
else
softNumber="未知軟件號";
for(i=1;i<6;i++)//處理格式
{_variant_t strgeshi=geshi[i];
Holder=Myset->GetCollect (strgeshi);
if(Holder.vt!=VT_NULL)
{mystr=(char*)(_bstr_t)Holder;
mystr.TrimRight(" ");
if(mystr==PublicUserName){//如果借者是用戶
CString myDate;
myDate=geshi[i]+"時間";
_variant_t strmyDate=myDate;
Holder=Myset->GetCollect (strmyDate);
if(Holder.vt!=VT_NULL)
{Borrowdate=(char*)(_bstr_t)Holder;
Borrowdate.TrimRight (" ");}
else
Borrowdate=_T("未知時間");
m_List.InsertItem (j,softName);
m_List.SetItemText (j,1,softtype);
m_List.SetItemText (j,2,geshi[i]);
m_List.SetItemText (j,3,PublicUserName);
m_List.SetItemText (j,4,softNumber);
m_List.SetItemText (j,5,Borrowdate);
j++;}
}}//處理格式完
Myset->MoveNext();
}
Myset->Close();
m_List.SetRedraw (true);
}
void CCustom::OnChatRecord()
{
// TODO: Add your control notification handler code here
InitList();
if(m_DelSum>0)DeleteRemain();
m_PreType=4;
CString mysql;
mysql.Format("SELECT * FROM ChatInfo 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;
_variant_t Holder;
int i=0;
while(!Myset->adoEOF ){
Holder=Myset->GetCollect ("交易編號");
if(Holder.vt!=VT_NULL)
m_List.InsertItem (i,(char*)(_bstr_t)Holder);
Holder=Myset->GetCollect ("用戶名");
if(Holder.vt!=VT_NULL)
m_List.SetItemText (i,1,(char*)(_bstr_t)Holder);
else
m_List.SetItemText (i,1,"未知用戶名");
Holder=Myset->GetCollect ("軟件名稱");
if(Holder.vt!=VT_NULL)
m_List.SetItemText (i,2,(char*)(_bstr_t)Holder);
else
m_List.SetItemText (i,2,"未知軟件");
Holder=Myset->GetCollect ("格式");
if(Holder.vt!=VT_NULL)
m_List.SetItemText (i,3,(char*)(_bstr_t)Holder);
else
m_List.SetItemText (i,3,"未知格式");
Holder=Myset->GetCollect ("交易類別");
if(Holder.vt!=VT_NULL)
m_List.SetItemText (i,4,(char*)(_bstr_t)Holder);
else
m_List.SetItemText (i,4,"未知類別");
Holder=Myset->GetCollect ("軟件編號");
if(Holder.vt!=VT_NULL)
m_List.SetItemText (i,5,(char*)(_bstr_t)Holder);
else
m_List.SetItemText (i,5,"未知編號");
Holder=Myset->GetCollect ("交易時間");
if(Holder.vt!=VT_NULL)
m_List.SetItemText (i,6,(char*)(_bstr_t)Holder);
else
m_List.SetItemText (i,6,"未知時間");
i+=1;
Myset->MoveNext ();
}
Myset->Close();
m_List.SetRedraw (true);
}
void CCustom::OnPrivateInfo()
{
// TODO: Add your control notification handler code here
UpdateData();
if(m_DelSum>0)DeleteRemain();
m_PreType=5;
//用消息框顯示用戶數據
CString strUser,strDepartment,strRealname,strTel,strCheckDate,strInfo;
CString SortNumber;
CString mysql,mystr;
mysql.Format("SELECT * FROM UserInfo 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;
}
_variant_t Holder;
strUser=SortNumber;
Holder=Myset->GetCollect ("姓名");
if(Holder.vt!=VT_NULL)
{strRealname=(char*)(_bstr_t)Holder;
strRealname.TrimRight (" ");}
else
strRealname="未知姓名";
Holder=Myset->GetCollect ("部門");
if(Holder.vt!=VT_NULL)
{strDepartment=(char*)(_bstr_t)Holder;
strDepartment.TrimRight (" ");}
else
strDepartment="未知部門";
Holder=Myset->GetCollect ("聯系電話");
if(Holder.vt!=VT_NULL)
{strTel=(char*)(_bstr_t)Holder;
strTel.TrimRight (" ");}
else
strTel="未知電話";
Holder=Myset->GetCollect ("登記時間");
if(Holder.vt!=VT_NULL)
{strCheckDate=(char*)(_bstr_t)Holder;
strCheckDate.TrimRight (" ");}
else
strCheckDate="不明時間";
Holder=Myset->GetCollect ("詳細信息");
if(Holder.vt!=VT_NULL)
{strInfo=(char*)(_bstr_t)Holder;
strInfo.TrimRight (" ");}
else
strInfo="沒有信息";
Myset->Close();
mystr="用戶名:" +SortNumber+"\n"+"真實姓名:"+strRealname+"\n"+"所在部門:"+strDepartment+"\n"
+"詳細信息:"+strInfo;
//輸出消息框
AfxMessageBox(mystr);
}
void CCustom::OnPrint()
{
// TODO: Add your control notification handler code here
typedef struct tagColAtt//存儲各列信息
{
int nColIndex;
CString strColText;
int nPrintX;
int nSubItemIndex;
}COLATT;
PRINTDLG pd;
pd.lStructSize = sizeof(PRINTDLG);
pd.Flags = PD_RETURNDC;
pd.hDC = NULL;
pd.hwndOwner = NULL;
pd.hInstance = NULL;
pd.nMaxPage = 1;
pd.nMinPage = 1;
pd.nFromPage = 1;
pd.nToPage = 1;
pd.nCopies = 1;
pd.hDevMode = NULL;
pd.hDevNames = NULL;
//顯示打印對話框,由用戶來設定紙張大小等。
if(!PrintDlg(&pd)) {AfxMessageBox("ERROR");return; }
ASSERT(pd.hDC!=NULL);
int nHorRes = GetDeviceCaps(pd.hDC, HORZRES);
int nVerRes = GetDeviceCaps(pd.hDC, VERTRES);
int nXMargin = 2;
int nYMargin = 2;
TEXTMETRIC tm;
GetTextMetrics(pd.hDC, &tm);
int nCharHeight = tm.tmHeight;
int nCharWidth = tm.tmAveCharWidth;
CHeaderCtrl* pHeader = m_List.GetHeaderCtrl();
//獲得行,列的個數
int nColCount = pHeader->GetItemCount();
int nLineCount = m_List.GetItemCount();
int ColOrderArray[100];
COLATT ca[100];
m_List.GetColumnOrderArray(ColOrderArray, nColCount);
int nColX =nXMargin*nCharWidth;
//檢索各列的信息,確定列標題的內容長度。
for(int i =0 ; i< nColCount; i++)
{
ca[i].nColIndex = ColOrderArray[i];
LVCOLUMN lvc;
char text[100];
lvc.mask = LVCF_TEXT|LVCF_SUBITEM;
lvc.pszText = text;
lvc.cchTextMax = 100;
m_List.GetColumn(ca[i].nColIndex, &lvc);
ca[i].strColText = lvc.pszText;
ca[i].nSubItemIndex = lvc.iSubItem;
ca[i].nPrintX = nColX;
nColX += nCharWidth * strlen(ca[i].strColText);
if(nColX > nHorRes)
{
DeleteDC(pd.hDC);
AfxMessageBox("字段太多,無法在一行內打印,請試用較大的紙,或橫向打印。");
return;
}
}
DOCINFO di;
di.cbSize = sizeof(DOCINFO);
di.lpszDocName = "ListCtrl Data Printing";
di.lpszOutput = (LPTSTR) NULL;
di.lpszDatatype = (LPTSTR) NULL;
di.fwType = 0;
StartDoc(pd.hDC, &di);
StartPage(pd.hDC);
//調整各列的寬度,以使各列在后面的打印輸出時更均勻的打印在紙上。
int space = (nHorRes-nXMargin*nCharWidth-nColX) / (nColCount -1);
for(i =1; i<nColCount; i++)
{
ca[i].nPrintX += i*space;
}
//輸出列標題
for(i =0; i<nColCount; i++)
TextOut(pd.hDC, ca[i].nPrintX, nYMargin,
ca[i].strColText, strlen(ca[i].strColText));
int nMaxLinePerPage = nVerRes/nCharHeight -3;
int nCurPage =1;
//輸出各列的數據
for(i =0; i<nLineCount; i++)
{
for(int j =0; j<nColCount; j++)
{
if(i+1-(nCurPage-1)*nMaxLinePerPage > nMaxLinePerPage)
{
//新的一頁
EndPage(pd.hDC);
StartPage(pd.hDC);
nCurPage ++;
}
CString subitem = m_List.GetItemText(i, j/*ca[j].nSubItemIndex*/);
TextOut(pd.hDC, ca[j].nPrintX,
nYMargin+(i+1-(nCurPage-1)*nMaxLinePerPage)*nCharHeight,
subitem, strlen(subitem));
}
}
EndPage(pd.hDC);
EndDoc(pd.hDC);
//打印結束
DeleteDC(pd.hDC);
return;
}
void CCustom::OnViewNotify()
{
// TODO: Add your control notification handler code here
m_Content=_T("");
if(m_DelSum>0)DeleteRemain();
m_PreType=10;
GetDlgItem(IDC_BUTTON5)->EnableWindow(true);
CString mysql,mystr1,mystr2,mystr3,mystr4,laststr;
mysql.Format("SELECT * FROM MessageMap WHERE 消息類別 = '通知' OR 消息類別 = '回復通知' ORDER BY 發出日期");
_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;
}
_variant_t Holder;
while(!Myset->adoEOF ){
Holder=Myset->GetCollect ("發出用戶");
if(Holder.vt!=VT_NULL)
{mystr1=(char*)(_bstr_t)Holder;
mystr1.TrimRight (" ");}
else
mystr1="未知姓名";
Holder=Myset->GetCollect ("征對用戶");
if(Holder.vt!=VT_NULL)
{mystr2=(char*)(_bstr_t)Holder;
mystr2.TrimRight (" ");}
else
mystr2="未知姓名";
Holder=Myset->GetCollect ("內容");
if(Holder.vt!=VT_NULL)
{mystr3=(char*)(_bstr_t)Holder;
mystr3.TrimRight (" ");}
else
mystr3="未知姓名";
Holder=Myset->GetCollect ("發出日期");
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_Dialog.AddString(laststr);
m_Content=m_Content+"\n"+laststr;
Myset->MoveNext ();}
UpdateData(false);
}
void CCustom::OnDestroy()
{
CDialog::OnDestroy();
if(m_DelSum>0)DeleteRemain();
// TODO: Add your message handler code here
if(m_DBCnt->GetState()==adStateOpen)
m_DBCnt->Close();
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -