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

📄 search.cpp

📁 一个可以控制单片机根据通话时间和所拨地区进行计费的软件!
💻 CPP
字号:
// Search.cpp : implementation file
//

#include "stdafx.h"
#include "Commucation.h"
#include "Search.h"

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

/////////////////////////////////////////////////////////////////////////////
// CSearch dialog


CSearch::CSearch(CWnd* pParent /*=NULL*/)
	: CDialog(CSearch::IDD, pParent)
{
	//{{AFX_DATA_INIT(CSearch)
	m_PhoneCode = _T("");
	m_RoomNo = _T("");
	//}}AFX_DATA_INIT
}


void CSearch::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CSearch)
	DDX_Control(pDX, IDC_COMBO_YEAR, m_Year);
	DDX_Control(pDX, IDC_COMBO_DAY, m_Day);
	DDX_Control(pDX, IDC_COMBO_MONTH, m_Month);
	DDX_Control(pDX, IDC_SEARCH_MSFLEXGRID, m_Search_MSFlex);
	DDX_Text(pDX, IDC_PHONECODE, m_PhoneCode);
	DDV_MaxChars(pDX, m_PhoneCode, 16);
	DDX_Text(pDX, IDC_ROOMNO, m_RoomNo);
	DDV_MaxChars(pDX, m_RoomNo, 2);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CSearch, CDialog)
	//{{AFX_MSG_MAP(CSearch)
	ON_BN_CLICKED(IDC_BUTTON_SEARCH, OnButtonSearch)
	ON_CBN_SELCHANGE(IDC_COMBO_MONTH, OnSelchangeComboMonth)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CSearch message handlers

BOOL CSearch::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	try
	{	
    	m_pDB.Open("C:\\WINDOWS\\SYSTEM\\record.mdb");
	}
	catch(CDaoException*e)
	{
		DisplayDaoException(e);
		e->Delete();
	}

	t=CTime::GetCurrentTime();
	curYear=t.GetYear();
	curMonth=t.GetMonth();
	curDay=t.GetDay();
	CString x;
	x.Format("%d",curYear-3);
	m_Year.InsertString(0,x);
	x.Format("%d",curYear-2);
	m_Year.InsertString(1,x);
	x.Format("%d",curYear-1);
	m_Year.InsertString(2,x);
	x.Format("%d",curYear);
	m_Year.InsertString(3,x);
	m_Year.SetCurSel(3);

	for(int i=1;i<=12;i++)
	{
		x.Format("%2d",i);
		m_Month.AddString(x);
	}

	m_Month.SetCurSel(curMonth-1);

	if((curMonth==4)||(curMonth==6)||(curMonth==9)||(curMonth==11))
	{
		for(int i=0;i<30;i++)
		{
			x.Format("%2d",i+1);
			m_Day.InsertString(i,x);
			m_Day.SetCurSel(curDay-1);
		}
	}
	else if(curMonth==2)
	{
		for(int i=0;i<29;i++)
		{
			x.Format("%2d",i+1);
			m_Day.InsertString(i,x);
			m_Day.SetCurSel(curDay-1);
		}
	}
	else
	{
		for(int i=0;i<31;i++)
		{
			x.Format("%2d",i+1);
			m_Day.InsertString(i,x);
			m_Day.SetCurSel(curDay-1);
		}
	}

	m_Search_MSFlex.SetRows(1);
	m_Search_MSFlex.SetColWidth(0,500);
	m_Search_MSFlex.SetColWidth(1,0);
	m_Search_MSFlex.SetColWidth(2,2100);
	m_Search_MSFlex.SetColWidth(3,800);
	m_Search_MSFlex.SetColWidth(4,1100);
	m_Search_MSFlex.SetColWidth(5,1100);
	m_Search_MSFlex.SetColWidth(6,1100);
	m_Search_MSFlex.SetColWidth(7,1000);
	m_Search_MSFlex.SetColWidth(8,0);
	m_Search_MSFlex.SetColWidth(9,0);
	m_Search_MSFlex.SetColWidth(10,0);
	
	m_Search_MSFlex.SetRow(0);
	m_Search_MSFlex.SetCol(1);	
	m_Search_MSFlex.SetText("流水号");
	m_Search_MSFlex.SetCol(2);	
	m_Search_MSFlex.SetText("被叫号");
	m_Search_MSFlex.SetCol(3);
	m_Search_MSFlex.SetText("话亭");
	m_Search_MSFlex.SetCol(4);
	m_Search_MSFlex.SetText("通话日期");
	m_Search_MSFlex.SetCol(5);
	m_Search_MSFlex.SetText("起始时间");
	m_Search_MSFlex.SetCol(6);
	m_Search_MSFlex.SetText("通话时间");
	m_Search_MSFlex.SetCol(7);
	m_Search_MSFlex.SetText("话费");
	m_Search_MSFlex.SetCol(8);
	m_Search_MSFlex.SetText("附加费");
	m_Search_MSFlex.SetCol(9);
	m_Search_MSFlex.SetText("话价");
	m_Search_MSFlex.SetCol(10);
	m_Search_MSFlex.SetText("工号");
