?? madecertview.cpp
字號:
// MadeCertView.cpp : implementation file
//
#include "stdafx.h"
#include "Raclient.h"
#include "MadeCertView.h"
#include "RaChildFrame.h"
#include "MainFrm.h"
#include <direct.h>
#include <errno.h>
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CMadeCertView
IMPLEMENT_DYNCREATE(CMadeCertView, CFormView)
CMadeCertView::CMadeCertView()
: CFormView(CMadeCertView::IDD)
{
//{{AFX_DATA_INIT(CMadeCertView)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
m_select=-1;
((CRaclientApp *)AfxGetApp())->m_SslSocket.m_MadeList=&m_List;
}
CMadeCertView::~CMadeCertView()
{
}
void CMadeCertView::DoDataExchange(CDataExchange* pDX)
{
CFormView::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CMadeCertView)
DDX_Control(pDX, IDC_BUTTON_LINEANDMADE, m_Made);
DDX_Control(pDX, IDC_BUTTON_AUT_MADE, m_Fmade);
DDX_Control(pDX, IDC_LIST_MADE, m_List);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CMadeCertView, CFormView)
//{{AFX_MSG_MAP(CMadeCertView)
ON_BN_CLICKED(IDC_BUTTON_LINEANDMADE, OnButtonLineandmade)
ON_BN_CLICKED(IDC_BUTTON_AUT_MADE, OnButtonAutMade)
ON_NOTIFY(NM_CLICK, IDC_LIST_MADE, OnClickListMade)
ON_WM_DESTROY()
ON_CBN_SELCHANGE(IDC_COMBO, OnSelchangeCombo)
ON_NOTIFY(LVN_ITEMCHANGED, IDC_LIST_MADE, OnItemchangedListMade)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CMadeCertView diagnostics
#ifdef _DEBUG
void CMadeCertView::AssertValid() const
{
CFormView::AssertValid();
}
void CMadeCertView::Dump(CDumpContext& dc) const
{
CFormView::Dump(dc);
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CMadeCertView message handlers
void CMadeCertView::OnInitialUpdate()
{
CFormView::OnInitialUpdate();
m_Fmade.SetIcon(IDI_ICON_MADE);
m_Made.SetIcon(IDI_ICON_FMADE);
((CComboBox *)GetDlgItem(IDC_COMBO))->SetCurSel(0);
// TODO: Add your specialized code here and/or call the base class
m_List.SetWindowPos(NULL,0,0,1024,420,SWP_NOMOVE|SWP_NOZORDER | SWP_NOACTIVATE);
m_List.SetExtendedStyle(LVS_EX_FULLROWSELECT);
CString strname[10];
strname[0]="證書序列號";
strname[1]="申請者名稱";
strname[2]="國家";
strname[3]="省份";
strname[4]="城市";
strname[5]="組織";
strname[6]="組織單元";
strname[7]="Email";
strname[8]="安全Email";
strname[9]="證書審核日期";
for(int i=0;i<10;i++)
{
m_List.InsertColumn(i,strname[i],LVCFMT_CENTER,120);
}
GetParentFrame()->SetWindowText("證書制作");
}
void CMadeCertView::OnButtonLineandmade() //查詢待制作
{
// TODO: Add your control notification handler code here
m_List.DeleteAllItems();
m_List.SetRedraw(FALSE);
BOOL Select=((CRaclientApp *)AfxGetApp())->m_SslSocket.GetComCount();//存在元素
((CMainFrame *)AfxGetMainWnd())->ShowFind(1);
CString query;//查詢語句
stuLIST * LIST=new stuLIST();
stuCA CA;
int select=((CComboBox *)GetDlgItem(IDC_COMBO))->GetCurSel();
if(select==0)//日期
{
CString dayB,dayE;
GetDlgItemText(IDC_DATE_BEGIN,dayB);
GetDlgItemText(IDC_DATE_END,dayE);
query.Format("Select ID,USERINFO,AUDITIME From CERTLIST Where AUDITIME Between #%s# And #%s# And CERTSTATE=1",dayB,dayE);
}
else//ID
{
CString id;
GetDlgItemText(IDC_EDIT,id);
if(id=="") return;
query.Format("Select ID,USERINFO,AUDITIME From CERTLIST Where ID=%s and CERTSTATE=1",id);
}
CA.Type=FAuditD;//待制作
strcpy(CA.SQL,query);
LIST->CA=CA;
((CRaclientApp *)AfxGetApp())->m_SslSocket.AddCommand((stuLIST *)LIST);
((CRaChildFrame*)GetParentFrame( ))->AddMsg("待制作證書查詢指令加入消息隊列成功,等待發送......",M_WARING);
if(!Select)
((CRaclientApp *)AfxGetApp())->m_SslSocket.AsyncSelect(FD_WRITE|FD_CLOSE);
}
void CMadeCertView::OnButtonAutMade() //證書制作
{
// TODO: Add your control notification handler code here
CString m_strPath;
GetModuleFileName(NULL,m_strPath.GetBufferSetLength (MAX_PATH+1),MAX_PATH);
m_strPath.ReleaseBuffer ();
int nPos;
nPos=m_strPath.ReverseFind ('\\');
m_strPath=m_strPath.Left (nPos);
CString lpszPath = m_strPath + "\\CERT";
if(_mkdir(lpszPath) == -1)
{
if(errno==EEXIST)//目錄已經存在
{
((CMainFrame *)AfxGetMainWnd())->m_PathCert=lpszPath;
}
if(errno==ENOENT)//目錄沒有發現
{
((CRaChildFrame*)GetParentFrame( ))->AddMsg("目錄錯誤",M_ERROR);
return;
}
}
else
((CMainFrame *)AfxGetMainWnd())->m_PathCert=lpszPath;
CString query;
POSITION pos = m_List.GetFirstSelectedItemPosition();
BOOL Select=((CRaclientApp *)AfxGetApp())->m_SslSocket.GetComCount();//存在元素
if (pos == NULL)
return;
else
{
while (pos)
{
stuLIST * LIST=new stuLIST();
stuCA CA;
CString nItem = m_List.GetItemText(m_List.GetNextSelectedItem(pos),0);
query.Format("Select ID,USERCERT,USERKEY,CERTSTATE,MADETIME From CERTLIST Where ID=%s",nItem);
CA.Type=Made;
strcpy(CA.SQL,query);
LIST->ID=atoi(nItem);
LIST->CA=CA;
((CRaclientApp *)AfxGetApp())->m_SslSocket.AddCommand((stuLIST *)LIST);
}
((CRaChildFrame*)GetParentFrame( ))->AddMsg("證書制作指令加入消息隊列成功,等待發送......",M_WARING);
}
if(!Select)
((CRaclientApp *)AfxGetApp())->m_SslSocket.AsyncSelect(FD_WRITE|FD_CLOSE);
}
void CMadeCertView::OnClickListMade(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
m_select=m_List.GetSelectionMark();
if(m_select==-1) return;
m_List.SetItemState(m_select,LVIS_SELECTED,LVIS_SELECTED);
m_List.SetFocus();
m_num=m_List.GetItemText(m_select,0);//內部編號
// *pResult = 0;
}
void CMadeCertView::OnDestroy()
{
CFormView::OnDestroy();
((CMainFrame*)AfxGetMainWnd())->m_pMade=NULL; // 清空窗口指針
// TODO: Add your message handler code here
}
void CMadeCertView::OnSelchangeCombo()
{
// TODO: Add your control notification handler code here
int select=((CComboBox *)GetDlgItem(IDC_COMBO))->GetCurSel();
if(select==0)//日期
{
GetDlgItem(IDC_DATE_BEGIN)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_DATE_END)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_EDIT)->ShowWindow(SW_HIDE);
}
else
{
GetDlgItem(IDC_DATE_BEGIN)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_DATE_END)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_EDIT)->ShowWindow(SW_SHOW);
}
}
void CMadeCertView::OnItemchangedListMade(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
// TODO: Add your control notification handler code here
int count=m_List.GetSelectedCount();
CString str;
str.Format("%d",count);
((CMainFrame *)AfxGetMainWnd())->SetStatusText(IDS_STRING_SELECT,str);
*pResult = 0;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -