⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 querydlg.cpp

📁 用Visual C++ 开发的项目管理系统
💻 CPP
📖 第 1 页 / 共 2 页
字号:
// QueryDlg.cpp : implementation file
//

#include "stdafx.h"
#include "FileMaSys.h"
#include "QueryDlg.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
extern CFileMaSysApp theApp;
float ProWidth[5]={80,80,100,70,100};  //项目信息列宽
CString strProInfo[5]={"项目ID","项目名称","项目位置","创建时间","项目说明"};
float EFileWidth[8]={80,80,80,30,100,20,70,60};  //电子文件列宽
CString strEFile[8]={"文件ID","文件名称","所属项目","文件类型","文件位置","级数","修改时间","设计"};
float FileWidth[6]={80,80,100,20,20,100};  //档案信息列宽
CString strFile[6]={"文档ID","文档名称","所属项目","文件数量","可借数量","文件说明"};
float NameWidth[3]={120,120,120};       //参与人员列宽
CString strUser[3]={"项目名称","设计员","职责"};

/////////////////////////////////////////////////////////////////////////////
// CQueryDlg dialog
//打开选择的文件的线程
UINT MyOpenFile(LPVOID pParam)
{
	CQueryDlg *pWnd=(CQueryDlg *)pParam;
	HINSTANCE Temp=ShellExecute(NULL,NULL,pWnd->m_cEfilePath,NULL,NULL,SW_SHOWNORMAL);
	int i=(int)Temp;
	if (i<32)
	{
		MessageBox(pWnd->m_hWnd,"没有相关应用程序可以打开文件","失败",MB_OKCANCEL);
	} 
	return 0;
}
//打开借阅模块
UINT MyBorrowFile(LPVOID pParam)
{
	CQueryDlg *pWnd=(CQueryDlg *)pParam;
    CLendInfoDlg dlg;
	dlg.m_LFileName=pWnd->m_FileName;
	dlg.DoModal();
	return 0;
}
CQueryDlg::CQueryDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CQueryDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CQueryDlg)
	m_cQName = _T("");
	//}}AFX_DATA_INIT
    m_cQueryMode[0]="按工程名查询";
	m_cQueryMode[1]="按工程代码查询";
	m_cQueryMode[2]="按人员查询";
	m_cQueryMode[3]="按建立时间查询";
	m_cQueryMode[4]="按电子文件名称查询";
	m_cQueryMode[5]="按档案文件名称查询";
	m_cQueryMode[6]="按电子文件ID查询";
	m_cQueryMode[7]="按档案文件ID查询";	
}


void CQueryDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CQueryDlg)
	DDX_Control(pDX, IDC_BTN_VARIETY, m_BtnVarietyControl);
	DDX_Control(pDX, IDC_BTN_QUERY, m_BtnQueryControl);
	DDX_Control(pDX, IDC_BTN_OPEN, m_BtnOpenControl);
	DDX_Control(pDX, IDC_BTN_EXIT, m_BtnExitControl);
	DDX_Control(pDX, IDC_BTN_BORROW, m_BtnBorrowControl);
	DDX_Control(pDX, IDC_COMBO_QUERYMODE, m_QModeControl);
	DDX_Text(pDX, IDC_EDIT_QNAME, m_cQName);
	DDX_Control(pDX, IDC_DATAGRID_PROINFO, m_ProInfoGridControl);
	DDX_Control(pDX, IDC_DATAGRID_NAME, m_NameGridControl);
	DDX_Control(pDX, IDC_DATAGRID_FILE, m_FileGridControl);
	DDX_Control(pDX, IDC_DATAGRID_EFILE, m_EFileGridControl);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CQueryDlg, CDialog)
	//{{AFX_MSG_MAP(CQueryDlg)
	ON_BN_CLICKED(IDC_BTN_VARIETY, OnBtnVariety)
	ON_BN_CLICKED(IDC_BTN_QUERY, OnBtnQuery)
	ON_CBN_SELCHANGE(IDC_COMBO_QUERYMODE, OnSelchangeComboQuerymode)
	ON_BN_CLICKED(IDC_BTN_EXIT, OnBtnExit)
	ON_BN_CLICKED(IDC_BTN_OPEN, OnBtnOpen)
	ON_BN_CLICKED(IDC_BTN_BORROW, OnBtnBorrow)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CQueryDlg message handlers

