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

📄 feeview.cpp

📁 VC6.0环境下编写的一个交换机计费程序。
💻 CPP
📖 第 1 页 / 共 5 页
字号:
	}
	feetimechangeQueryList(TRUE);
	CFeeView::OnAddfeeAdd();

}

void CFeeView::feetimechagelist(CPoint point)
{
	CListCtrl *ctl;
	ctl=&GetListCtrl();
	int nHitItem=ctl->HitTest(point,NULL);
	if (nHitItem<0)
	{
		return;
	}
	RemovePreTimer();

	CfeeTimechangemodifyDlg	 feetimelistDlg;
	
	CString strdate,strtime,strtemp;	
	COleDateTime tdate,ttime;
	long lyear,lmonth,lday,lhour,lminute,lsecond;
	feetimelistDlg.m_uintfeedecper=atol(ctl->GetItemText(nHitItem,0));
	strdate=ctl->GetItemText(nHitItem,1);
	//if (strdate!="1970-1-1")
	{
		tdate.ParseDateTime(strdate,VAR_DATEVALUEONLY);
		lyear=tdate.GetYear();
		lmonth=tdate.GetMonth();
		lday=tdate.GetDay();
		strtemp.Format("%d",lyear);
		feetimelistDlg.m_strstartyear=strtemp;
		strtemp.Format("%d",lmonth);
		feetimelistDlg.m_strstartmonth=strtemp;
		strtemp.Format("%d",lday);
		feetimelistDlg.m_strstartday=strtemp;
	}
	strdate=ctl->GetItemText(nHitItem,2);
	//if (strdate!="1970-1-1")
	{
		tdate.ParseDateTime(strdate,VAR_DATEVALUEONLY);
		lyear=tdate.GetYear();
		lmonth=tdate.GetMonth();
		lday=tdate.GetDay();
		strtemp.Format("%d",lyear);
		feetimelistDlg.m_strendyear=strtemp;
		strtemp.Format("%d",lmonth);
		feetimelistDlg.m_strendmonth=strtemp;
		strtemp.Format("%d",lday);
		feetimelistDlg.m_strendday=strtemp;
	}
	strtime=ctl->GetItemText(nHitItem,3);
	//if (strtime!="1:02:03")
	{
		ttime.ParseDateTime(strtime,VAR_TIMEVALUEONLY);
		lhour=ttime.GetHour();
		lminute=ttime.GetMinute();
		lsecond=ttime.GetSecond();
		strtemp.Format("%d",lhour);
		feetimelistDlg.m_strstarthour=strtemp;
		strtemp.Format("%d",lminute);
		feetimelistDlg.m_strstartminute=strtemp;
		strtemp.Format("%d",lsecond);
		feetimelistDlg.m_strstartsecond=strtemp;
	}
	strtime=ctl->GetItemText(nHitItem,4);
	//if (strtime!="1:02:03")
	{
		ttime.ParseDateTime(strtime,VAR_TIMEVALUEONLY);
		lhour=ttime.GetHour();
		lminute=ttime.GetMinute();
		lsecond=ttime.GetSecond();
		strtemp.Format("%d",lhour);
		feetimelistDlg.m_strendhour=strtemp;
		strtemp.Format("%d",lminute);
		feetimelistDlg.m_strendminute=strtemp;
		strtemp.Format("%d",lsecond);
		feetimelistDlg.m_strendsecond=strtemp;
	}
	strtemp=ctl->GetItemText(nHitItem,5);
	if (strtemp!="YES")
		feetimelistDlg.m_bfeeincountry=FALSE;
	else
		feetimelistDlg.m_bfeeincountry=TRUE;
	strtemp=ctl->GetItemText(nHitItem,6);
	if (strtemp!="YES")
		feetimelistDlg.m_bfeeincity=FALSE;
	else
		feetimelistDlg.m_bfeeincity=TRUE;
	strtemp=ctl->GetItemText(nHitItem,7);
	if (strtemp!="YES")
		feetimelistDlg.m_bfeeoutcountry=FALSE;
	else
		feetimelistDlg.m_bfeeoutcountry=TRUE;
	strtemp=ctl->GetItemText(nHitItem,8);
	if (strtemp!="YES")
		feetimelistDlg.m_bfeeoutcity=FALSE;
	else
		feetimelistDlg.m_bfeeoutcity=TRUE;
	strtemp=ctl->GetItemText(nHitItem,9);
	if (strtemp!="YES")
		feetimelistDlg.m_bfeeinlong=FALSE;
	else
		feetimelistDlg.m_bfeeinlong=TRUE;
	strtemp=ctl->GetItemText(nHitItem,10);
	if (strtemp!="YES")
		feetimelistDlg.m_bfeeoutlong=FALSE;
	else
		feetimelistDlg.m_bfeeoutlong=TRUE;
	strtemp=ctl->GetItemText(nHitItem,11);
	if (strtemp!="YES")
		feetimelistDlg.m_bfeespec=FALSE;
	else
		feetimelistDlg.m_bfeespec=TRUE;
	
	int nResponse;	
	telelistcmd=0;
	nResponse=feetimelistDlg.DoModal();
	if (nResponse!=IDOK)
	{
		//
		return;
	}
	feetimechangeQueryList(TRUE);
}


void CFeeView::OnTelefeeAdd() 
{
	// TODO: Add your command handler code here
	int nResponse;	
	actViewWindow=VIEWFEETELEQUERY;	
	RemovePreTimer();
	CfeetelenumaddDlg feeteleDlg;
	nResponse=feeteleDlg.DoModal();
	if (nResponse!=IDOK)
	{
		return;
	}
	feeteleQueryList(TRUE,"all","NULL");
	CFeeView::OnTelefeeAdd();
	
}

void CFeeView::OnFeetelequeryAll() 
{
	// TODO: Add your command handler code here
	RemovePreTimer();
	feetelequerycondition_num="all";
	feeteleQueryList(TRUE,"all","NULL");
}
void CFeeView::OnFeetelequeryCondition() 
{
	// TODO: Add your command handler code here
	CString strtemp;
	CfeetelequeryDlg	 feetelequeryDlg;
	RemovePreTimer();
	int nResponse;	
	nResponse=feetelequeryDlg.DoModal();
	if (nResponse!=IDOK)
	{
		return;
	}
	actViewWindow=VIEWFEETELEQUERY;

	feeteleQueryList(TRUE,feetelequeryDlg.m_strtelenum,feetelequeryDlg.m_strproperty);
	
}


void CFeeView::feetelelist(CPoint point)
{
	CListCtrl *ctl;
	ctl=&GetListCtrl();
	int nHitItem=ctl->HitTest(point,NULL);
	if (nHitItem<0)
	{
		return;
	}
	actViewWindow=VIEWFEETELEQUERY;
	RemovePreTimer();
	CfeetelelistDlg	 feetelelistDlg;

	feetelelistDlg.m_strtelenum=ctl->GetItemText(nHitItem,0);
	feetelelistDlg.m_strproperty=ctl->GetItemText(nHitItem,1);
	int nResponse;	
	telelistcmd=0;
	nResponse=feetelelistDlg.DoModal();
	if (nResponse!=IDOK)
	{
		return;
	}
	//feeteleQueryList(TRUE,feetelelistDlg.m_strtelenum,feetelelistDlg.m_strproperty);
	feeteleQueryList(TRUE,"all","NULL");
}

void CFeeView::OnFeeTelemenuDandM(void)
{
	CListCtrl *ctl;
	actViewWindow=VIEWFEETELEQUERY;
	RemovePreTimer();
	CString strSql,strTemp;
	ctl=&GetListCtrl();
	POSITION pos=ctl->GetFirstSelectedItemPosition();
	if (pos==NULL)
	{
		AfxMessageBox("Please select one record");
		return;
	}
	int nHitItem=ctl->GetNextSelectedItem(pos);
	CfeetelelistDlg	 feetelelistDlg;

	feetelelistDlg.m_strtelenum=ctl->GetItemText(nHitItem,0);
	feetelelistDlg.m_strproperty=ctl->GetItemText(nHitItem,1);
	int nResponse;	
	telelistcmd=0;
	nResponse=feetelelistDlg.DoModal();
	if (nResponse!=IDOK)
	{
		return;
	}
	feeteleQueryList(TRUE,"all","NULL");
	//feeteleQueryList(TRUE,feetelelistDlg.m_strtelenum,feetelelistDlg.m_strproperty);
}

void CFeeView::OnTelefeeModify() 
{
	// TODO: Add your command handler code here
	OnFeeTelemenuDandM();
}

void CFeeView::OnTelefeeDelete() 
{
	// TODO: Add your command handler code here
	OnFeeTelemenuDandM();
}