/*
	while(str!="")
	{
		m_Record.m_Serial=str.Left(11);
		m_Record.m_Phone=str.Mid(13,16);
		m_Record.m_Room=str.Mid(11,2);
		m_Record.m_Date=str.Mid(30,10);
		m_Record.m_StTime=str.Mid(40,8);
		m_Record.m_SpTime=str.Mid(48,4);
		m_Record.m_Cost=str.Mid(52,6);
		m_Record.m_Add=str.Mid(69,5);
		m_Record.m_Price=str.Mid(61,8);
		m_Record.m_Duty=str.Mid(58,3);

		RowNo.Format("%d",RowCount);
		m_Search_MSFlex.SetRow(RowCount);
		m_Search_MSFlex.SetCol(0);
		m_Search_MSFlex.SetText(RowNo);
		m_Search_MSFlex.SetCol(1);	
		m_Search_MSFlex.SetText(m_Record.m_Serial);
		m_Search_MSFlex.SetCol(2);	
		m_Search_MSFlex.SetText(m_Record.m_Phone);
		m_Search_MSFlex.SetCol(3);	
		m_Search_MSFlex.SetText(m_Record.m_Room+"话亭");
		m_Search_MSFlex.SetCol(4);
		m_Search_MSFlex.SetText(m_Record.m_Date);
		m_Search_MSFlex.SetCol(5);
		m_Search_MSFlex.SetText(m_Record.m_StTime);
		m_Search_MSFlex.SetCol(6);
		m_Search_MSFlex.SetText(m_Record.m_SpTime+"秒");
		m_Search_MSFlex.SetCol(7);
		m_Search_MSFlex.SetText(m_Record.m_Cost+"元");
		m_Search_MSFlex.SetCol(8);
		m_Search_MSFlex.SetText(m_Record.m_Add);
		m_Search_MSFlex.SetCol(9);
		m_Search_MSFlex.SetText(m_Record.m_Price);
		m_Search_MSFlex.SetCol(10);
		m_Search_MSFlex.SetText(m_Record.m_Duty);
		file.ReadString(str);
		RowCount+=1;
	}
	*/

	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

BEGIN_EVENTSINK_MAP(CSearch, CDialog)
    //{{AFX_EVENTSINK_MAP(CSearch)
	ON_EVENT(CSearch, IDC_SEARCH_MSFLEXGRID, -600 /* Click */, OnClickSearchMsflexgrid, VTS_NONE)
	//}}AFX_EVENTSINK_MAP
END_EVENTSINK_MAP()

void CSearch::OnClickSearchMsflexgrid() 
{
	// TODO: Add your control notification handler code here
//	m_SearchRow=m_Search_MSFlex.GetRow();
//	m_Search_MSFlex.SetRow(m_SearchRow);

}

