// CClientForm3.cpp : implementation file // #include "stdafx.h" #include "ylgl.h" #include "ClientForm3.h" #include "MyMdi.H" #include "SendMsgDlg.h" #include "SelBrunDevice.h" #include "VcPlot.h" #include "VcAxis.h" #include "VcValueScale.h" #include "VcSeriesCollection.h" #include "VcSeries.h" #include "VcPen.h" #include "VcCategoryScale.h" #include "VcColor.h" #include "VcDataGrid.h" #include "VcBackdrop.h" #include "VcFill.h" #include "VcBrush.h" #include "VcDataPoints.h" #include "VcDataPoint.h" #include "VcDataPointLabel.h" #include "VcAxisTitle.h" #include "ShowMschart.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CClientForm3 IMPLEMENT_DYNCREATE(CClientForm3, MyFormView) CClientForm3::CClientForm3() : MyFormView(CClientForm3::IDD) { //{{AFX_DATA_INIT(CClientForm3) m_filter = _T(""); m_checkcontent = _T(""); m_clerk = _T(""); m_date2 = GetTmFromStr(g_date); m_date1 = m_date2-CTimeSpan(30, 0, 0, 0); m_radio1 = 0; //}}AFX_DATA_INIT } CClientForm3::~CClientForm3() { } void CClientForm3::DoDataExchange(CDataExchange* pDX) { MyFormView::DoDataExchange(pDX); //{{AFX_DATA_MAP(CClientForm3) DDX_Control(pDX, IDC_COMBOresult, m_comboresult); DDX_Control(pDX, IDC_COMBOclerk, m_comboclerk); DDX_Control(pDX, IDC_COMBOcheckcontent, m_combocheckcontent); DDX_Control(pDX, IDC_LIST2, m_List1); DDX_Control(pDX, IDC_STATIC1, m_static1); DDX_CBString(pDX, IDC_COMBOcheckcontent, m_checkcontent); DDX_CBString(pDX, IDC_COMBOclerk, m_clerk); DDX_CBString(pDX, IDC_COMBOresult, m_result); DDX_DateTimeCtrl(pDX, IDC_DATETIMEPICKER1, m_date1); DDX_DateTimeCtrl(pDX, IDC_DATETIMEPICKER2, m_date2); DDX_Control(pDX, IDC_MSCHART3, m_Chart3); DDX_Radio(pDX, IDC_RADIO1, m_radio1); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CClientForm3, MyFormView) //{{AFX_MSG_MAP(CClientForm3) ON_BN_CLICKED(IDC_BUTclose, OnBUTclose) ON_BN_CLICKED(IDC_BUTTON1, OnButton1) ON_BN_CLICKED(IDC_RADIO1, OnRadio1) ON_BN_CLICKED(IDC_RADIO2, OnRadio2) ON_BN_CLICKED(IDC_RADIO9, OnRadio9) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CClientForm3 diagnostics #ifdef _DEBUG void CClientForm3::AssertValid() const { MyFormView::AssertValid(); } void CClientForm3::Dump(CDumpContext& dc) const { MyFormView::Dump(dc); } #endif //_DEBUG ///////////////////////////////////////////////////////////////////////////// // CClientForm3 message handlers void CClientForm3::OnInitialUpdate() { MyFormView::OnInitialUpdate(); // TODO: Add your specialized code here and/or call the base class CMyMdi Mdi; Mdi.SetSubView((CWnd*)GetParent(), (CWnd*)this); // Here we create the outbar control using the splitter as its parent // and setting its id to the first pane. CRect rc2; GetWindowRect(rc2); ::MoveWindow(m_hWnd,g_rc.left,g_rc.top,g_rc.Width(),g_rc.Height(),TRUE); EnumChildWindows(m_hWnd,(WNDENUMPROC)EnumChildProc,0); OnRadio9(); m_List1.m_bSortSupport=0; m_List1.GetWindowRect(rc2); ScreenToClient(rc2); m_listrc2=rc2; int hei=rc2.Height()/2; m_listrc=m_listrc2; m_listrc.bottom=m_listrc.top+hei; m_chartrc=m_listrc; m_chartrc.top=m_listrc.bottom; m_chartrc.bottom=m_listrc2.bottom; m_List1.MoveWindow(m_listrc); m_Chart3.MoveWindow(m_chartrc); m_static1.SetFont (&g_titlefont); m_List1.SetHeadings("订单号,100;男宾姓名,100;女宾姓名,100;电话,100;地址,100;QQ,100;版本,100;业务员,100;检查内容,100;技术员,100;使用QQ,100;日期,100" ); CString filter; filter.Format(";;date>='%s' and date<='%s'", m_date1.Format("%Y-%m-%d"), m_date2.Format("%Y-%m-%d")); m_List1.LoadColumnInfo (108); g_sendhead.bsql=0; g_sendhead.code[0]=200; g_sendhead.code[1]=201; g_sendhead.code[2]=209; g_sendhead.tabcount=3; g_pMainWnd->ProcessChatMessageRequest2(filter); if(g_bSendOK==0) { return; } CArrayList1array; CArrayList2array; DataToArray(&List1array, &List2array, &m_List1array); m_combocheckcontent.AddString("全部"); int ii = 0; for(ii=0; iiSendMessage(WM_CLOSE); } BOOL CClientForm3::PreTranslateMessage(MSG* pMsg) { // TODO: Add your specialized code here and/or call the base class try { if(pMsg->message==WM_KEYDOWN) { switch (pMsg->wParam) { case VK_RETURN: return 1; case 0x43: // copy if ( ( GetKeyState( VK_CONTROL ) & 0x80 ) ) { GetFocus()->SendMessage(WM_COPY); return TRUE; } break; case 0x56: //Ctrl + V: if ( ( GetKeyState( VK_CONTROL ) & 0x80 ) ) { GetFocus()->SendMessage(WM_PASTE); return TRUE; } break; case 0x58: // cut if ( ( GetKeyState( VK_CONTROL ) & 0x80 ) ) { GetFocus()->SendMessage(WM_CUT); return TRUE; } break; case 0x5A: //undo case 0x59: //redo if ( ( GetKeyState( VK_CONTROL ) & 0x80 ) ) { GetFocus()->SendMessage(WM_UNDO); return TRUE; } break; } } return MyFormView::PreTranslateMessage(pMsg); } catch(...) { } } void CClientForm3::GetData() { UpdateData(); CString filter; filter.Format("date>='%s' and date<='%s'", m_date1.Format("%Y-%m-%d"), m_date2.Format("%Y-%m-%d")); m_checkcontent=m_clerk=m_result=""; int pos=m_combocheckcontent.GetCurSel (); if(pos!=-1) { m_combocheckcontent.GetLBText (pos, m_checkcontent); } pos=m_comboclerk.GetCurSel (); if(pos!=-1) { m_comboclerk.GetLBText (pos, m_clerk); } pos=m_comboresult.GetCurSel (); if(pos!=-1) { m_comboresult.GetLBText (pos, m_result); } if(m_radio1==2) { if(m_result!="" && m_result!="全部") { filter+=" and result='"+m_result+"'"; } } else { if(m_checkcontent!="" && m_checkcontent!="全部") { filter+=" and checkcontent='"+m_checkcontent+"'"; } m_clerk.TrimLeft(); if(m_clerk!="" && m_clerk!="全部") { filter+=" and clerk='"+m_clerk+"'"; } } g_sendhead.bsql=0; g_sendhead.code[0]=209; g_sendhead.tabcount=1; g_pMainWnd->ProcessChatMessageRequest2(filter); if(g_bSendOK==0) { return; } DataToArray(&m_List1array); FillGrid(); } void CClientForm3::OnButton1() { // TODO: Add your control notification handler code here GetData(); } void SortArray(BOOL bAscending, CStringArray &datearray, CArray&valuearray) { CString strtemp; int ntemp; int last = datearray.GetSize () - 1; bool sorted = true; if(bAscending) { do { sorted = true; for (int i = 0; i < last; i++) { if (valuearray[i] < valuearray[i + 1]) { strtemp = datearray[i]; datearray[i] = datearray[i + 1]; datearray[i + 1] = strtemp; ntemp = valuearray[i]; valuearray[i] = valuearray[i + 1]; valuearray[i + 1] = ntemp; sorted = false; } } last--; } while (!sorted); } else { do { sorted = true; for (int i = 0; i < last; i++) { if (valuearray[i] > valuearray[i + 1]) { strtemp = datearray[i]; datearray[i] = datearray[i + 1]; datearray[i + 1] = strtemp; ntemp = valuearray[i]; valuearray[i] = valuearray[i + 1]; valuearray[i + 1] = ntemp; sorted = false; } } last--; } while (!sorted); } } void CClientForm3::RefChert() { UpdateData(); m_checkcontent=m_clerk=m_result=""; int pos=m_combocheckcontent.GetCurSel (); if(pos!=-1) { m_combocheckcontent.GetLBText (pos, m_checkcontent); } pos=m_comboclerk.GetCurSel (); if(pos!=-1) { m_comboclerk.GetLBText (pos, m_clerk); } pos=m_comboresult.GetCurSel (); if(pos!=-1) { m_comboresult.GetLBText (pos, m_result); } int i = 0; if(m_radio1==2) { m_result.TrimLeft(); if(m_result=="" || m_result=="全部") { CStringArray resultarray; CArraycountarray; int pos; for( i=0; i12) { resultarray.SetSize(12); countarray.SetSize(12); } CStringArray m_typearray; m_typearray.Add("全部"); m_Chart3.SetColumnCount(1); VARIANT var; m_Chart3.GetPlot().GetAxis(1,var).GetValueScale().SetAuto(1); COLORREF col[10]={\ RGB(255,0,0),\ RGB(0,255,0),\ RGB(0,0,255),\ RGB(255,255,0),\ RGB(0,255,255),\ RGB(255,0,255),\ RGB(127,0,0),\ RGB(0,127,0),\ RGB(0,0,127),\ RGB(127,127,0) }; for( i=0; icountarray; int pos; for( i=0; i12) { clerkarray.SetSize(12); countarray.SetSize(12); } CStringArray m_typearray; m_typearray.Add (m_result); m_Chart3.SetColumnCount(1); VARIANT var; m_Chart3.GetPlot().GetAxis(1,var).GetValueScale().SetAuto(1); COLORREF col[10]={\ RGB(255,0,0),\ RGB(0,255,0),\ RGB(0,0,255),\ RGB(255,255,0),\ RGB(0,255,255),\ RGB(255,0,255),\ RGB(127,0,0),\ RGB(0,127,0),\ RGB(0,0,127),\ RGB(127,127,0) }; for( i=0; icountarray; int pos; for(int i=0; i12) { clerkarray.SetSize(12); countarray.SetSize(12); } CStringArray m_typearray; if(m_radio1==1 && (m_checkcontent==""||m_checkcontent=="全部")) m_typearray.Add(""); else m_typearray.Add (m_checkcontent); m_Chart3.SetColumnCount(1); VARIANT var; m_Chart3.GetPlot().GetAxis(1,var).GetValueScale().SetAuto(1); COLORREF col[10]={\ RGB(255,0,0),\ RGB(0,255,0),\ RGB(0,0,255),\ RGB(255,255,0),\ RGB(0,255,255),\ RGB(255,0,255),\ RGB(127,0,0),\ RGB(0,127,0),\ RGB(0,0,127),\ RGB(127,127,0) }; for( i=0; icountarray; int pos; for( i=0; i12) { checkcontentarray.SetSize(12); countarray.SetSize(12); } CStringArray m_typearray; m_typearray.Add (m_clerk); m_Chart3.SetColumnCount(1); VARIANT var; m_Chart3.GetPlot().GetAxis(1,var).GetValueScale().SetAuto(1); COLORREF col[10]={\ RGB(255,0,0),\ RGB(0,255,0),\ RGB(0,0,255),\ RGB(255,255,0),\ RGB(0,255,255),\ RGB(255,0,255),\ RGB(127,0,0),\ RGB(0,127,0),\ RGB(0,0,127),\ RGB(127,127,0) }; for( i=0; iShowWindow(SW_HIDE); GetDlgItem(IDC_STATIC102)->ShowWindow(SW_HIDE); GetDlgItem(IDC_COMBOclerk)->ShowWindow(SW_HIDE); GetDlgItem(IDC_COMBOcheckcontent)->ShowWindow(SW_HIDE); GetDlgItem(IDC_STATIC101)->ShowWindow(SW_SHOW); GetDlgItem(IDC_COMBOresult)->ShowWindow(SW_SHOW); } else { GetDlgItem(IDC_STATIC100)->ShowWindow(SW_SHOW); GetDlgItem(IDC_STATIC102)->ShowWindow(SW_SHOW); GetDlgItem(IDC_COMBOclerk)->ShowWindow(SW_SHOW); GetDlgItem(IDC_COMBOcheckcontent)->ShowWindow(SW_SHOW); GetDlgItem(IDC_STATIC101)->ShowWindow(SW_HIDE); GetDlgItem(IDC_COMBOresult)->ShowWindow(SW_HIDE); } } BEGIN_EVENTSINK_MAP(CClientForm3, MyFormView) //{{AFX_EVENTSINK_MAP(CClientForm3) ON_EVENT(CClientForm3, IDC_MSCHART3, -601 /* DblClick */, OnDblClickMschart3, VTS_NONE) //}}AFX_EVENTSINK_MAP END_EVENTSINK_MAP() extern BOOL g_bShowMsChart; extern HWND g_hShowChartWnd; void CClientForm3::OnDblClickMschart3() { // TODO: Add your control notification handler code here if(g_bShowMsChart) { ::SendMessage (g_hShowChartWnd, WM_CLOSE, 0, 0); return; } g_bShowMsChart=1; CRect rc; m_Chart3.GetWindowRect (rc); ScreenToClient(rc); ShowMschart dlg; dlg.m_pParent =this; dlg.m_pChart=&m_Chart3; dlg.DoModal (); m_Chart3.MoveWindow (rc); g_bShowMsChart=0; }