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

📄 resultview.cpp

📁 一个用C++写的电力系统故障录波数据管理系统
💻 CPP
📖 第 1 页 / 共 2 页
字号:


// ResultView.cpp : implementation file
//
#include "stdafx.h"
#include "wgl_32.h"
#include "ResultView.h"
#include "SearchDlg.h"
#include "ZhxSet.h"
#include "DelDialog.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

CSearchDlg dlg;
CZhxSet CMySet;
char* title[6]={"\0","\0","\0","\0","\0","\0"};

/////////////////////////////////////////////////////////////////////////////
// CResultView


IMPLEMENT_DYNCREATE(CResultView, CScrollView)

CResultView::CResultView()
{
	m_rmode=FALSE;
	m_AddMode=FALSE;
	n=0;
	m_Mode=FALSE;
	flag=FALSE;
}

CResultView::~CResultView()
{
}


BEGIN_MESSAGE_MAP(CResultView, CScrollView)
	//{{AFX_MSG_MAP(CResultView)
	ON_COMMAND(ID_STATIS_FAULT, OnStatisFault)
	ON_COMMAND(IDC_EDIT_DELETE, OnEditDelete)
	//}}AFX_MSG_MAP
	ON_COMMAND(ID_FILE_PRINT, CScrollView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_DIRECT, CScrollView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_PREVIEW, CScrollView::OnFilePrintPreview)

END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CResultView drawing

void CResultView::OnInitialUpdate()
{
	CScrollView::OnInitialUpdate();

	CSize sizeTotal;
	// TODO: calculate the total size of this view UpdateAllViews SetMapMode
	sizeTotal.cx = 2800;
	sizeTotal.cy = 900;
	SetScrollSizes(MM_LOMETRIC, sizeTotal);
}

char* value[7];