void CSearch::OnButtonSearch() 
{
	// TODO: Add your control notification handler code here
	UpdateData(TRUE);
	CDaoQueryDef qd(&m_pDB);
	CString sdate,temp,sqlstr,PhoneCode,RoomNo,RowNo;
	int len_Code,RowCount;
	temp.Format("%d",m_Year.GetCurSel()+curYear-3);
	sdate=temp;
	temp.Format("%2d",m_Month.GetCurSel()+1);
	sdate=sdate+"/"+temp+"/";
	temp.Format("%2d",m_Day.GetCurSel()+1);
	sdate+=temp;

	PhoneCode=m_PhoneCode;
	PhoneCode.TrimRight();
	RoomNo=m_RoomNo;
	len_Code=PhoneCode.GetLength();
	if(RoomNo.GetLength()==1)
	{
		RoomNo="0"+RoomNo;
	}

	sqlstr="select * from record where 日期='"+sdate+"'";
	if(PhoneCode!="")
		sqlstr+=" and 被叫号='"+PhoneCode+"'";
	if(RoomNo!="")
		sqlstr+=" and 话亭='"+RoomNo+"'";

	qd.Create("",sqlstr);
	CDaoRecordset rs(&m_pDB);
	try
	{
		rs.Open(&qd,dbOpenDynaset,dbInconsistent);
	}
	catch(CDaoException* e)
	{
		DisplayDaoException(e);
		e->Delete();
	}
	qd.Close();
	if(!rs.IsEOF())
	{
		rs.MoveLast();
		rs.MoveFirst();
	}
	RowCount=rs.GetRecordCount()+1;

	m_Search_MSFlex.SetRows(RowCount);
	m_Search_MSFlex.SetColWidth(0,500);
	m_Search_MSFlex.SetColWidth(1,0);
	m_Search_MSFlex.SetColWidth(2,2100);
	m_Search_MSFlex.SetColWidth(3,800);
	m_Search_MSFlex.SetColWidth(4,1100);
	m_Search_MSFlex.SetColWidth(5,1100);
	m_Search_MSFlex.SetColWidth(6,1100);
	m_Search_MSFlex.SetColWidth(7,1000);
	m_Search_MSFlex.SetColWidth(8,0);
	m_Search_MSFlex.SetColWidth(9,0);
	m_Search_MSFlex.SetColWidth(10,0);
		
	m_Search_MSFlex.SetRow(0);
	m_Search_MSFlex.SetCol(1);	
	m_Search_MSFlex.SetText("流水号");
	m_Search_MSFlex.SetCol(2);	
	m_Search_MSFlex.SetText("被叫号");
	m_Search_MSFlex.SetCol(3);
	m_Search_MSFlex.SetText("话亭");
	m_Search_MSFlex.SetCol(4);
	m_Search_MSFlex.SetText("通话日期");
	m_Search_MSFlex.SetCol(5);
	m_Search_MSFlex.SetText("起始时间");
	m_Search_MSFlex.SetCol(6);
	m_Search_MSFlex.SetText("通话时间");
	m_Search_MSFlex.SetCol(7);
	m_Search_MSFlex.SetText("话费");
	m_Search_MSFlex.SetCol(8);
	m_Search_MSFlex.SetText("附加费");
	m_Search_MSFlex.SetCol(9);
	m_Search_MSFlex.SetText("话价");
	m_Search_MSFlex.SetCol(10);
	m_Search_MSFlex.SetText("工号");

	RowCount=1;		
	while(!rs.IsEOF())
	{		
		m_Search_MSFlex.SetRow(RowCount);
		m_Search_MSFlex.SetCol(0);
		RowNo.Format("%2d",RowCount);
		m_Search_MSFlex.SetText(RowNo);
		m_Search_MSFlex.SetCol(1);
		temp=V_BSTRT(&rs.GetFieldValue("流水号"));
		m_Search_MSFlex.SetText(temp);
		m_Search_MSFlex.SetCol(2);	
		temp=V_BSTRT(&rs.GetFieldValue("被叫号"));
		m_Search_MSFlex.SetText(temp);
		m_Search_MSFlex.SetCol(3);	
		temp=V_BSTRT(&rs.GetFieldValue("话亭"));
		temp+="话亭";
		m_Search_MSFlex.SetText(temp);
		m_Search_MSFlex.SetCol(4);
		temp=V_BSTRT(&rs.GetFieldValue("日期"));
		m_Search_MSFlex.SetText(temp);
		m_Search_MSFlex.SetCol(5);
		temp=V_BSTRT(&rs.GetFieldValue("起始时间"));
		m_Search_MSFlex.SetText(temp);
		m_Search_MSFlex.SetCol(6);
		temp=V_BSTRT(&rs.GetFieldValue("通话时间"));
		temp+="秒";
		m_Search_MSFlex.SetText(temp);
		m_Search_MSFlex.SetCol(7);
		double zongjia;
		zongjia=V_R8(&rs.GetFieldValue("总价"));
		temp.Format("%6.2f",zongjia);
		m_Search_MSFlex.SetText(temp+"元");
		m_Search_MSFlex.SetCol(8);
		temp=V_BSTRT(&rs.GetFieldValue("附加费"));
		m_Search_MSFlex.SetText(temp);
		m_Search_MSFlex.SetCol(9);
		temp=V_BSTRT(&rs.GetFieldValue("话价"));
		m_Search_MSFlex.SetText(temp);
		m_Search_MSFlex.SetCol(10);
		temp=V_BSTRT(&rs.GetFieldValue("工号"));
		m_Search_MSFlex.SetText(temp);
		RowCount+=1;
		rs.MoveNext();
	}
	rs.Close();
}

