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

📄 dlgaveragetime.cpp

📁 用VC编写的立体仓库的管理软件源程序和设计说明书。
💻 CPP
字号:
// DlgAverageTime.cpp : implementation file
//

#include "stdafx.h"
#include "manage_wh.h"
#include "DlgAverageTime.h"

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

/////////////////////////////////////////////////////////////////////////////
// CDlgAverageTime dialog


CDlgAverageTime::CDlgAverageTime(CWnd* pParent /*=NULL*/)
	: CDialog(CDlgAverageTime::IDD, pParent)
{
	//{{AFX_DATA_INIT(CDlgAverageTime)
	//}}AFX_DATA_INIT
	m_hIcon = AfxGetApp()->LoadIcon(IDI_MYICON);
}


void CDlgAverageTime::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CDlgAverageTime)
	DDX_Control(pDX, IDC_YEAR, m_ctrlYear);
	DDX_Control(pDX, IDC_LIST, m_list);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CDlgAverageTime, CDialog)
	//{{AFX_MSG_MAP(CDlgAverageTime)
	ON_BN_CLICKED(IDC_SEARCH, OnSearch)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CDlgAverageTime message handlers

BOOL CDlgAverageTime::PreTranslateMessage(MSG* pMsg) 
{
	if (pMsg->message==WM_KEYDOWN && (pMsg->wParam==13 || pMsg->wParam==27))
		return TRUE;
	return CDialog::PreTranslateMessage(pMsg);
}

BOOL CDlgAverageTime::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	SetIcon(m_hIcon,TRUE);

	m_list.InsertColumn(0,"月份",LVCFMT_LEFT,80,-1);
	m_list.InsertColumn(1,"订单数量",LVCFMT_LEFT,120,-1);
	m_list.InsertColumn(2,"总用时(分钟)",LVCFMT_LEFT,120,-1);
	m_list.InsertColumn(3,"平均用时(分钟)",LVCFMT_LEFT,120,-1);
	m_list.SetExtendedStyle( LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT );

	CTime tm(CTime::GetCurrentTime());
	CString sYear;
	sYear.Format("%.4d",tm.GetYear());
	static_cast<CEdit *>(GetDlgItem(IDC_YEAR))->SetWindowText(sYear);
	
	return TRUE;
}

void CDlgAverageTime::OnSearch() 
{
	m_list.DeleteAllItems();
	UpdateData();
	int iYear;
	CString szYear;
	static_cast<CEdit *>(GetDlgItem(IDC_YEAR))->GetWindowText(szYear);
	iYear = atoi(szYear);
	if (szYear.IsEmpty() || szYear.Mid(0,1)=="0" || iYear > 3000 || iYear < 2006)
		return;

	CAdoConnection cn;
	CAdoRecordSet  rs;
	int row(0),iOrderNum,iTimeSum,iTimeAve;
	CString sYear,sBeginTime,sEndTime,sMonth,sOrderNum,sCurMonth,sTimeSum,sTimeAve;
	sYear.Format("%d",iYear);

	cn.OpenUDLFile(gstrConSQLSer);
	rs.SetAdoConnection(&cn);
	for (int i=1;i<=12;i++)
	{
		iTimeSum  = 0;
		iTimeAve  = 0;
		iOrderNum = 0;
		sCurMonth.Format("%d月",i);
		sMonth.Format("%.2d",i);
		if (sMonth == "12")
		{
			sBeginTime = ""+sYear+"-"+sMonth+"-01 00:00:00";
			sEndTime   = ""+sYear+"-"+sMonth+"-31 23:59:59";
		}
		else
		{
			sBeginTime = ""+sYear+"-"+sMonth+"-01 00:00:00";
			sMonth.Format("%.2d",i+1);
			sEndTime   = ""+sYear+"-"+sMonth+"-01 00:00:00";
		}

		row = m_list.InsertItem(row,"");
		
		rs.Open("select * from T_Order_History where F_EndTime>='"+sBeginTime+"' and F_EndTime<'"+sEndTime+"' and F_Status=1",adCmdText);
		if (rs.GetRecordCount() > 0)
		{
			rs.MoveFirst();
			while (!rs.IsEOF())
			{
				rs.GetCollect("F_BeginTime",sBeginTime);
				rs.GetCollect("F_EndTime",sEndTime);

				CTime tmBegin(atoi(sBeginTime.Mid(0,4)),atoi(sBeginTime.Mid(5,2)),atoi(sBeginTime.Mid(8,2)),atoi(sBeginTime.Mid(11,2)),atoi(sBeginTime.Mid(14,2)),atoi(sBeginTime.Mid(17,2)));
				CTime tmEnd(atoi(sEndTime.Mid(0,4)),atoi(sEndTime.Mid(5,2)),atoi(sEndTime.Mid(8,2)),atoi(sEndTime.Mid(11,2)),atoi(sEndTime.Mid(14,2)),atoi(sEndTime.Mid(17,2)));

				CTimeSpan tmSpan = tmEnd - tmBegin;
				iTimeSum += tmSpan.GetDays()*24*3600+tmSpan.GetHours()*3600+tmSpan.GetMinutes()*60+tmSpan.GetSeconds();
				iOrderNum++;
				rs.MoveNext();
			}
			sOrderNum.Format("%d",iOrderNum);
			double dTime = iTimeSum/60.0;
			sTimeSum.Format("%.2f",dTime);
			sTimeAve.Format("%.2f",dTime/iOrderNum);
		}
		else
		{
			sOrderNum = "0";
			sTimeSum  = "0";
			sTimeAve  = "0";
		}
		rs.Close();

		m_list.SetItemText(row,0,sCurMonth);
		m_list.SetItemText(row,1,sOrderNum);
		m_list.SetItemText(row,2,sTimeSum);
		m_list.SetItemText(row,3,sTimeAve);

		row++;
	}
	cn.Close();
}

⌨️ 快捷键说明

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