void CResultView::OnDraw(CDC* pDC)
{
	CDocument* pDoc = GetDocument();
	UpdateWindow();
	char* Time[6]={"年","月","日","时","分","秒"};
	char* item1[]={"记录号","起始日期时间","故障类型","故障延续时间","录波器ID","故障线路名","故障文件名"};
	char* item[]={"起始日期时间:","结束日期时间:","查询地区名称:","查询线路名称:","故障类型:","录波器ID:"};				
	int length=2200;
	if(m_rmode){
		CFont font1;
		int i;
        CFont* poldFont;		
		font1.CreateFont(100,70,0,0,400,FALSE,FALSE,0,ANSI_CHARSET,OUT_DEFAULT_PRECIS,
			CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,DEFAULT_PITCH&FF_SWISS,"Arial");
		//DEFAULT_PITCH&FF_SWISS,"Arial"//DEFAULT_PITCH&FF_MODERN,"Courier"
		poldFont=pDC->SelectObject(&font1);	
		pDC->TextOut(50,0,"电力系统故障录波数据查询统计结果");			
		CFont font2;		
		font2.CreateFont(50,30,0,0,400,FALSE,FALSE,0,ANSI_CHARSET,OUT_DEFAULT_PRECIS,
			CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,DEFAULT_PITCH&FF_SWISS,"Arial");		
		pDC->SelectObject(&font2);
		for(i=0;i<=5;i++)
		{
			pDC->TextOut(50,-(220+i*60),item[i]);
			pDC->TextOut(50+380,-(220+i*60),title[i]);						
		}

		int po=430;
		if(dlg.m_check6){
			pDC->TextOut(po,-(220+4*60),"1");						
			po+=60;
		}
		if(dlg.m_check7){		
			pDC->TextOut(po,-(220+4*60),"2");
			po+=60;
		}
		if(dlg.m_check8){		
			pDC->TextOut(po,-(220+4*60),"3");
			po+=60;
		}
		if(dlg.m_check9){		
			pDC->TextOut(po,-(220+4*60),"4");
			po+=60;
		}
		if(dlg.m_check10){		
			pDC->TextOut(po,-(220+4*60),"5");
			//po+=30;
		}
        pDC->SelectObject(poldFont); 	
		/*pDC->MoveTo(50,-700);
		pDC->LineTo(1800,-700);
		int j;
		int w[7]={0,160,310,120,170,220,220};
		int x1=50;
		for(j=0;j<=6;j++)
		{
			pDC->TextOut(x1+18+w[j],-700-20,item1[j]);
			x1+=18+w[j];
		}*/

		//pDC->SelectObject(&pen);
		int x=50;
		int y=700;
		int c=8;
		int h=80;
		int w[7]={0,160-30,400,200-30,300-40,300,500-200};
		int x1=x;
		int j=0;
		pDC->MoveTo(x,-y);
        pDC->LineTo(length,-y);
		for(i=0;i<=6;i++)
		{
			pDC->TextOut(x1+18+w[i],-(y+23),item1[i]);
			x1+=18+w[i];
		}
		x1=x;		
		CMySet.MoveFirst();        
		while(!CMySet.IsEOF()){
			AddValue();			
			j++;
			pDC->MoveTo(x,-(y+h*j));
            pDC->LineTo(length,-(y+h*j));
			for(i=0;i<=6;i++)
			{
				pDC->TextOut(x1+18+w[i],-(y+80*j+23),value[i]);
			    x1+=18+w[i];
			}
			x1=x;
			CMySet.MoveNext();
		}
		j++;
		pDC->MoveTo(x,-(y+h*j));
        pDC->LineTo(length,-(y+h*j));		
		pDC->MoveTo(x,-y);
        pDC->LineTo(x,-(y+h*j));
		x1=x;
		for(i=1;i<=6;i++)
		{
			pDC->MoveTo(x1+18+w[i],-y);//(x1+8+w[i],y+35*j+10,value[i]);
            pDC->LineTo(x1+18+w[i],-(y+h*j));
			x1+=18+w[i];
		}
        pDC->MoveTo(length,-y);//(x1+8+w[i],y+35*j+10,value[i]);
        pDC->LineTo(length,-(y+h*j));
		pDC->MoveTo(50-10,-700+10);
		pDC->LineTo(length+10,-700+10);
        pDC->MoveTo(50-10,-700+10);
		pDC->LineTo(50-10,-(y+h*j+10)); 
		pDC->MoveTo(length+10,-700+10);
		pDC->LineTo(length+10,-(y+h*j+10));       
		pDC->LineTo(50-10,-(y+h*j+10)); 
	font1.DeleteObject();
	font2.DeleteObject();      	
	}
	CMySet.m_strFilter.Empty();
	title[4]="\0";
}

/////////////////////////////////////////////////////////////////////////////
// CResultView diagnostics
#ifdef _DEBUG
void CResultView::AssertValid() const
{
	CScrollView::AssertValid();
}

