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

📄 viewcablealarminfo.cpp

📁 电缆故障监控系统
💻 CPP
📖 第 1 页 / 共 2 页
字号:

    rc.top=nStartY;
	rc.bottom=nStartY+m_perlineHeight;

	rc.left=m_perlineHeight*3;
	rc.right=m_perlineHeight*3+nPerItem;
	pDC->DrawText("分机号",&rc,DT_CENTER);

	rc.left=m_perlineHeight*3+nPerItem;
	rc.right=m_perlineHeight*3+3*nPerItem;
	pDC->DrawText("分机名",&rc,DT_CENTER);


	rc.left=m_perlineHeight*3+3*nPerItem;
	rc.right=m_perlineHeight*3+4*nPerItem;
	pDC->DrawText("电缆号",&rc,DT_CENTER);

	rc.left=m_perlineHeight*3+4*nPerItem;
	rc.right=m_perlineHeight*3+6*nPerItem;
	pDC->DrawText("报警类型",&rc,DT_CENTER);

	rc.left=m_perlineHeight*3+6*nPerItem;
	rc.right=m_perlineHeight*3+7*nPerItem;
	pDC->DrawText("距离",&rc,DT_CENTER);

	rc.left=m_perlineHeight*3+7*nPerItem;
//	rc.right=m_perlineHeight*3+10*nPerItem;
	rc.right=m_paperWidth-m_perlineHeight*4;
	pDC->DrawText("报警时间",&rc,DT_CENTER);

/*	rc.left=m_perlineHeight*3+10*nPerItem;
	rc.right=m_paperWidth-m_perlineHeight*4;
	pDC->DrawText("恢复时间",&rc,DT_CENTER);
*/
	for(i=0;i<nEndRecord-nStartRecord+1;i++)
	{
		rc.top=nStartY+m_perlineHeight*(i+1);
		rc.bottom=nStartY+m_perlineHeight*(i+2);

		rc.left=m_perlineHeight*3;
		rc.right=m_perlineHeight*3+nPerItem;
		str=m_list1.GetItemText(nStartRecord-1+i, 0);
		pDC->DrawText(str,&rc,DT_CENTER);

		rc.left=m_perlineHeight*3+nPerItem;
		rc.right=m_perlineHeight*3+3*nPerItem;
		str=m_list1.GetItemText(nStartRecord-1+i, 1);
		pDC->DrawText(str,&rc,DT_CENTER);

		rc.left=m_perlineHeight*3+3*nPerItem;
		rc.right=m_perlineHeight*3+4*nPerItem;
		str=m_list1.GetItemText(nStartRecord-1+i, 2);
		pDC->DrawText(str,&rc,DT_CENTER);

		rc.left=m_perlineHeight*3+4*nPerItem;
		rc.right=m_perlineHeight*3+6*nPerItem;
		str=m_list1.GetItemText(nStartRecord-1+i, 3);
		pDC->DrawText(str,&rc,DT_CENTER);

		rc.left=m_perlineHeight*3+6*nPerItem;
		rc.right=m_perlineHeight*3+7*nPerItem;
		str=m_list1.GetItemText(nStartRecord-1+i, 4);
		pDC->DrawText(str,&rc,DT_CENTER);

		rc.left=m_perlineHeight*3+7*nPerItem;
//		rc.right=m_perlineHeight*3+10*nPerItem;
		rc.right=m_paperWidth-m_perlineHeight*3;
		str=m_list1.GetItemText(nStartRecord-1+i, 5);
		pDC->DrawText(str,&rc,DT_CENTER);

/*		rc.left=m_perlineHeight*3+10*nPerItem;
		rc.right=m_paperWidth-m_perlineHeight*3;
		str=m_list1.GetItemText(nStartRecord-1+i, 6);
		pDC->DrawText(str,&rc,DT_CENTER);
*/
	}
}