void CFeeView::OnBalanceAll() 
{
	// TODO: Add your command handler code here
	CbalancealltalkDlg  balancealldlg;
	RemovePreTimer();
	int nResponse;	
	nResponse=balancealldlg.DoModal();
	if (nResponse!=IDOK)
	{
		return;
	}
	
}

void CFeeView::OnBalanceCondition() 
{
	// TODO: Add your command handler code here
	CbalanceconditionDlg  balanceconditiondlg;
	RemovePreTimer();
	int nResponse;	
	nResponse=balanceconditiondlg.DoModal();
	if (nResponse!=IDOK)
	{
		return;
	}
}

void CFeeView::OnTalkrecordAll() 
{
	// TODO: Add your command handler code here
	CtalkrecordqueryallDlg queryDlg;
	int nResponse;
	RemoveAll();
	RemoveAllColumn();
	RemovePreTimer();
	actViewWindow=VIEWTALKRECORDDETAILQUERY;
	CListCtrl *ctl;
	ctl=&GetListCtrl();
	ctl->InsertColumn(viewColumnNum,"Calling number",LVCFMT_LEFT,100);
	viewColumnNum++;
	ctl->InsertColumn(viewColumnNum,"Total fee(ks)",LVCFMT_LEFT,90);
	viewColumnNum++;
	ctl->InsertColumn(viewColumnNum,"Interior fee(ks)",LVCFMT_LEFT,120);
	viewColumnNum++;
	ctl->InsertColumn(viewColumnNum,"local fee(ks)",LVCFMT_LEFT,120);
	viewColumnNum++;
	ctl->InsertColumn(viewColumnNum,"Toll fee(ks)",LVCFMT_LEFT,120);
	viewColumnNum++;
	ctl->InsertColumn(viewColumnNum,"International fee(ks)",LVCFMT_LEFT,120);
	viewColumnNum++;
	ctl->InsertColumn(viewColumnNum,"Special fee(ks)",LVCFMT_LEFT,120);
	viewColumnNum++;
	ctl->InsertColumn(viewColumnNum,"Interior minute",LVCFMT_LEFT,120);
	viewColumnNum++;
	ctl->InsertColumn(viewColumnNum,"local minute",LVCFMT_LEFT,120);
	viewColumnNum++;
	ctl->InsertColumn(viewColumnNum,"Toll minute",LVCFMT_LEFT,120);
	viewColumnNum++;
	ctl->InsertColumn(viewColumnNum,"International minute",LVCFMT_LEFT,120);
	viewColumnNum++;
	ctl->InsertColumn(viewColumnNum,"Special minute",LVCFMT_LEFT,120);
	viewColumnNum++;

	nResponse=queryDlg.DoModal();
	if (nResponse!=IDOK)
	{
		return;
	}

	long lstartyear,lstartmonth,lstartday;
	long lendyear,lendmonth,lendday;

	lstartyear=atol(queryDlg.m_strstartyear);
	lstartmonth=atol(queryDlg.m_strstartmonth);
	lstartday=atol(queryDlg.m_strstartday);
	lendyear=atol(queryDlg.m_strendyear);
	lendmonth=atol(queryDlg.m_strendmonth);
	lendday=atol(queryDlg.m_strendday);
		
	long flag;
	flag=0;
	flag=availdate(lstartyear,lstartmonth,lstartday);
	if (flag==1)
	{
		AfxMessageBox("timeset error");
		return;
	}
	flag=availdate(lendyear,lendmonth,lendday);
	if (flag==1)
	{
		AfxMessageBox("timeset error");
		return;
	}

	CString strSql,strtemp,strtemp1,strtemp2;
	CString callingnum;
	HRESULT result;
	CFeeApp* pApp=(CFeeApp *)AfxGetApp();

//	strSql.Format("select * from telephone");
	strSql.Format("select * from balancefee where talkenddate<=#%d-%d-%d#  and talkenddate>=#%d-%d-%d#",\
	lendyear,lendmonth,lendday,lstartyear,lstartmonth,lstartday);

	CString strcallingnum[1000];
	long feecallingnumshuliang;

	feecallingnumshuliang=0;

	result=pApp->m_pjifeiRecordset->Open(strSql.AllocSysString(),
		pApp->m_pjifeiConnection.GetInterfacePtr(),
		adOpenDynamic,adLockOptimistic,adCmdText);
	if (!SUCCEEDED(result))
	{
		AfxMessageBox("can't open balancefee table");
	}
	long i=0;
	while(!pApp->m_pjifeiRecordset->adoEOF)
	{
		_variant_t varport;
		varport=pApp->m_pjifeiRecordset->GetCollect("callingnum");
		if (varport.vt!=VT_NULL)
			callingnum =(char*)_bstr_t(varport);
		else 
			callingnum="null";
		if (callingnum=="65000")
		{
			i=0;
		}
		if (feecallingnumshuliang==0)
		{
			strcallingnum[feecallingnumshuliang]=callingnum;
			feecallingnumshuliang++;
		}
		else
		{
			flag=0;
			for(int j=0;j<feecallingnumshuliang;j++)
			{
				if (strcallingnum[j]==callingnum)
					flag=1;
			}
			if (flag==0)
			{
				strcallingnum[feecallingnumshuliang]=callingnum;	
				feecallingnumshuliang++;
			}
			if (feecallingnumshuliang>=1000)
				feecallingnumshuliang=1000;
		}
		pApp->m_pjifeiRecordset->MoveNext();
	}
	pApp->m_pjifeiRecordset->Close();

	if (feecallingnumshuliang>0)
	{
		for(int j=0;j<feecallingnumshuliang;j++)
		{
			callingnum=strcallingnum[j];

			strSql.Format("select * from balancefee where callingnum='%s' and \
			talkenddate<=#%d-%d-%d#  and talkenddate>=#%d-%d-%d#",\
			callingnum,lendyear,lendmonth,lendday,lstartyear,lstartmonth,lstartday);

		
			result=pApp->m_pjifei2Recordset->Open(strSql.AllocSysString(),
				pApp->m_pjifei2Connection.GetInterfacePtr(),
				adOpenDynamic,adLockOptimistic,adCmdText);
			if (!SUCCEEDED(result))
			{
				AfxMessageBox("can't open balancefee table");
			}
			long feesum;
			long feeinterior,feelocal,feetoll;
			long feeinternational,feespecial;
			long flotemp;
			feesum=0;
			feeinterior=0;	feelocal=0;
			feetoll=0;	feeinternational=0;
			feespecial=0;

			long timeinterior,timelocal,timetoll;
			long timeinternational,timespecial;
			long timetemp;

			timeinterior=0;	timelocal=0;
			timetoll=0;	timeinternational=0;
			timespecial=0;

			while(!pApp->m_pjifei2Recordset->adoEOF)
			{
				_variant_t varport;
				varport=pApp->m_pjifei2Recordset->GetCollect("talkfee");
				if (varport.vt!=VT_NULL)
					strtemp =(char*)_bstr_t(varport);
				else 
					strtemp="null";
				varport=pApp->m_pjifei2Recordset->GetCollect("talkkind");
				if (varport.vt!=VT_NULL)
					strtemp1 =(char*)_bstr_t(varport);
				else 
					strtemp1="null";
				varport=pApp->m_pjifei2Recordset->GetCollect("talktime");
				if (varport.vt!=VT_NULL)
					strtemp2 =(char*)_bstr_t(varport);
				else 
					strtemp2="null";
				//strtemp=(char*)(_bstr_t)pApp->m_pjifei2Recordset->GetCollect(_variant_t("talkfee"));
				//strtemp1=(char*)(_bstr_t)pApp->m_pjifei2Recordset->GetCollect(_variant_t("talkkind"));
				//strtemp2=(char*)(_bstr_t)pApp->m_pjifei2Recordset->GetCollect(_variant_t("talktime"));

				if (strtemp1=="interior")
				{
					feeinterior+=atol(strtemp);
					feesum+=atol(strtemp);
					timeinterior+=((atol(strtemp2))/60);
					if (((atol(strtemp2))%60)!=0)
						timeinterior++;
				}
				if (strtemp1=="local")
				{
					feelocal+=atol(strtemp);
					feesum+=atol(strtemp);
					timelocal+=((atol(strtemp2))/60);
					if (((atol(strtemp2))%60)!=0)
						timelocal++;
				}
				if (strtemp1=="Toll")
				{
					feetoll+=atol(strtemp);
					feesum+=atol(strtemp);
					timetoll+=((atol(strtemp2))/60);
					if (((atol(strtemp2))%60)!=0)
						timetoll++;
				}

⌨️ 快捷键说明

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