void CResultView::Dump(CDumpContext& dc) const
{
	CScrollView::Dump(dc);
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CResultView message handler
char h[50],h1[50];
char g[50],g1[50];

void CResultView::OnStatisFault() 
{
	// TODO: Add your command handler code here
	CString m_zhx;
    CString m_zhx1;
	CString m_zhx2;
	CString m_zhx3;
	CString m_zhx4;
	double num=1997.062811;
	n=0;
	//int num=4;
	char Wyy[333];
	char Wyy0[333];
	char Wyy1[333];
	char Wyy2[333];
	char Wyy3[333];
	char Wyy4[333];
	char Wyy5[333];	
	CMySet.m_strFilter.Empty();
	//AfxMessageBox(CMySet.m_strFilter,MB_OK);
	if(dlg.DoModal()==IDOK){
		if(CMySet.IsOpen())
			CMySet.Close();
/////////////////////////////////////////////////////////////////////////
		double date1=0,date2=0;
		if(dlg.m_check1){
			//double date1=0,date2=0;
			dlg.convert();     
				date1+=dlg.m_year1;
				date1+=(dlg.m_month1*0.01);
				date1+=(dlg.m_day1*0.0001);
				date1+=(dlg.m_hour1*0.000001);			            
				date2+=dlg.m_year21;
				date2+=(dlg.m_month21*0.01);
				date2+=(dlg.m_day21*0.0001);
				date2+=(dlg.m_hour21*0.000001);
				sprintf(Wyy,"(reserve1>=%f)",date1);
				sprintf(Wyy0,"(reserve1<=%f)",date2);
				CString ss=_T(Wyy);
				CString ss1=_T(Wyy0);
			    if(CMySet.m_strFilter=="\0"){
					CMySet.m_strFilter=ss+"and"+ss1;
					sprintf(h,"%d年%d月%d日%d时",dlg.m_year1,dlg.m_month1,dlg.m_day1,dlg.m_hour1);
					title[0]=h;
					sprintf(h1,"%d年%d月%d日%d时",dlg.m_year21,dlg.m_month21,dlg.m_day21,dlg.m_hour21);
					title[1]=h1;
				}
				else{
					CMySet.m_strFilter+=ss+"and"+ss1;
				    sprintf(g,"%d年%d月%d日%d时",dlg.m_year1,dlg.m_month1,dlg.m_day1,dlg.m_hour1);
					title[0]=g; 
					sprintf(g1,"%d年%d月%d日%d时",dlg.m_year21,dlg.m_month21,dlg.m_day21,dlg.m_hour21);
					title[1]=g1; 
				}
			//	AfxMessageBox(CMySet.m_strFilter,MB_OK);
		}
	
		
///////////////////////////////////////////////////////////////////////		
		if(dlg.m_check2){
			m_zhx1="(cityname='"+dlg.m_Cityname2+"')";
			if(CMySet.m_strFilter=="\0"){
				CMySet.m_strFilter=m_zhx1;
				title[2]=(char *)LPCTSTR(dlg.m_Cityname2);
			}
			else{
				CMySet.m_strFilter+="and"+m_zhx1;
				title[2]=(char *)LPCTSTR(dlg.m_Cityname2);
			}
		}
	

//////////////////////////////////////////////////////////////////////
		if(dlg.m_check4){
			m_zhx3="(linename='"+dlg.m_Linename2+"')";
			if(CMySet.m_strFilter=="\0"){
				CMySet.m_strFilter=m_zhx3;
                title[3]=(char *)LPCTSTR(dlg.m_Linename2);
			}
			else{
				CMySet.m_strFilter+="and"+m_zhx3;
				title[3]=(char *)LPCTSTR(dlg.m_Linename2);
			}
		}
		

/////////////////////////////////////////////////////////////////////////
		if(dlg.m_check5){
			m_zhx4="(recordid='"+dlg.m_Recordid2+"')";
			if(CMySet.m_strFilter=="\0"){
				CMySet.m_strFilter=m_zhx4;
				title[5]=(char *)LPCTSTR(dlg.m_Recordid2);
			}
			else{
				CMySet.m_strFilter+="and"+m_zhx4;
				title[5]=(char *)LPCTSTR(dlg.m_Recordid2);
			}
		}
		
		
//////////////////////////////////////////////////////////////////////////		
//////////////////////////////////////////////////////////////////////////		
		CString ccc;
		flag=FALSE;
		if(dlg.m_check3){
			if(!(CMySet.m_strFilter=="\0")){
				ccc="("+CMySet.m_strFilter;
			if(dlg.m_check6){
				sprintf(Wyy1, "(faulttype=%d)",dlg.type[1]);
				CString kk1=_T(Wyy1);
				if(CMySet.m_strFilter=="\0"){
					CMySet.m_strFilter =kk1;
                    title[4]="1";
					flag=TRUE;
				}
				else{					
					if(flag){
						CMySet.m_strFilter +="or"+ccc+"and"+kk1+")";
						title[4]="1";
						flag=TRUE;
					}
					else{
						CMySet.m_strFilter =ccc+"and"+kk1+")";
						title[4]="1";
                        flag=TRUE;
					}
				}
			}
			if(dlg.m_check7){
				sprintf(Wyy2, "(faulttype=%d)",dlg.type[2]);
				CString kk2=_T(Wyy2);
				if(CMySet.m_strFilter=="\0"){
					CMySet.m_strFilter =kk2;
                    title[4]="2";
					flag=TRUE;
				}
				else{

⌨️ 快捷键说明

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