www.pudn.com > PressMonitor_q.zip > PressHistoryView.cpp
// PressHistoryView.cpp : implementation file
//
#include "stdafx.h"
#include "Monitor.h"
#include "PressHistoryView.h"
#include "MonitorDoc.h"
#include "Hint.h"
#include "MonitorDataset.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
static COLORREF tmpColor[]=
{
RGB(0,0,0), RGB(128,0,255),RGB(100,0,100), RGB(190,0,90),
RGB(170,255,0),RGB(10,220,10),RGB(0,0,255)
};
/////////////////////////////////////////////////////////////////////////////
// CPressHistoryView
IMPLEMENT_DYNCREATE(CPressHistoryView, CFormView)
CPressHistoryView::CPressHistoryView()
: CFormView(CPressHistoryView::IDD)
{
//{{AFX_DATA_INIT(CPressHistoryView)
//}}AFX_DATA_INIT
}
CPressHistoryView::~CPressHistoryView()
{
}
void CPressHistoryView::DoDataExchange(CDataExchange* pDX)
{
CFormView::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CPressHistoryView)
DDX_Control(pDX, IDC_RECORD_TIME, m_recordTime);
DDX_Control(pDX, IDC_RECORD_OPEN, m_btnRecordOpen);
DDX_Control(pDX, IDC_PAGE_START, m_btnPageStart);
DDX_Control(pDX, IDC_PAGE_PREV, m_btnPagePrev);
DDX_Control(pDX, IDC_PAGE_NEXT, m_btnPageNext);
DDX_Control(pDX, IDC_PAGE_END, m_btnPageEnd);
// DDX_Control(pDX, IDC_CHECK7, m_btn7);
DDX_Control(pDX, IDC_CHECK5, m_btn5);
DDX_Control(pDX, IDC_CHECK6, m_btn6);
DDX_Control(pDX, IDC_CHECK4, m_btn4);
DDX_Control(pDX, IDC_CHECK3, m_btn3);
DDX_Control(pDX, IDC_CHECK2, m_btn2);
DDX_Control(pDX, IDC_CHECK1, m_btn1);
DDX_Control(pDX, IDC_CHECK0, m_btn0);
DDX_Control(pDX, IDC_TREND, m_3DTrend);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CPressHistoryView, CFormView)
//{{AFX_MSG_MAP(CPressHistoryView)
ON_BN_CLICKED(IDC_CHECK0, OnCheck0)
ON_BN_CLICKED(IDC_CHECK1, OnCheck1)
ON_BN_CLICKED(IDC_CHECK2, OnCheck2)
ON_BN_CLICKED(IDC_CHECK3, OnCheck3)
ON_BN_CLICKED(IDC_CHECK4, OnCheck4)
ON_BN_CLICKED(IDC_CHECK5, OnCheck5)
ON_BN_CLICKED(IDC_CHECK6, OnCheck6)
ON_BN_CLICKED(IDC_PAGE_START, OnPageStart)
ON_BN_CLICKED(IDC_PAGE_PREV, OnPagePrev)
ON_BN_CLICKED(IDC_PAGE_NEXT, OnPageNext)
ON_BN_CLICKED(IDC_PAGE_END, OnPageEnd)
ON_BN_CLICKED(IDC_RECORD_OPEN, OnRecordOpen)
//}}AFX_MSG_MAP
ON_UPDATE_COMMAND_UI(IDC_PAGE_START, OnUpdatePageStart)
ON_UPDATE_COMMAND_UI(IDC_PAGE_PREV, OnUpdatePagePrev)
ON_UPDATE_COMMAND_UI(IDC_PAGE_NEXT, OnUpdatePageNext)
ON_UPDATE_COMMAND_UI(IDC_PAGE_END, OnUpdatePageEnd)
ON_COMMAND(ID_FILE_PRINT, CFormView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_DIRECT, CFormView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_PREVIEW, CFormView::OnFilePrintPreview)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CPressHistoryView diagnostics
#ifdef _DEBUG
void CPressHistoryView::AssertValid() const
{
CFormView::AssertValid();
}
void CPressHistoryView::Dump(CDumpContext& dc) const
{
CFormView::Dump(dc);
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CPressHistoryView message handlers
void CPressHistoryView::OnInitialUpdate()
{
CFormView::OnInitialUpdate();
CMonitorDoc *pDoc = (CMonitorDoc*) GetDocument();
pDoc->m_bUpdateView=false;
//Added by Me!
// Iterate all child windows and instruct to update themselves
CWnd* pWndChild=GetWindow(GW_CHILD);
int iIndex=0;
while (NULL!=pWndChild)
{
CCmdUI state;
state.m_nID=::GetWindowLong(*pWndChild, GWL_ID);
state.m_nIndex=iIndex++;
state.m_pOther=pWndChild;
// ***CCmdUI::DoUpdate is undocumented MFC***
state.DoUpdate(this, FALSE);
pWndChild=pWndChild->GetWindow(GW_HWNDNEXT);
}
////////////////////////////////////////////////////////////
m_btn0.SetShade(SHS_DIAGSHADE,8,10,5,RGB(255,55,55));
m_btn1.SetShade(SHS_DIAGSHADE,8,10,5,RGB(255,55,55));
m_btn2.SetShade(SHS_DIAGSHADE,8,10,5,RGB(255,55,55));
m_btn3.SetShade(SHS_DIAGSHADE,8,10,5,RGB(255,55,55));
m_btn4.SetShade(SHS_DIAGSHADE,8,10,5,RGB(255,55,55));
m_btn5.SetShade(SHS_DIAGSHADE,8,10,5,RGB(255,55,55));
m_btn6.SetShade(SHS_DIAGSHADE,8,10,5,RGB(255,55,55));
// m_btn7.SetShade(SHS_DIAGSHADE,8,10,5,RGB(255,55,55));
m_btn0.SetTextColor(tmpColor[0]);
m_btn1.SetTextColor(tmpColor[1]);
m_btn2.SetTextColor(tmpColor[2]);
m_btn3.SetTextColor(tmpColor[3]);
m_btn4.SetTextColor(tmpColor[4]);
m_btn5.SetTextColor(tmpColor[5]);
m_btn6.SetTextColor(tmpColor[6]);
// m_btn7.SetTextColor(tmpColor[7]);
m_btnPageStart.SetShade(SHS_NOISE,66);
m_btnPagePrev.SetShade(SHS_NOISE,66);
m_btnPageNext.SetShade(SHS_NOISE,66);
m_btnPageEnd.SetShade(SHS_NOISE,66);
m_btnRecordOpen.SetShade(SHS_NOISE,66);
m_btnPageStart.SetIcon(IDI_ICON_START,BS_CENTER,IDI_ICON_START);
m_btnPagePrev.SetIcon(IDI_ICON_PREV,BS_CENTER,IDI_ICON_PREV);
m_btnPageNext.SetIcon(IDI_ICON_NEXT,BS_CENTER,IDI_ICON_NEXT);
m_btnPageEnd.SetIcon(IDI_ICON_END,BS_CENTER,IDI_ICON_END);
m_btnRecordOpen.SetIcon(IDI_ICON_OPEN,BS_CENTER,IDI_ICON_OPEN);
m_recordTime.SetBkColor(RGB(0,0,0));
m_recordTime.SetText("当前没有打开历史记录");
m_recordTime.SetTextColor(RGB(255,255,255));
m_recordTime.HCenterText();
m_recordTime.VCenterText();
Scale scale[3];
scale[0].MaxiValue=10;
scale[0].MiniValue=0;
scale[0].nStyle=SCALE_LEFT;
scale[0].strUnit=CURVE_UNIT_V;
scale[0].clr=RGB(255,0,0);
scale[1].MaxiValue=1000;
scale[1].MiniValue=0;
scale[1].nStyle=SCALE_CENTER;
scale[1].strUnit=CURVE_UNIT_MM;
scale[1].clr=RGB(128,0,64);
scale[2].MaxiValue=32;
scale[2].MiniValue=0;
scale[2].nStyle=SCALE_RIGHT;
scale[2].strUnit=CURVE_UNIT_MPA;
scale[2].clr=RGB(128,0,255);
CTime time;
time=time.GetCurrentTime();
//显示控件
if(!m_3DTrend.Initialize(scale))
return ;
m_3DTrend.AddCurve("主系统压力",tmpColor[0],CURVE_UNIT_MPA,2);
m_3DTrend.AddCurve("回程缸压力",tmpColor[1],CURVE_UNIT_MPA,2);
m_3DTrend.AddCurve("主缸压力",tmpColor[2],CURVE_UNIT_MPA,2);
m_3DTrend.AddCurve("压机位移",tmpColor[3],CURVE_UNIT_MM,2);
m_3DTrend.AddCurve("V2",tmpColor[4],CURVE_UNIT_V,1,true);
m_3DTrend.AddCurve("V3",tmpColor[5],CURVE_UNIT_V,1,true);
m_3DTrend.AddCurve("XV1",tmpColor[6],CURVE_UNIT_V,1,true);
// m_3DTrend.AddCurve("A_YA6",tmpColor[7],CURVE_UNIT_V,1,true);
for(int i=0;im_bRecordOpen)
return;
m_recordTime.SetText(pDoc->m_strRecordTime);
for(f=0;f<=m_3DTrend.m_nCurveDataCount;f++)
{
pDataset=&pDoc->m_DatasetSave[SYS_PRE_DATASET];
m_3DTrend.m_curveArray.GetAt(0)->SetData(f,pDataset->GetData(f+nSkipNum),pDataset->GetTime(f+nSkipNum));
pDataset=&pDoc->m_DatasetSave[RETURNCYLINDER_PRE_DATASET];
m_3DTrend.m_curveArray.GetAt(1)->SetData(f,pDataset->GetData(f+nSkipNum),pDataset->GetTime(f+nSkipNum));
pDataset=&pDoc->m_DatasetSave[MAINCYLINDER_PRE_DATASET];
m_3DTrend.m_curveArray.GetAt(2)->SetData(f,pDataset->GetData(f+nSkipNum),pDataset->GetTime(f+nSkipNum));
pDataset=&pDoc->m_DatasetSave[FORGING_POS_DATASET];
m_3DTrend.m_curveArray.GetAt(3)->SetData(f,pDataset->GetData(f+nSkipNum),pDataset->GetTime(f+nSkipNum));
// pDataset=&pDoc->m_DatasetSave[AOUT_A_YA1_DATASET];
// m_3DTrend.m_curveArray.GetAt(4)->SetData(f,pDataset->GetData(f+nSkipNum),pDataset->GetTime(f+nSkipNum));
pDataset=&pDoc->m_DatasetSave[AOUT_A_YA2_DATASET];
m_3DTrend.m_curveArray.GetAt(5)->SetData(f,pDataset->GetData(f+nSkipNum),pDataset->GetTime(f+nSkipNum));
pDataset=&pDoc->m_DatasetSave[AOUT_A_YA3_DATASET];
m_3DTrend.m_curveArray.GetAt(6)->SetData(f,pDataset->GetData(f+nSkipNum),pDataset->GetTime(f+nSkipNum));
// pDataset=&pDoc->m_DatasetSave[AOUT_A_YA6_DATASET];
// m_3DTrend.m_curveArray.GetAt(7)->SetData(f,pDataset->GetData(f+nSkipNum),pDataset->GetTime(f+nSkipNum));
}
m_3DTrend.RefreshWindow();
}
void CPressHistoryView::OnPagePrev()
{
int f;
m_nPageNum--;
if(m_nPageNum<0)
{
m_nPageNum=0;
return;
}
int nSkipNum=m_nPageNum*m_3DTrend.m_nCurveDataCount;
CMonitorDoc* pDoc=(CMonitorDoc*)GetDocument();
CMonitorDataset* pDataset;
for(f=0;f<=m_3DTrend.m_nCurveDataCount;f++)
{
pDataset=&pDoc->m_DatasetSave[SYS_PRE_DATASET];
m_3DTrend.m_curveArray.GetAt(0)->SetData(f,pDataset->GetData(f+nSkipNum),pDataset->GetTime(f+nSkipNum));
pDataset=&pDoc->m_DatasetSave[RETURNCYLINDER_PRE_DATASET];
m_3DTrend.m_curveArray.GetAt(1)->SetData(f,pDataset->GetData(f+nSkipNum),pDataset->GetTime(f+nSkipNum));
pDataset=&pDoc->m_DatasetSave[MAINCYLINDER_PRE_DATASET];
m_3DTrend.m_curveArray.GetAt(2)->SetData(f,pDataset->GetData(f+nSkipNum),pDataset->GetTime(f+nSkipNum));
pDataset=&pDoc->m_DatasetSave[FORGING_POS_DATASET];
m_3DTrend.m_curveArray.GetAt(3)->SetData(f,pDataset->GetData(f+nSkipNum),pDataset->GetTime(f+nSkipNum));
// pDataset=&pDoc->m_DatasetSave[AOUT_A_YA1_DATASET];
// m_3DTrend.m_curveArray.GetAt(4)->SetData(f,pDataset->GetData(f+nSkipNum),pDataset->GetTime(f+nSkipNum));
pDataset=&pDoc->m_DatasetSave[AOUT_A_YA2_DATASET];
m_3DTrend.m_curveArray.GetAt(5)->SetData(f,pDataset->GetData(f+nSkipNum),pDataset->GetTime(f+nSkipNum));
pDataset=&pDoc->m_DatasetSave[AOUT_A_YA3_DATASET];
m_3DTrend.m_curveArray.GetAt(6)->SetData(f,pDataset->GetData(f+nSkipNum),pDataset->GetTime(f+nSkipNum));
}
m_3DTrend.RefreshWindow();
}
void CPressHistoryView::OnPageNext()
{
int f;
m_nPageNum++;
if(m_nPageNum>=m_nPageTotalNum)
{
m_nPageNum=m_nPageTotalNum-1;
return;
}
int nSkipNum=m_nPageNum*m_3DTrend.m_nCurveDataCount;
CMonitorDoc* pDoc=(CMonitorDoc*)GetDocument();
CMonitorDataset* pDataset;
for(f=0;f<=m_3DTrend.m_nCurveDataCount;f++)
{
pDataset=&pDoc->m_DatasetSave[SYS_PRE_DATASET];
m_3DTrend.m_curveArray.GetAt(0)->SetData(f,pDataset->GetData(f+nSkipNum),pDataset->GetTime(f+nSkipNum));
pDataset=&pDoc->m_DatasetSave[RETURNCYLINDER_PRE_DATASET];
m_3DTrend.m_curveArray.GetAt(1)->SetData(f,pDataset->GetData(f+nSkipNum),pDataset->GetTime(f+nSkipNum));
pDataset=&pDoc->m_DatasetSave[MAINCYLINDER_PRE_DATASET];
m_3DTrend.m_curveArray.GetAt(2)->SetData(f,pDataset->GetData(f+nSkipNum),pDataset->GetTime(f+nSkipNum));
pDataset=&pDoc->m_DatasetSave[FORGING_POS_DATASET];
m_3DTrend.m_curveArray.GetAt(3)->SetData(f,pDataset->GetData(f+nSkipNum),pDataset->GetTime(f+nSkipNum));
// pDataset=&pDoc->m_DatasetSave[AOUT_A_YA1_DATASET];
// m_3DTrend.m_curveArray.GetAt(4)->SetData(f,pDataset->GetData(f+nSkipNum),pDataset->GetTime(f+nSkipNum));
pDataset=&pDoc->m_DatasetSave[AOUT_A_YA2_DATASET];
m_3DTrend.m_curveArray.GetAt(5)->SetData(f,pDataset->GetData(f+nSkipNum),pDataset->GetTime(f+nSkipNum));
pDataset=&pDoc->m_DatasetSave[AOUT_A_YA3_DATASET];
m_3DTrend.m_curveArray.GetAt(6)->SetData(f,pDataset->GetData(f+nSkipNum),pDataset->GetTime(f+nSkipNum));
}
m_3DTrend.RefreshWindow();
}
void CPressHistoryView::OnPageEnd()
{
int f;
m_nPageNum=m_nPageTotalNum-1;
int nSkipNum=m_nPageNum*m_3DTrend.m_nCurveDataCount;
CMonitorDoc* pDoc=(CMonitorDoc*)GetDocument();
CMonitorDataset* pDataset;
for(f=0;f<=m_3DTrend.m_nCurveDataCount;f++)
{
pDataset=&pDoc->m_DatasetSave[SYS_PRE_DATASET];
m_3DTrend.m_curveArray.GetAt(0)->SetData(f,pDataset->GetData(f+nSkipNum),pDataset->GetTime(f+nSkipNum));
pDataset=&pDoc->m_DatasetSave[RETURNCYLINDER_PRE_DATASET];
m_3DTrend.m_curveArray.GetAt(1)->SetData(f,pDataset->GetData(f+nSkipNum),pDataset->GetTime(f+nSkipNum));
pDataset=&pDoc->m_DatasetSave[MAINCYLINDER_PRE_DATASET];
m_3DTrend.m_curveArray.GetAt(2)->SetData(f,pDataset->GetData(f+nSkipNum),pDataset->GetTime(f+nSkipNum));
pDataset=&pDoc->m_DatasetSave[FORGING_POS_DATASET];
m_3DTrend.m_curveArray.GetAt(3)->SetData(f,pDataset->GetData(f+nSkipNum),pDataset->GetTime(f+nSkipNum));
// pDataset=&pDoc->m_DatasetSave[AOUT_A_YA1_DATASET];
// m_3DTrend.m_curveArray.GetAt(4)->SetData(f,pDataset->GetData(f+nSkipNum),pDataset->GetTime(f+nSkipNum));
pDataset=&pDoc->m_DatasetSave[AOUT_A_YA2_DATASET];
m_3DTrend.m_curveArray.GetAt(5)->SetData(f,pDataset->GetData(f+nSkipNum),pDataset->GetTime(f+nSkipNum));
pDataset=&pDoc->m_DatasetSave[AOUT_A_YA3_DATASET];
m_3DTrend.m_curveArray.GetAt(6)->SetData(f,pDataset->GetData(f+nSkipNum),pDataset->GetTime(f+nSkipNum));
}
m_3DTrend.RefreshWindow();
}
void CPressHistoryView::OnRecordOpen()
{
CMonitorDoc* pDoc=(CMonitorDoc*)GetDocument();
CDocTemplate* pTemplate = pDoc->GetDocTemplate();
ASSERT(pTemplate != NULL);
CString newName;
if(!AfxGetApp()->DoPromptFileName(newName,AFX_IDS_OPENFILE,OFN_HIDEREADONLY|
OFN_FILEMUSTEXIST,TRUE,pTemplate))
return;
if(!pDoc->OnOpenDocument(newName))
return ;
CString strTime;
CTime timeBegin,timeEnd;
timeBegin=pDoc->m_DatasetSave[SYS_PRE_DATASET].GetTime(0);
timeEnd=pDoc->m_DatasetSave[SYS_PRE_DATASET].GetTime(pDoc->m_DatasetSave[SYS_PRE_DATASET].GetDataArraySize()-1);
strTime.Format("%d年%d月%d日%d时:(%d分%d秒~%d分%d秒)",
timeBegin.GetYear(),timeBegin.GetMonth(),
timeBegin.GetDay(),timeBegin.GetHour(),
timeBegin.GetMinute(),timeBegin.GetSecond(),
timeEnd.GetMinute(),timeEnd.GetSecond());
pDoc->m_strRecordTime=strTime;
pDoc->m_bRecordOpen=TRUE;
UpdateData(FALSE);
OnPageStart();
InitialTrendPrint();
return ;
}
void CPressHistoryView::OnUpdatePageStart(CCmdUI* pCmdUI)
{
pCmdUI->Enable(m_nPageNum!=0);
}
void CPressHistoryView::OnUpdatePagePrev(CCmdUI* pCmdUI)
{
pCmdUI->Enable(m_nPageNum>0);
}
void CPressHistoryView::OnUpdatePageNext(CCmdUI* pCmdUI)
{
pCmdUI->Enable(m_nPageNumEnable(m_nPageNum!=m_nPageTotalNum-1);
}
BOOL CPressHistoryView::PreTranslateMessage(MSG* pMsg)
{
//Added by Me!
// Iterate all child windows and instruct to update themselves
CWnd* pWndChild=GetWindow(GW_CHILD);
int iIndex=0;
while (NULL!=pWndChild)
{
CCmdUI state;
state.m_nID=::GetWindowLong(*pWndChild, GWL_ID);
state.m_nIndex=iIndex++;
state.m_pOther=pWndChild;
// ***CCmdUI::DoUpdate is undocumented MFC***
state.DoUpdate(this, FALSE);
pWndChild=pWndChild->GetWindow(GW_HWNDNEXT);
}
////////////////////////////////////////////////////////////
return CFormView::PreTranslateMessage(pMsg);
}
//打印及打印预览
BOOL CPressHistoryView::OnPreparePrinting(CPrintInfo* pInfo)
{
// TODO: call DoPreparePrinting to invoke the Print dialog box
pInfo->SetMaxPage(5);
return DoPreparePrinting(pInfo);
}
void CPressHistoryView::OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo)
{
// TODO: Add your specialized code here and/or call the base class
}
void CPressHistoryView::OnEndPrinting(CDC* pDC, CPrintInfo* pInfo)
{
// TODO: Add your specialized code here and/or call the base class
}
void CPressHistoryView::OnPrintPage(int pageNum)
{
int f;
int nSkipNum=(pageNum-1)*m_3DTrendPrint.m_nCurveDataCount;
CMonitorDoc* pDoc=(CMonitorDoc*)GetDocument();
CMonitorDataset* pDataset;
for(f=0;f<=m_3DTrend.m_nCurveDataCount;f++)
{
pDataset=&pDoc->m_DatasetSave[SYS_PRE_DATASET];
m_3DTrendPrint .m_curveArray.GetAt(0)->SetData(f,pDataset->GetData(f+nSkipNum),pDataset->GetTime(f+nSkipNum));
pDataset=&pDoc->m_DatasetSave[RETURNCYLINDER_PRE_DATASET];
m_3DTrendPrint.m_curveArray.GetAt(1)->SetData(f,pDataset->GetData(f+nSkipNum),pDataset->GetTime(f+nSkipNum));
pDataset=&pDoc->m_DatasetSave[MAINCYLINDER_PRE_DATASET];
m_3DTrendPrint.m_curveArray.GetAt(2)->SetData(f,pDataset->GetData(f+nSkipNum),pDataset->GetTime(f+nSkipNum));
pDataset=&pDoc->m_DatasetSave[FORGING_POS_DATASET];
m_3DTrendPrint.m_curveArray.GetAt(3)->SetData(f,pDataset->GetData(f+nSkipNum),pDataset->GetTime(f+nSkipNum));
// pDataset=&pDoc->m_DatasetSave[AOUT_A_YA1_DATASET];
// m_3DTrend.m_curveArray.GetAt(4)->SetData(f,pDataset->GetData(f+nSkipNum),pDataset->GetTime(f+nSkipNum));
pDataset=&pDoc->m_DatasetSave[AOUT_A_YA2_DATASET];
m_3DTrendPrint.m_curveArray.GetAt(5)->SetData(f,pDataset->GetData(f+nSkipNum),pDataset->GetTime(f+nSkipNum));
pDataset=&pDoc->m_DatasetSave[AOUT_A_YA3_DATASET];
m_3DTrendPrint.m_curveArray.GetAt(6)->SetData(f,pDataset->GetData(f+nSkipNum),pDataset->GetTime(f+nSkipNum));
}
}
void CPressHistoryView::OnPrint(CDC* pDC, CPrintInfo* pInfo)
{
// TODO: Add your specialized code here and/or call the base class
CMonitorDoc* pDoc=(CMonitorDoc*)GetDocument();
m_rectPrint=pInfo->m_rectDraw;
OnPrintPage(pInfo->m_nCurPage);
m_nHeadFontHigh=m_rectPrint.Height()/25;
if (m_nHeadFontHigh>100) {
m_nHeadFontHigh=100;
}
else if (m_nHeadFontHigh<40) {
m_nHeadFontHigh=40;
}
m_nFootFontHigh=m_rectPrint.Height()/30;//
if (m_nFootFontHigh>70) {
m_nFootFontHigh=70;
}
else if (m_nHeadFontHigh<35) {
m_nFootFontHigh=35;
}
m_rectTitle.left=m_rectPrint.left;
m_rectTitle.right=m_rectPrint.right;
m_rectTitle.top=m_rectPrint.top;
m_rectTitle.bottom=m_rectPrint.top+m_nHeadFontHigh+20;// m_rectPrint.Height()/25;
//if(m_rectPrint.Width()>m_rectPrint.Height()){
// m_rectChart.left=m_rectPrint.left+m_rectPrint.Width()/20;
// m_rectChart.right=m_rectPrint.right-m_rectPrint.Width()/20;
// m_rectChart.top=m_rectTitle.bottom+m_rectPrint.Height()/20;
// m_rectChart.bottom=m_rectFooter.top-m_rectPrint.Height()/20;
// }
//else
{
m_rectChart.left=m_rectPrint.left;
m_rectChart.right=m_rectPrint.right;
m_rectChart.top=m_rectTitle.bottom+20;//m_rectPrint.Height()/15;
int charBottom=m_rectChart.top+(int)((m_rectChart.right-m_rectChart.left)*0.70);
if (charBottom>=m_rectPrint.bottom-m_nFootFontHigh-16-10 ) {
m_rectChart.bottom=m_rectPrint.bottom-m_nFootFontHigh-16-10 -2;
}
else
m_rectChart.bottom=charBottom;//m_rectFooter.top-m_rectPrint.Height()/4;
}
m_rectFooter.left=m_rectPrint.left;
m_rectFooter.right=m_rectPrint.right;
m_rectFooter.top=m_rectChart.bottom+10;
int footerBottom=m_rectChart.bottom+10+m_nFootFontHigh+16;
if (footerBottom>m_rectPrint.bottom) {
footerBottom=m_rectPrint.bottom;
}
m_rectFooter.bottom=footerBottom;
pDC->Rectangle(m_rectPrint);
pDC->Rectangle(m_rectTitle);
pDC->Rectangle(m_rectFooter);
PrintPageHeader(pDC);
m_3DTrendPrint.OnPrint(pDC,m_rectChart);
//m_3DTrend.OnPrint(pDC,m_rectChart);
PrintPageFooter(pDC,pInfo->m_nCurPage);
}
void CPressHistoryView::PrintPageHeader(CDC *pDC)
{
CFont fontTitle;
fontTitle.CreateFont(m_nHeadFontHigh,0,0,0,400,FALSE,FALSE,
0,ANSI_CHARSET,OUT_DEFAULT_PRECIS,
CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,
DEFAULT_PITCH|FF_MODERN,"Arial");//"楷体_GB2312"
CFont* pOldFont=(CFont*)pDC->SelectObject(&fontTitle);
pDC->SetTextColor(GetSysColor(COLOR_WINDOWTEXT));
pDC->DrawText("压机历史曲线图",m_rectTitle,DT_CENTER|DT_VCENTER|DT_SINGLELINE) ;
pDC->SelectObject(pOldFont);
}
void CPressHistoryView::PrintPageFooter(CDC *pDC,int currentPage)
{
CFont fontFooter;
CRect rectTemp;
CString strTime;
CMonitorDoc* pDoc=(CMonitorDoc*)GetDocument();
fontFooter.CreateFont(m_nFootFontHigh,0,0,0,400,FALSE,FALSE,
0,ANSI_CHARSET,OUT_DEFAULT_PRECIS,
CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,
DEFAULT_PITCH|FF_MODERN,"宋体");
CFont* pOldFont=(CFont*)pDC->SelectObject(&fontFooter);
pDC->SetTextColor(GetSysColor(COLOR_WINDOWTEXT));
CTime timeBegin,timeEnd;
timeBegin=pDoc->m_DatasetSave[SYS_PRE_DATASET].GetTime(0);
timeEnd=pDoc->m_DatasetSave[SYS_PRE_DATASET].GetTime(pDoc->m_DatasetSave[SYS_PRE_DATASET].GetDataArraySize()-1);
strTime.Format("%d年%d月%d日%d时:(%d分%d秒~%d分%d秒) 第%d页",
timeBegin.GetYear(),timeBegin.GetMonth(),
timeBegin.GetDay(),timeBegin.GetHour(),
timeBegin.GetMinute(),timeBegin.GetSecond(),
timeEnd.GetMinute(),timeEnd.GetSecond(),
currentPage
);
rectTemp=m_rectFooter;
rectTemp.right=m_rectFooter.right-100;
pDC->DrawText(strTime,rectTemp,DT_RIGHT|DT_VCENTER|DT_SINGLELINE) ;
pDC->SelectObject(pOldFont);
}
void CPressHistoryView::InitialTrendPrint()
{
int f;
CMonitorDoc* pDoc=(CMonitorDoc*)GetDocument();
CMonitorDataset* pDataset;
if(!pDoc->m_bRecordOpen)
return;
for(f=0;f<=m_3DTrendPrint.m_nCurveDataCount;f++)
{
pDataset=&pDoc->m_DatasetSave[SYS_PRE_DATASET];
m_3DTrendPrint.m_curveArray.GetAt(0)->SetData(f,pDataset->GetData(f),pDataset->GetTime(f));
pDataset=&pDoc->m_DatasetSave[RETURNCYLINDER_PRE_DATASET];
m_3DTrendPrint.m_curveArray.GetAt(1)->SetData(f,pDataset->GetData(f),pDataset->GetTime(f));
pDataset=&pDoc->m_DatasetSave[MAINCYLINDER_PRE_DATASET];
m_3DTrendPrint.m_curveArray.GetAt(2)->SetData(f,pDataset->GetData(f),pDataset->GetTime(f));
pDataset=&pDoc->m_DatasetSave[FORGING_POS_DATASET];
m_3DTrendPrint.m_curveArray.GetAt(3)->SetData(f,pDataset->GetData(f),pDataset->GetTime(f));
// pDataset=&pDoc->m_DatasetSave[AOUT_A_YA1_DATASET];
// m_3DTrendPrint.m_curveArray.GetAt(4)->SetData(f,pDataset->GetData(f),pDataset->GetTime(f));
pDataset=&pDoc->m_DatasetSave[AOUT_A_YA2_DATASET];
m_3DTrendPrint.m_curveArray.GetAt(5)->SetData(f,pDataset->GetData(f),pDataset->GetTime(f));
pDataset=&pDoc->m_DatasetSave[AOUT_A_YA3_DATASET];
m_3DTrendPrint.m_curveArray.GetAt(6)->SetData(f,pDataset->GetData(f),pDataset->GetTime(f));
// pDataset=&pDoc->m_DatasetSave[AOUT_A_YA6_DATASET];
// m_3DTrendPrint.m_curveArray.GetAt(7)->SetData(f,pDataset->GetData(f),pDataset->GetTime(f));
}
}