void CSearch::OnOK() 
{
	// TODO: Add extra validation here
	m_Search_MSFlex.SetCol(1);
	m_Search.m_Serial=m_Search_MSFlex.GetText();
	m_Search_MSFlex.SetCol(2);
	m_Search.m_Phone=m_Search_MSFlex.GetText();
	m_Search_MSFlex.SetCol(3);
	m_Search.m_Room=m_Search_MSFlex.GetText();
	m_Search_MSFlex.SetCol(4);
	m_Search.m_Date=m_Search_MSFlex.GetText();
	m_Search_MSFlex.SetCol(5);
	m_Search.m_StTime=m_Search_MSFlex.GetText();
	m_Search_MSFlex.SetCol(6);
	m_Search.m_SpTime=m_Search_MSFlex.GetText();
	m_Search_MSFlex.SetCol(7);
	m_Search.m_Cost=m_Search_MSFlex.GetText();
	m_Search_MSFlex.SetCol(8);
	m_Search.m_Add=m_Search_MSFlex.GetText();
	m_Search_MSFlex.SetCol(9);
	m_Search.m_Price=m_Search_MSFlex.GetText();
	m_Search_MSFlex.SetCol(10);
	m_Search.m_Duty=m_Search_MSFlex.GetText();

	CDialog::OnOK();
}

void CSearch::OnSelchangeComboMonth() 
{
	// TODO: Add your control notification handler code here
	CString x;
	int selMonth;
	selMonth=m_Month.GetCurSel()+1;
	m_Day.ResetContent();
	if((selMonth==4)||(selMonth==6)||(selMonth==9)||(selMonth==11))
	{
		for(int i=0;i<30;i++)
		{
			x.Format("%2d",i+1);
			m_Day.InsertString(i,x);
		}
	}
	else if(selMonth==2)
	{
		for(int i=0;i<29;i++)
		{
			x.Format("%2d",i+1);
			m_Day.InsertString(i,x);
		}
	}
	else
	{
		for(int i=0;i<31;i++)
		{
			x.Format("%2d",i+1);
			m_Day.InsertString(i,x);
		}
	}
	m_Day.SetCurSel(0);
}

⌨️ 快捷键说明

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