void CQueryDlg::OnBtnVariety() 
{
	// TODO: Add your control notification handler code here
	CString str;
	if (GetDlgItemText(IDC_BTN_VARIETY,str),str=="详细信息>>")
	{
		str="基本信息<<";
		SetDlgItemText(IDC_BTN_VARIETY,str);
	} 
	else
	{
		str="详细信息>>";
		SetDlgItemText(IDC_BTN_VARIETY,str);
	}
	static CRect  rectLarge,rectSmall;
	if (rectLarge.IsRectNull())
	{
		CRect rectSeprator;
		GetWindowRect(&rectLarge);
		GetDlgItem(IDC_SEPRATOR)->GetWindowRect(&rectSeprator);
		rectSmall.left=rectLarge.left;
		rectSmall.top=rectLarge.top;
		rectSmall.bottom=rectLarge.bottom;
		rectSmall.right=rectSeprator.right;
	}
	if (str=="基本信息<<")
	{
		SetWindowPos(NULL,0,0,rectSmall.Width(),rectSmall.Height(),SWP_NOMOVE | SWP_NOZORDER);
	} 
	else
	{
		SetWindowPos(NULL,0,0,rectLarge.Width(),rectLarge.Height(),SWP_NOMOVE | SWP_NOZORDER);
	}
}

BOOL CQueryDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	for (int i=0;i<QueryCount;i++)
	{
         m_QModeControl.AddString(m_cQueryMode[i]);
	}
	m_QModeControl.SetCurSel(0);
    //设置别名
	/*
	SetColumnWidth(m_ProInfoGridControl,5,ProWidth);
		_variant_t vIndex;
		vIndex=long(0);
		m_ProInfoGridControl.GetColumns().GetItem(vIndex).SetCaption("工程名");*/
	HICON iconExit=(HICON)LoadImage(AfxGetApp()->m_hInstance,MAKEINTRESOURCE(IDI_ICON_ERROR),
			                IMAGE_ICON,16,16,LR_DEFAULTCOLOR);
	//设置查询按钮
	m_BtnQueryControl.SetIcon(IDI_ICON_FIND);
	m_BtnQueryControl.DrawTransparent(TRUE);
	m_BtnQueryControl.SetColor(CButtonST::BTNST_COLOR_FG_IN,RGB(255,0,0));
	m_BtnQueryControl.SetAlign(CButtonST::ST_ALIGN_HORIZ);
	//设置退出按钮
	m_BtnExitControl.SetIcon(iconExit);
	m_BtnExitControl.DrawTransparent(TRUE);
	m_BtnExitControl.SetColor(CButtonST::BTNST_COLOR_FG_IN,RGB(255,0,0));
	m_BtnExitControl.SetAlign(CButtonST::ST_ALIGN_HORIZ);
	//设置删除按钮
	m_BtnVarietyControl.SetIcon(IDI_ICON_DETAIL);
	m_BtnVarietyControl.DrawTransparent(TRUE);
	m_BtnVarietyControl.SetColor(CButtonST::BTNST_COLOR_FG_IN,RGB(255,0,0));
	m_BtnVarietyControl.SetAlign(CButtonST::ST_ALIGN_HORIZ);
	//设置打开文件按钮
	m_BtnOpenControl.SetIcon(IDI_ICON_OPEN);
	m_BtnOpenControl.DrawTransparent(TRUE);
	m_BtnOpenControl.SetColor(CButtonST::BTNST_COLOR_FG_IN,RGB(255,0,0));
	m_BtnOpenControl.SetAlign(CButtonST::ST_ALIGN_HORIZ);
	m_BtnOpenControl.SetTooltipText("点击打开电子文件");
	//设置借阅文件按钮
	m_BtnBorrowControl.SetIcon(IDI_ICON_BORROW);
	m_BtnBorrowControl.DrawTransparent(TRUE);
	m_BtnBorrowControl.SetColor(CButtonST::BTNST_COLOR_FG_IN,RGB(255,0,0));
	m_BtnBorrowControl.SetAlign(CButtonST::ST_ALIGN_HORIZ);
	m_BtnBorrowControl.SetTooltipText("点击转到借阅文件界面");
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CQueryDlg::OnBtnQuery() 
{
	// TODO: Add your control notification handler code here
	UpdateData(TRUE);
	int mode=m_QModeControl.GetCurSel();
	switch(mode)
	{
	case 0:
		{
			//按项目名称查询
			if (m_cQName.IsEmpty())
			{
				MessageBox("查询名字为空");
			} 
			else
			{
				CString sql;
				sql="Select * From ProjectInfo Where ProjectName Like '%"+m_cQName+"%'";
				m_RecordQuery.CreateInstance("ADODB.Recordset");
				m_RecordQuery->Open((_variant_t)sql,_variant_t((IDispatch *)theApp.m_pConnection,true),
				                adOpenDynamic,adLockPessimistic,adCmdText);
				//将项目信息绑定到数据显示列表
				m_ProInfoGridControl.SetRefDataSource(NULL);
				m_ProInfoGridControl.SetRefDataSource((LPUNKNOWN)m_RecordQuery);
				m_ProInfoGridControl.SetColumnHeaders(6);
				//设置列宽
				SetColumnWidth(m_ProInfoGridControl,5,ProWidth,strProInfo);
			    m_ProInfoGridControl.Refresh();
			}
			
		}
		break;
	case 1:
		{
			//按项目ID查询
			if (m_cQName.IsEmpty())
			{
				MessageBox("查询名字为空");
			} 
			else
			{
				CString sql;
				sql="Select * From ProjectInfo Where ProjectID Like '%"+m_cQName+"%'";
				m_RecordQuery.CreateInstance("ADODB.Recordset");
				m_RecordQuery->Open((_variant_t)sql,_variant_t((IDispatch *)theApp.m_pConnection,true),
					adOpenDynamic,adLockPessimistic,adCmdText);
				//将项目信息绑定到数据显示列表
				m_ProInfoGridControl.SetRefDataSource(NULL);
				m_ProInfoGridControl.SetRefDataSource((LPUNKNOWN)m_RecordQuery);
				m_ProInfoGridControl.SetColumnHeaders(6);
				//设置列宽
				SetColumnWidth(m_ProInfoGridControl,5,ProWidth,strProInfo);
			    m_ProInfoGridControl.Refresh();
			}
            
		}
		break;
	case 2:
		{
			//按参与人员名称进行查询
			if (m_cQName.IsEmpty())
			{
				MessageBox("查询名字为空");
			} 
			else
			{
				CString sql;
				sql="Select P.ProjectID,P.ProjectName,P.ProjectLoc,P.ProjectTime,P.ProjectRemark From ProjectInfo P,ProjectDesigner D Where P.ProjectName = D.ProjectName And D.Designer = '%"+m_cQName+"%'";
				m_RecordQuery.CreateInstance("ADODB.Recordset");
				m_RecordQuery->Open((_variant_t)sql,_variant_t((IDispatch *)theApp.m_pConnection,true),
				                adOpenDynamic,adLockPessimistic,adCmdText);
				//将项目信息绑定到数据显示列表
				m_ProInfoGridControl.SetRefDataSource(NULL);
				m_ProInfoGridControl.SetRefDataSource((LPUNKNOWN)m_RecordQuery);
				m_ProInfoGridControl.SetColumnHeaders(6);
				//设置列宽
				SetColumnWidth(m_ProInfoGridControl,5,ProWidth,strProInfo);
			    m_ProInfoGridControl.Refresh();
			}
			
		}
	    break;
	case 3:
		{
			//按项目建立时间进行查询
			UpdateData(TRUE);
			CString SetTime;
			if (m_EStartTime.m_hWnd!=NULL)
			{
				m_EStartTime.GetWindowText(SetTime);
			}
			CString StartTime=CStringToDate(SetTime);
			CString EndTime=CStringToDate(m_cQName);
			CString sql;
			sql="Select * From ProjectInfo Where ProjectTime >= cdate('"+StartTime+"') And ProjectTime <=cdate('"+EndTime+"')";
            m_RecordQuery.CreateInstance("ADODB.Recordset");
			m_RecordQuery->Open((_variant_t)sql,_variant_t((IDispatch *)theApp.m_pConnection,true),
				adOpenDynamic,adLockPessimistic,adCmdText);
			//将项目信息绑定到数据显示列表
			m_ProInfoGridControl.SetRefDataSource(NULL);
			m_ProInfoGridControl.SetRefDataSource((LPUNKNOWN)m_RecordQuery);
			m_ProInfoGridControl.SetColumnHeaders(6);
			//设置列宽
			SetColumnWidth(m_ProInfoGridControl,5,ProWidth,strProInfo);
			m_ProInfoGridControl.Refresh();
		}
	    break;
	case 4:
		{
            //按电子文件名称查询
			if (m_cQName.IsEmpty())
			{
				MessageBox("查询名字为空");
			} 
			else
			{
				CString sql;
				sql="Select P.ProjectID,P.ProjectName,P.ProjectLoc,P.ProjectTime,P.ProjectRemark From ProjectInfo P,FileElectron D Where P.ProjectName = D.ProjectName And D.FileName = '%"+m_cQName+"%'";
				m_RecordQuery.CreateInstance("ADODB.Recordset");
				m_RecordQuery->Open((_variant_t)sql,_variant_t((IDispatch *)theApp.m_pConnection,true),
					adOpenDynamic,adLockPessimistic,adCmdText);
				//将项目信息绑定到数据显示列表
				m_ProInfoGridControl.SetRefDataSource(NULL);
				m_ProInfoGridControl.SetRefDataSource((LPUNKNOWN)m_RecordQuery);
				m_ProInfoGridControl.SetColumnHeaders(6);
				//设置列宽
				SetColumnWidth(m_ProInfoGridControl,5,ProWidth,strProInfo);
			    m_ProInfoGridControl.Refresh();
			}
			
		}
		break;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -