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

📄 feeratepage.cpp

📁 IP电话计费管理系统本地版
💻 CPP
字号:
// FeeRatePage.cpp : implementation file
//

#include "stdafx.h"
#include "IPCount.h"
#include "FeeRatePage.h"
#include "IPCountDlg.h"

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

/////////////////////////////////////////////////////////////////////////////
// CFeeRatePage property page

IMPLEMENT_DYNCREATE(CFeeRatePage, CPropertyPage)

CFeeRatePage::CFeeRatePage() : CPropertyPage(CFeeRatePage::IDD)
{
	//{{AFX_DATA_INIT(CFeeRatePage)
	m_strType = _T("");
	m_strFeeRate = _T("");
	m_strOFeeRate = _T("");
	m_strSTLen = _T("");
	m_strStartTimeLen = _T("");
	//}}AFX_DATA_INIT
	nItem=-1;
	m_strOType="";
}

CFeeRatePage::~CFeeRatePage()
{
}

void CFeeRatePage::DoDataExchange(CDataExchange* pDX)
{
	CPropertyPage::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CFeeRatePage)
	DDX_Control(pDX, IDC_LIST_FEERATE, m_ListRate);
	DDX_Text(pDX, IDC_EDIT_TYPE, m_strType);
	DDX_Text(pDX, IDC_EDIT_FEERATE, m_strFeeRate);
	DDX_Text(pDX, IDC_EDIT_OFEERATE, m_strOFeeRate);
	DDX_Text(pDX, IDC_EDIT_OFEECUT_TIMES, m_strSTLen);
	DDX_Text(pDX, IDC_EDIT_TIMES, m_strStartTimeLen);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CFeeRatePage, CPropertyPage)
	//{{AFX_MSG_MAP(CFeeRatePage)
	ON_BN_CLICKED(IDC_BUTTON_FADD, OnFadd)
	ON_BN_CLICKED(IDC_BUTTON_FMOD, OnFmod)
	ON_BN_CLICKED(IDC_BUTTON_FDEL, OnFdel)
	ON_NOTIFY(NM_CLICK, IDC_LIST_FEERATE, OnClickListFeerate)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CFeeRatePage message handlers

BOOL CFeeRatePage::OnInitDialog() 
{
	CPropertyPage::OnInitDialog();
	
	// TODO: Add extra initialization here
    m_ListRate.SetExtendedStyle(m_ListRate.GetExtendedStyle()|
		LVS_EX_FULLROWSELECT|LVS_EX_FLATSB|LVS_EX_INFOTIP);
	CFont *m_font=new CFont;
    m_font->CreateFont(17,0,0,0,FW_NORMAL,FALSE,FALSE,0,DEFAULT_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,DEFAULT_PITCH&FF_SWISS,"宋体");
    m_ListRate.SetFont(m_font,TRUE);
	m_ListRate.SetTextColor(RGB(0,0,180));
	m_ListRate.InsertColumn(0,"类型",LVCFMT_LEFT,80);
	m_ListRate.InsertColumn(1,"费率",LVCFMT_LEFT,70);
	m_ListRate.InsertColumn(2,"附加费率",LVCFMT_LEFT,90);
	m_ListRate.InsertColumn(3,"附加费时长",LVCFMT_LEFT,100);
	m_ListRate.InsertColumn(4,"起计时长",LVCFMT_LEFT,90);
	m_ListRate.InsertColumn(5,"地区名",LVCFMT_LEFT,90);	
	//获得文件的当前路径
	TCHAR pFileName[MAX_PATH];
	GetModuleFileName(NULL,pFileName,MAX_PATH);
	if(strchr(pFileName,'\\'))
		*strrchr(pFileName,'\\')='\0';
    strcat(pFileName,"\\FeeRate.dat");
	set.Open(pFileName);
	int nIndex=0;
	while(!set.IsEOF())
	{
		nIndex=m_ListRate.GetItemCount();
		m_ListRate.InsertItem( nIndex,set.m_Type);
        m_ListRate.SetItemText(nIndex,1,set.m_FeeRate);
        m_ListRate.SetItemText(nIndex,2,set.m_OFeeRate);
		m_ListRate.SetItemText(nIndex,3,set.m_STLen);
		m_ListRate.SetItemText(nIndex,4,set.m_StartTLen);//for xiamen
		set.MoveNext();
	}
	set.Close();
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CFeeRatePage::OnFadd() 
{
	// TODO: Add your control notification handler code here
	UpdateData(TRUE);
	if((m_strType.IsEmpty())||(m_strFeeRate.IsEmpty()))
		MessageBox( "类型、费率是必须的","注意",MB_ICONWARNING);
    CIPCountDlg *mdlg;
	mdlg=(CIPCountDlg *)GetParent()->GetParent();
	if(mdlg==NULL)
		return ;
	//获得文件的当前路径
	TCHAR pFileName[MAX_PATH];
	GetModuleFileName(NULL,pFileName,MAX_PATH);
	if(strchr(pFileName,'\\'))
		*strrchr(pFileName,'\\')='\0';
    strcat(pFileName,"\\FeeRate.dat");
	set.Open(pFileName);
///////////////////////////////////////////////////////////
	while(!set.IsEOF())//判断将要添加的费率是否已存在
	{
	    if(strcmp(set.m_Type,m_strType)==0)
		{
		    AfxMessageBox("该类型费率已存在");
			set.Close();
			return;
		}
		set.MoveNext();
	}
////////////////////////////////////////////////////////////
	AfxMessageBox("操作成功!"); 
	int nIndex=0;
	nIndex=m_ListRate.GetItemCount();
	set.m_Type=m_strType;
	set.m_FeeRate=m_strFeeRate;
	set.m_OFeeRate=m_strOFeeRate;
	set.m_STLen=m_strSTLen;
	set.m_StartTLen=m_strStartTimeLen;
	set.AddNew();
	set.Close();
	m_ListRate.InsertItem(nIndex,set.m_Type);
    m_ListRate.SetItemText(nIndex,1,set.m_FeeRate);
    m_ListRate.SetItemText(nIndex,2,set.m_OFeeRate);
	m_ListRate.SetItemText(nIndex,3,set.m_STLen);
	m_ListRate.SetItemText(nIndex,4,set.m_StartTLen);//for xiamen

	mdlg->SetInitRate();	
}

void CFeeRatePage::OnFmod() 
{
	// TODO: Add your control notification handler code here
 	UpdateData(TRUE);
	CIPCountDlg *mdlg;
	mdlg=(CIPCountDlg *)GetParent()->GetParent();
	if(mdlg==NULL)
		return ;
	int nCount=m_ListRate.GetSelectedCount();
	for(int i=0;i<nCount;i++)
	{
		nItem=m_ListRate.GetNextItem(-1,LVIS_SELECTED);
	}
	if(nItem==-1)
		return;
	//获得文件的当前路径
	TCHAR pFileName[MAX_PATH];
	GetModuleFileName(NULL,pFileName,MAX_PATH);
	if(strchr(pFileName,'\\'))
		*strrchr(pFileName,'\\')='\0';
    strcat(pFileName,"\\FeeRate.dat");
	set.Open(pFileName);

///////////////////////////////////////////////////////////
	if(strcmp(m_strOType,m_strType)!=0)//是修改类型
	{
		while(!set.IsEOF())//判断将要添加的费率是否已存在
		{
	        if(strcmp(set.m_Type,m_strType)==0)
			{
		        AfxMessageBox("该类型费率已存在");
			
			    set.Close();
			    return;
			}
		    set.MoveNext();
		}
	}
////////////////////////////////////////////////////////////
	AfxMessageBox("操作成功!");
    set.MoveFirst();    
	set.Move(nItem);
	set.m_Type=m_strType;
	set.m_FeeRate=m_strFeeRate;
	set.m_OFeeRate=m_strOFeeRate;
	set.m_STLen=m_strSTLen;
	set.m_StartTLen=m_strStartTimeLen;
	set.Update();
	set.Close();
    m_ListRate.SetItemText(nItem,0,set.m_Type);
    m_ListRate.SetItemText(nItem,1,set.m_FeeRate);
    m_ListRate.SetItemText(nItem,2,set.m_OFeeRate);
	m_ListRate.SetItemText(nItem,3,set.m_STLen);
	m_ListRate.SetItemText(nItem,4,set.m_StartTLen);//for xiamen
	mdlg->SetInitRate();
	UpdateData(FALSE);	
}

void CFeeRatePage::OnFdel() 
{
	// TODO: Add your control notification handler code here
	if(nItem==-1)
		return;	
	CIPCountDlg *mdlg;
	mdlg=(CIPCountDlg *)GetParent()->GetParent();
	if(mdlg==NULL)
		return ;
	int nCount=m_ListRate.GetSelectedCount();
	for(int i=0;i<nCount;i++)
	{
		nItem=m_ListRate.GetNextItem(-1,LVIS_SELECTED);
	}

	//获得文件的当前路径
	TCHAR pFileName[MAX_PATH];
	GetModuleFileName(NULL,pFileName,MAX_PATH);
	if(strchr(pFileName,'\\'))
		*strrchr(pFileName,'\\')='\0';
    strcat(pFileName,"\\FeeRate.dat");
	set.Open(pFileName);
	set.Move(nItem);
	
	if (set.Delete())
	{
		m_ListRate.DeleteItem(nItem);
	}
	set.Close();
	mdlg->SetInitRate();//初始化变量(费率)	
}

void CFeeRatePage::OnClickListFeerate(NMHDR* pNMHDR, LRESULT* pResult) 
{
	// TODO: Add your control notification handler code here
	for(nItem=0;nItem<m_ListRate.GetItemCount();nItem++)
	{
		if(m_ListRate.GetItemState(nItem,LVIS_SELECTED)==LVIS_SELECTED)
		{
			m_strOType=m_strType=m_ListRate.GetItemText(nItem,0);
			m_strFeeRate=m_ListRate.GetItemText(nItem,1);
			m_strOFeeRate=m_ListRate.GetItemText(nItem,2);
			m_strSTLen=m_ListRate.GetItemText(nItem,3);
			m_strStartTimeLen=m_ListRate.GetItemText(nItem,4);


		}
	}

	UpdateData(FALSE);	
	*pResult = 0;
}

void CFeeRatePage::OnCancel() 
{
	// TODO: Add extra cleanup here
	CFeeRateSheet *frdlg;
	frdlg=(CFeeRateSheet *)GetParent();
	CPropertyPage::OnCancel();
	frdlg->DestroyWindow();
}

⌨️ 快捷键说明

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