void CViewCableAlarmInfo::Print(CDC* pDC, CPrintInfo* pInfo)
{
	//4676*6744
	CFont  newFont;
	CRect rc;
	CFont* pOldFont;
    CString str;

	 pDC->StartPage();
     if(pInfo->m_nCurPage==1)
	 {
		 //打印标题
		 newFont.CreateFont(m_perCharHeight*2,0,0,0,FW_NORMAL,0,0,0,ANSI_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,DEFAULT_PITCH&FF_SWISS,"宋体");
		 pOldFont=(CFont*)pDC->SelectObject(&newFont);
		 rc=pInfo->m_rectDraw;
		 rc.top=m_perlineHeight*4;
		 rc.bottom=m_perlineHeight*6;
		 pDC->DrawText(strTitleArray[1],&rc,DT_CENTER);
		 pDC->SelectObject(pOldFont);
		 newFont.DeleteObject();
	 }
     if(pInfo->m_nCurPage==1)
	 {
		 m_nStartRecord=1;
		 m_nEndRecord=m_linesPerPage-11;
		 if(m_nEndRecord>m_list1.GetItemCount())
            m_nEndRecord=m_list1.GetItemCount();
		 DrawGrid(pDC,m_perlineHeight*6,m_nEndRecord-m_nStartRecord+1+1);
		 DrawTexttoGrid(pDC,m_perlineHeight*6,m_nStartRecord,m_nEndRecord);
	 }
     else
	 {
		 m_nStartRecord=m_linesPerPage-11+(pInfo->m_nCurPage-2)*(m_linesPerPage-9)+1;
		 m_nEndRecord=m_nStartRecord+m_linesPerPage-9;
		 if(m_nEndRecord>m_list1.GetItemCount())
            m_nEndRecord=m_list1.GetItemCount();
		 DrawGrid(pDC,m_perlineHeight*4,m_nEndRecord-m_nStartRecord+1+1);
		 DrawTexttoGrid(pDC,m_perlineHeight*4,m_nStartRecord,m_nEndRecord);
	 }
	//打印页码
	newFont.CreateFont((int)(m_perCharHeight*0.7),0,0,0,FW_NORMAL,0,0,0,ANSI_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,DEFAULT_PITCH&FF_SWISS,"宋体");
	pOldFont=(CFont*)pDC->SelectObject(&newFont);
	str.Format("-第%d页-",pInfo->m_nCurPage);
	pDC->TextOut(m_paperWidth-m_perlineHeight*6,(m_paperHeight-m_perlineHeight*4),str);
	pDC->SelectObject(pOldFont);
	newFont.DeleteObject();

}
void CViewCableAlarmInfo::OnButton3() //删除
{
	// TODO: Add your control notification handler code here
	CString str1,str2;
	UpdateData(TRUE);
	if(AfxMessageBox("你真想删除当前列表中所有记录吗?",MB_YESNO|MB_ICONWARNING)==IDNO)
		return;
	if(m_combo1.GetCurSel()==0)//按时间查询
	{
	   if(m_edit1==""||m_edit2=="")
	   {
		   MessageBox("没有正确地输入查询条件!请重新输入","提示信息");
		   return;
	   }
       m_table.m_strSort=_T("[alarmtime]");
//       m_table.m_strFilter=_T("[alarmtime] Between '" + m_edit1 + "' AND '" + m_edit2+"'"); 
       m_table.m_strFilter=_T("[alarmtime] Between #" + m_edit1 + "# AND #" + m_edit2+"#"); 
       if(m_table.Requery())
	   {
           m_list1.DeleteAllItems();
		   while(!m_table.IsEOF())
		   {
               m_table.Delete();
			   m_table.MoveNext();
		   }
	   }
	}
	else if(m_combo1.GetCurSel()==1)
	{
		if(m_edit3<0||m_edit3>999)
		{
		   MessageBox("没有正确地输入分机号!请重新输入","提示信息");
		   return;
		}
		m_table.m_strSort=_T("[alarmtime]");
		str1.Format("%d",m_edit3*100);
		str2.Format("%d",m_edit3*100+16);
        m_table.m_strFilter=_T("[cablenumber] Between " + str1 + " AND " + str2); 
		if(m_table.Requery())
		{
           m_list1.DeleteAllItems();
		   while(!m_table.IsEOF())
		   {
               m_table.Delete();
			   m_table.MoveNext();
		   }
		}
	}
	else
	{
		m_table.m_strSort=_T("[alarmtime]");
		str1.Format("%d",m_combo2.GetCurSel()+1);
		m_table.m_strFilter=_T("[alarmtype] = " + str1); 
		if(m_table.Requery())
		{
           m_list1.DeleteAllItems();
		   while(!m_table.IsEOF())
		   {
               m_table.Delete();
			   m_table.MoveNext();
		   }
		}
	}
}

