querydlg.cpp
来自「用Visual C++ 开发的项目管理系统」· C++ 代码 · 共 622 行 · 第 1/2 页
CPP
622 行
case 5:
{
//按档案文件名称进行查询
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;
case 6:
{
//按电子文件ID进行查询
if (m_cQName.IsEmpty())
{
MessageBox("查询名字为空");
}
else
{
CString sql;
sql="Select P.ProjectID,P.ProjectName,P.ProjectLoc,P.ProjectTime,P.ProjectRemark From ProjectInfo P,FileTable D Where P.ProjectName = D.ProjectName And D.FileID = '%"+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 7:
{
//按档案文件ID进行查询
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.FileID = '%"+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;
default:
break;
}
}
void CQueryDlg::OnSelchangeComboQuerymode()
{
// TODO: Add your control notification handler code here
if (m_QModeControl.GetCurSel()==3)
{
//创建输入起始时间的编辑框和静态文本
SetDlgItemText(IDC_STATIC_CONTENT,"输入终止时间:");
static CRect rect1,rect2,rect3;
if (rect1.IsRectNull())
{
GetDlgItem(IDC_COMBO_QUERYMODE)->GetWindowRect(&rect1);
ScreenToClient(&rect1);
rect2.left=rect1.right+10;
rect2.top=rect1.top;
rect2.right=rect2.left+85;
rect2.bottom=rect1.bottom;
rect3.left=rect2.right+10;
rect3.top=rect2.top;
rect3.right=rect3.left+100;
rect3.bottom=rect2.bottom;
}
m_font.CreatePointFont(100,"宋体");
m_StartTime.Create("输入起始时间:",SS_CENTER | WS_VISIBLE | WS_CHILD ,rect2,this);
// m_EStartTime.Create(0x50810080,rect3,this,1);
m_EStartTime.CreateEx(WS_EX_CLIENTEDGE,"EDIT","",WS_CHILD | WS_VISIBLE | WS_BORDER | ES_NUMBER,
rect3.left,rect3.top,rect3.Width(),rect3.Height(),this->m_hWnd,
NULL);
m_StartTime.SetFont(&m_font,true);
m_EStartTime.SetFont(&m_font,true);
//设置终止时间编辑框只能输入数字
LONG style;
style=GetWindowLong(GetDlgItem(IDC_EDIT_QNAME)->m_hWnd,GWL_STYLE);
style |=ES_NUMBER;
SetWindowLong(GetDlgItem(IDC_EDIT_QNAME)->m_hWnd,GWL_STYLE,style);
}
else
{
SetDlgItemText(IDC_STATIC_CONTENT,"输入查询内容:");
if (m_StartTime.m_hWnd!=NULL)
{
m_StartTime.DestroyWindow();
}
if (m_EStartTime.m_hWnd!=NULL)
{
m_EStartTime.DestroyWindow();
}
//可以输入任何字符
LONG style;
style=GetWindowLong(GetDlgItem(IDC_EDIT_QNAME)->m_hWnd,GWL_STYLE);
style &= ~ES_NUMBER;
SetWindowLong(GetDlgItem(IDC_EDIT_QNAME)->m_hWnd,GWL_STYLE,style);
}
}
BEGIN_EVENTSINK_MAP(CQueryDlg, CDialog)
//{{AFX_EVENTSINK_MAP(CQueryDlg)
ON_EVENT(CQueryDlg, IDC_DATAGRID_PROINFO, 221 /* SelChange */, OnSelChangeDatagridProinfo, VTS_PI2)
ON_EVENT(CQueryDlg, IDC_DATAGRID_PROINFO, 218 /* RowColChange */, OnRowColChangeDatagridProinfo, VTS_PVARIANT VTS_I2)
//}}AFX_EVENTSINK_MAP
END_EVENTSINK_MAP()
void CQueryDlg::OnSelChangeDatagridProinfo(short FAR* Cancel)
{
// TODO: Add your control notification handler code here
short row=m_ProInfoGridControl.GetRow();
m_cProName=m_RecordQuery->GetCollect("ProjectName").bstrVal;
CString sql1,sql2,sql3;
//把项目电子文档信息绑定到显示列表
sql1="Select * From FileElectron Where ProjectName='"+m_cProName+"'";
m_RecordEFile.CreateInstance("ADODB.Recordset");
m_RecordEFile->Open((_variant_t)sql1,_variant_t((IDispatch *)theApp.m_pConnection,true),
adOpenDynamic,adLockPessimistic,adCmdText);
m_EFileGridControl.SetRefDataSource(NULL);
m_EFileGridControl.SetRefDataSource((LPUNKNOWN)m_RecordEFile);
m_EFileGridControl.SetColumnHeaders(6);
//设置列宽
SetColumnWidth(m_EFileGridControl,8,EFileWidth,strEFile);
m_EFileGridControl.Refresh();
//把项目档案信息绑定到显示列表
sql2="Select * From FileTable Where ProjectName='"+m_cProName+"'";
m_RecordFile.CreateInstance("ADODB.Recordset");
m_RecordFile->Open((_variant_t)sql2,_variant_t((IDispatch *)theApp.m_pConnection,true),
adOpenDynamic,adLockPessimistic,adCmdText);
m_FileGridControl.SetRefDataSource(NULL);
m_FileGridControl.SetRefDataSource((LPUNKNOWN)m_RecordFile);
m_FileGridControl.SetColumnHeaders(6);
//设置列宽
SetColumnWidth(m_FileGridControl,5,FileWidth,strFile);
m_FileGridControl.Refresh();
//把项目人员情况绑定到显示列表
sql3="Select * From ProjectDesigner Where ProjectName='"+m_cProName+"'";
m_RecordName.CreateInstance("ADODB.Recordset");
m_RecordName->Open((_variant_t)sql3,_variant_t((IDispatch *)theApp.m_pConnection,true),
adOpenDynamic,adLockPessimistic,adCmdText);
m_NameGridControl.SetRefDataSource(NULL);
m_NameGridControl.SetRefDataSource((LPUNKNOWN)m_RecordName);
m_NameGridControl.SetColumnHeaders(6);
//设置列宽
SetColumnWidth(m_NameGridControl,3,NameWidth,strUser);
m_NameGridControl.Refresh();
}
//设置DATAGRID控件的列宽
void CQueryDlg::SetColumnWidth(CDataGrid &ProControl, short count, float *WidthArray,CString * strTitle)
{
_variant_t vIndex;
for (int i=0;i<count;i++)
{
vIndex=long(i);
((ProControl.GetColumns()).GetItem(vIndex)).SetWidth(WidthArray[i]);
((ProControl.GetColumns()).GetItem(vIndex)).SetCaption(strTitle[i]);
}
}
void CQueryDlg::OnBtnExit()
{
// TODO: Add your control notification handler code here
CDialog::OnCancel();
}
void CQueryDlg::OnBtnOpen()
{
// TODO: Add your control notification handler code here
//获得文件绝对路径
short row=m_EFileGridControl.GetRow();
CString str;
str=m_RecordEFile->GetCollect("FileLoc").bstrVal;
m_cEfilePath+=str;
m_cEfilePath+="\\";
str=m_RecordEFile->GetCollect("FileName").bstrVal;
m_cEfilePath+=str;
AfxBeginThread(MyOpenFile,this);
}
//打开借阅文件的模块
void CQueryDlg::OnBtnBorrow()
{
// TODO: Add your control notification handler code here
short row=m_FileGridControl.GetRow();
m_FileName=m_RecordFile->GetCollect("FileName").bstrVal;
AfxBeginThread(MyBorrowFile,this);
}
CString CQueryDlg::CStringToDate(CString &str)
{
int year,month,day;
CString strTemp;
//查看是否有-,如没有,查看字符格式,如果大于
if (str.IsEmpty())
{
MessageBox("日期格式错误");
}
else
{
int i=str.GetLength();
if (i<8)
{
MessageBox("日期格式错误");
}
else
{
strTemp=str.Left(4);
year=atoi((LPCSTR)strTemp);
strTemp=str.Mid(4,2);
month=atoi((LPCSTR)strTemp);
if (month>12)
{
MessageBox("日期格式错误");
}
strTemp=str.Mid(6,2);
day=atoi((LPCSTR)strTemp);
if (day>31)
{
MessageBox("日期格式错误");
}
}
}
CTime dTime(year,month,day,0,0,0);
strTemp=dTime.Format("%Y-%m-%d");
return strTemp;
}
void CQueryDlg::OnRowColChangeDatagridProinfo(VARIANT FAR* LastRow, short LastCol)
{
// TODO: Add your control notification handler code here
short row=m_ProInfoGridControl.GetRow();
m_cProName=m_RecordQuery->GetCollect("ProjectName").bstrVal;
CString sql1,sql2,sql3;
//把项目电子文档信息绑定到显示列表
sql1="Select * From FileElectron Where ProjectName='"+m_cProName+"'";
m_RecordEFile.CreateInstance("ADODB.Recordset");
m_RecordEFile->Open((_variant_t)sql1,_variant_t((IDispatch *)theApp.m_pConnection,true),
adOpenDynamic,adLockPessimistic,adCmdText);
m_EFileGridControl.SetRefDataSource(NULL);
m_EFileGridControl.SetRefDataSource((LPUNKNOWN)m_RecordEFile);
m_EFileGridControl.SetColumnHeaders(6);
//设置列宽
SetColumnWidth(m_EFileGridControl,8,EFileWidth,strEFile);
m_EFileGridControl.Refresh();
//把项目档案信息绑定到显示列表
sql2="Select * From FileTable Where ProjectName='"+m_cProName+"'";
m_RecordFile.CreateInstance("ADODB.Recordset");
m_RecordFile->Open((_variant_t)sql2,_variant_t((IDispatch *)theApp.m_pConnection,true),
adOpenDynamic,adLockPessimistic,adCmdText);
m_FileGridControl.SetRefDataSource(NULL);
m_FileGridControl.SetRefDataSource((LPUNKNOWN)m_RecordFile);
m_FileGridControl.SetColumnHeaders(6);
//设置列宽
SetColumnWidth(m_FileGridControl,5,FileWidth,strFile);
m_FileGridControl.Refresh();
//把项目人员情况绑定到显示列表
sql3="Select * From ProjectDesigner Where ProjectName='"+m_cProName+"'";
m_RecordName.CreateInstance("ADODB.Recordset");
m_RecordName->Open((_variant_t)sql3,_variant_t((IDispatch *)theApp.m_pConnection,true),
adOpenDynamic,adLockPessimistic,adCmdText);
m_NameGridControl.SetRefDataSource(NULL);
m_NameGridControl.SetRefDataSource((LPUNKNOWN)m_RecordName);
m_NameGridControl.SetColumnHeaders(6);
//设置列宽
SetColumnWidth(m_NameGridControl,3,NameWidth,strUser);
m_NameGridControl.Refresh();
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?