📄 softdocch.cpp
字号:
// SoftDocCh.cpp : implementation file
//
#include "stdafx.h"
#include "SoftdocSystem.h"
#include "SoftDocCh.h"
#include "MovieIn.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CSoftDocCh dialog
CSoftDocCh::CSoftDocCh(CWnd* pParent /*=NULL*/)
: CDialog(CSoftDocCh::IDD, pParent)
{
//{{AFX_DATA_INIT(CSoftDocCh)
m_SoftType = _T("");
m_SoftName = _T("");
m_Xinghao = _T("");
m_Author = _T("");
m_Xitong = _T("");
m_Context = _T("");
m_Number = _T("");
//}}AFX_DATA_INIT
}
void CSoftDocCh::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CSoftDocCh)
DDX_Control(pDX, IDC_LIST1, m_list);
DDX_Control(pDX, IDC_COMBO6, m_XitongCtrl);
DDX_Control(pDX, IDC_COMBO5, m_AuthorCtrl);
DDX_Control(pDX, IDC_COMBO4, m_XinghaoCtrl);
DDX_Control(pDX, IDC_COMBO3, m_SoftNameCtrl);
DDX_Control(pDX, IDC_COMBO1, m_SoftTypeCtrl);
DDX_CBString(pDX, IDC_COMBO1, m_SoftType);
DDX_CBString(pDX, IDC_COMBO3, m_SoftName);
DDX_CBString(pDX, IDC_COMBO4, m_Xinghao);
DDX_CBString(pDX, IDC_COMBO5, m_Author);
DDX_CBString(pDX, IDC_COMBO6, m_Xitong);
DDX_Text(pDX, IDC_EDIT5, m_Context);
DDX_Text(pDX, IDC_EDIT1, m_Number);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CSoftDocCh, CDialog)
//{{AFX_MSG_MAP(CSoftDocCh)
ON_CBN_CLOSEUP(IDC_COMBO1, OnCloseupCombo1)
ON_BN_CLICKED(IDC_BUTTON1, OnQuery)
ON_BN_CLICKED(IDC_BUTTON2, OnChange)
ON_BN_CLICKED(IDOK, OnInput)
ON_BN_CLICKED(IDC_BUTTON3, OntheNext)
ON_NOTIFY(NM_CLICK, IDC_LIST1, OnChoose)
ON_NOTIFY(NM_DBLCLK, IDC_LIST1, OnDblclkList1)
ON_WM_DESTROY()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CSoftDocCh message handlers
void CSoftDocCh::OnCloseupCombo1()
{
// TODO: Add your control notification handler code here
//UpdateData(false);
CString FindStr;
//FindStr=m_SoftType;
//GetDlgItemText(IDC_COMBO1,FindStr);
SetDlgItemText(IDC_EDIT1,_T(""));
SetDlgItemText(IDC_EDIT5,_T(""));
Invalidate();
((CComboBox*)GetDlgItem(IDC_COMBO1))->GetWindowText (FindStr);//取得类型
//FindStr = m_SoftTypeCtrl.GetItemData(m_SoftTypeCtrl.GetCurSel());
FindStr.TrimRight (" ");
/*int Count=m_SoftNameCtrl.GetCount ();//清空数据,为何Clear()不好使
for(int i=Count;i<0;i--)
m_SoftNameCtrl.DeleteItem (i);*/
m_SoftNameCtrl.Clear();
((CComboBox*)GetDlgItem(IDC_COMBO3))->Clear();//取得类型
int Count=m_SoftNameCtrl.GetCount ();
CString Mysql_,str2;
_RecordsetPtr Myset;
Myset.CreateInstance (__uuidof(Recordset));
Mysql_.Format("SELECT DISTINCT 软件名称 FROM SoftDocInfo WHERE 软件类型 = '%s'",FindStr);
_bstr_t Mysql=Mysql_;
_bstr_t source=m_strSource;
try{
Myset->Open (Mysql,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)
str2=(char*)(_bstr_t)Holder;
str2.TrimRight (" ");
m_SoftNameCtrl.AddString(str2);
Myset->MoveNext ();
}
Myset->Close();
m_SoftNameCtrl.SetCurSel (0);
}
BOOL CSoftDocCh::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
//改变字体
//改变字体
LOGFONT LogFont;
(CFont*)CWnd::GetFont()->GetLogFont(&LogFont);
LogFont.lfItalic=true;
strcpy(LogFont.lfFaceName,"楷体_GB2312");
LogFont.lfHeight=LogFont.lfHeight*2.5;
LogFont.lfWidth=LogFont.lfWidth*2.5;
m_font.CreateFontIndirect(&LogFont);
GetDlgItem(IDC_HEADLINE)->SetFont(&m_font,true);
//连接数据库
CSoftDocSystemApp* myApp=(CSoftDocSystemApp*)AfxGetApp();
CString source_;
source_.Format ("driver={SQL Server};server=%s;database=SoftDocument",myApp->ConnectServer);
_bstr_t source=source_;
_bstr_t pwd=myApp->ConnectPwd;
_bstr_t user=myApp->ConnectUser;
HRESULT hr;
try{
hr = m_DBCnt.CreateInstance(_uuidof(Connection));
if(SUCCEEDED(hr))
hr = m_DBCnt->Open(source, user, pwd, 16);
if(SUCCEEDED(hr))
{m_fConnected = TRUE;
}
else
m_fConnected = FALSE;
}
catch (_com_error &e){
MessageBox(e.ErrorMessage());
m_fConnected = FALSE;
}
if(!m_fConnected)
{MessageBox("ADO数据源初始化失败!");
return false;}
else
m_strSource = (char * )source;
Initiate();
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CSoftDocCh::OnQuery()
{
// TODO: Add your control notification handler code here
UpdateData();
CString sql_,str2,str;
_RecordsetPtr Myset;
sql_="select * from SoftDocInfo where";
m_SoftName.TrimRight(" ");
m_Xinghao.TrimRight (" ");
m_Xitong.TrimRight (" ");
m_SoftType.TrimRight (" ");
str.Format (" 软件类型 ='%s'",m_SoftType);
if(!m_SoftType.IsEmpty ())sql_+=str;
str.Format (" and 软件名称 ='%s'", m_SoftName);
if(!m_SoftName.IsEmpty ())sql_+=str;
str.Format (" and 所属型号 ='%s'",m_SoftType);
if(!m_Xinghao.IsEmpty ())sql_+=str;
str.Format(" and 所属系统 ='%s'",m_Xinghao);
if(!m_Xitong.IsEmpty ())sql_+=str;
//查找所需软件稳当
Myset.CreateInstance (__uuidof(Recordset));
_bstr_t Mysql=sql_;
_bstr_t source=m_strSource;
m_list.DeleteAllItems ();
try{
Myset->Open (Mysql,source,adOpenDynamic,adLockOptimistic,adCmdText);
}
catch(_com_error &e){
AfxMessageBox(e.ErrorMessage());return;}
str2.Empty();
int i=0;
_variant_t Holder;
m_list.SetRedraw (false);
while(!Myset->adoEOF ){
//数据输入列表框
Holder=Myset->GetCollect ("软件名称");
if(Holder.vt!=VT_NULL)
m_list.InsertItem (i,(char*)(_bstr_t)Holder);
else
m_list.InsertItem (i,"不明软件名");
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,"不明格式");
Holder=Myset->GetCollect ("光盘");
if(Holder.vt!=VT_NULL)
m_list.SetItemText(i,7,(char*)(_bstr_t)Holder);
else
m_list.SetItemText (i,7,"不明格式");
Holder=Myset->GetCollect ("硬盘");
if(Holder.vt!=VT_NULL)
m_list.SetItemText(i,8,(char*)(_bstr_t)Holder);
else
m_list.SetItemText(i,8,"不明格式");
Holder=Myset->GetCollect ("文本");
if(Holder.vt!=VT_NULL)
m_list.SetItemText(i,9,(char*)(_bstr_t)Holder);
else
m_list.SetItemText(i,9,"不明格式");
Holder=Myset->GetCollect ("其他");
if(Holder.vt!=VT_NULL)
m_list.SetItemText(i,10,(char*)(_bstr_t)Holder);
else
m_list.SetItemText (i,10,"不明格式");
Holder=Myset->GetCollect ("软件功能描述");
if(Holder.vt!=VT_NULL)
m_list.SetItemText(i,11,(char*)(_bstr_t)Holder);
else
m_list.SetItemText(i,11,"不明功能");
i+=1;
Myset->MoveNext();
}
Myset->Close();
m_list.SetRedraw (true);
}
void CSoftDocCh::OnChange()
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -