📄 querydlg.cpp
字号:
// 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 + -