void CViewCableAlarmInfo::OnSelchangeCombo1() 
{
	// TODO: Add your control notification handler code here
	int nIndex=m_combo1.GetCurSel();
	if(nIndex==0)//按时间查询
	{
		CTime time=CTime::GetCurrentTime();
		m_edit1=time.Format("%Y-%m-%d");
		m_edit1+=" 00:00:00";
		m_edit2=time.Format("%Y-%m-%d %H:%M:%S");
		
		GetDlgItem(IDC_MYSTATIC)->SetWindowPlacement(&m_mystaticwnd);
		GetDlgItem(IDC_EDIT1)->SetWindowPlacement(&m_editwnd[0]);
		GetDlgItem(IDC_EDIT2)->SetWindowPlacement(&m_editwnd[1]);

		WINDOWPLACEMENT wndplace;
		wndplace.rcNormalPosition.left	    = 2000;
		wndplace.rcNormalPosition.right	    = 2000;
		wndplace.rcNormalPosition.top		= 2000;
		wndplace.rcNormalPosition.bottom	= 2000;
		GetDlgItem(IDC_EDIT3)->SetWindowPlacement(&wndplace);
		GetDlgItem(IDC_COMBO2)->SetWindowPlacement(&wndplace);

    }
	else if(nIndex==1)//按分机号查询
	{
		m_edit3=0;
		GetDlgItem(IDC_EDIT3)->SetWindowPlacement(&m_editwnd[2]);

		WINDOWPLACEMENT wndplace;
		wndplace.rcNormalPosition.left	    = 2000;
		wndplace.rcNormalPosition.right	    = 2000;
		wndplace.rcNormalPosition.top		= 2000;
		wndplace.rcNormalPosition.bottom	= 2000;
		GetDlgItem(IDC_MYSTATIC)->SetWindowPlacement(&wndplace);
		GetDlgItem(IDC_EDIT1)->SetWindowPlacement(&wndplace);
		GetDlgItem(IDC_EDIT2)->SetWindowPlacement(&wndplace);
		GetDlgItem(IDC_COMBO2)->SetWindowPlacement(&wndplace);

	}
    else//按报警类型
	{
		m_combo2.SetCurSel(0);
		GetDlgItem(IDC_COMBO2)->SetWindowPlacement(&m_combownd);
		WINDOWPLACEMENT wndplace;
		wndplace.rcNormalPosition.left	    = 2000;
		wndplace.rcNormalPosition.right	    = 2000;
		wndplace.rcNormalPosition.top		= 2000;
		wndplace.rcNormalPosition.bottom	= 2000;
		GetDlgItem(IDC_MYSTATIC)->SetWindowPlacement(&wndplace);
		GetDlgItem(IDC_EDIT1)->SetWindowPlacement(&wndplace);
		GetDlgItem(IDC_EDIT2)->SetWindowPlacement(&wndplace);
		GetDlgItem(IDC_EDIT3)->SetWindowPlacement(&wndplace);
	}


	UpdateData(FALSE);		
}

void CViewCableAlarmInfo::OnExport3() 
{
	// TODO: Add your control notification handler code here
	if(!bHasExcelDriver())
	{
		MessageBox("没有安装Microsoft Excel Driver!","提示信息");
		return;
	}
	CString strPathname;

    CFileDialog filesavebox(FALSE,"xls",/*"default.xls"*/NULL,OFN_HIDEREADONLY/*|OFN_OVERWRITEPROMPT*/,"Excel文件(*.xls)|*.xls|",NULL);	
	if(filesavebox.DoModal()!=IDOK) return;
	strPathname=filesavebox.GetPathName();
	CDatabase database;
	CString   sDriver="Microsoft Excel Driver (*.xls)";
	CString sSql;
	CString str;
	int i,nTotalItem,j;
	TRY
	{
		sSql.Format("DRIVER={%s};DSN=;FIRSTROWHASNAMES=1;READONLY=FALSE;CREATE_DB=\"%s\";DBQ=%s",sDriver,strPathname,strPathname);
		if(database.OpenEx(sSql,CDatabase::noOdbcDialog))
		{
    		sSql="CREATE TABLE 报警信息表 (分机号 NUMBER,分机名 TEXT,电缆号 TEXT,报警类型 TEXT,距离 NUMBER,";
            sSql+="报警时间 TEXT)";
			database.ExecuteSQL(sSql);
			str="(分机号,分机名,电缆号,";
            str+="报警类型,距离,报警时间)";
            nTotalItem=m_list1.GetItemCount();
			for(i=0;i<nTotalItem;i++)
			{
				sSql="INSERT INTO 报警信息表 ";
				sSql+=str;
				sSql+=" VALUES(";

				for(j=0;j<4;j++)
				{
					sSql+="'";
					sSql+=m_list1.GetItemText(i,j);
					sSql+="',";
				}
				sSql+=m_list1.GetItemText(i,4);
				sSql+=",";
				sSql+="'";
				sSql+=m_list1.GetItemText(i,5);
				sSql+="'";
				sSql+=")";
				database.ExecuteSQL(sSql);
			}
		}
        database.Close();
	}
	CATCH_ALL(e)
	{
		
		TRACE0("%s","不能对表重新写入!");
	}
	END_CATCH_ALL;				
}
BOOL CViewCableAlarmInfo::bHasExcelDriver()
{
    char szBuf[2001];
	WORD cbBufMax=2000;
	WORD cbBufOut;
	char* pszBuf=szBuf;
	CString sDriver;
	if(!SQLGetInstalledDrivers(szBuf,cbBufMax,&cbBufOut)) return FALSE;
	do
	{
		if(strstr(pszBuf,"Excel")!=0)
		   return TRUE;
		pszBuf=strchr(pszBuf,'\0')+1;
	}
	while(pszBuf[0]!='\0');
	return FALSE;
}

⌨️ 快捷键说明

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