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

📄 commisionview.cpp

📁 给公司开发的一个计算客户佣金的软件
💻 CPP
📖 第 1 页 / 共 2 页
字号:
// commisionView.cpp : implementation of the CCommisionView class
//

#include "stdafx.h"
#include "commision.h"

#include "commisionSet.h"
#include "commisionDoc.h"
#include "commisionView.h"

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

/////////////////////////////////////////////////////////////////////////////
// CCommisionView

IMPLEMENT_DYNCREATE(CCommisionView, CFormView)

BEGIN_MESSAGE_MAP(CCommisionView, CFormView)
	//{{AFX_MSG_MAP(CCommisionView)
	ON_COMMAND(ID_START_GO, OnStartGo)
	ON_COMMAND(ID_SET_PATH, OnSetPath)
	ON_COMMAND(ID_SET_AREA, OnSetArea)
	ON_COMMAND(ID_EDIT_USER, OnEditUser)
	ON_NOTIFY(NM_DBLCLK, IDC_LIST_USER, OnDblclkListUser)
	ON_BN_CLICKED(IDC_BUTTON_ADD_USER, OnButtonAddUser)
	ON_BN_CLICKED(ID_BUTTON_DEL_USER, OnButtonDelUser)
	ON_CBN_SELCHANGE(IDC_COMBO_FEE, OnSelchangeComboFee)
	ON_BN_CLICKED(IDC_BUTTON_ADD_FEE, OnButtonAddFee)
	ON_BN_CLICKED(IDC_BUTTON_DEL_FEE, OnButtonDelFee)
	ON_COMMAND(ID_STAT_FEE, OnStatFee)
	ON_CBN_SELCHANGE(IDC_COMBO_STAT_FEE, OnSelchangeComboStatFee)
	ON_BN_CLICKED(IDC_DEL_STAT_FEE, OnDelStatFee)
	ON_COMMAND(ID_HELP, OnHelp)
	//}}AFX_MSG_MAP
	// Standard printing commands
	ON_COMMAND(ID_FILE_PRINT, CFormView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_DIRECT, CFormView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_PREVIEW, CFormView::OnFilePrintPreview)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CCommisionView construction/destruction

CCommisionView::CCommisionView()
	: CFormView(CCommisionView::IDD)
{
	//{{AFX_DATA_INIT(CCommisionView)
	m_pSet = NULL;
	m_pUserSet = NULL;
	m_pParameterSet = NULL;
	//}}AFX_DATA_INIT
	// TODO: add construction code here

}

CCommisionView::~CCommisionView()
{
}

void CCommisionView::DoDataExchange(CDataExchange* pDX)
{
	CFormView::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CCommisionView)
	DDX_Control(pDX, IDC_EDIT_HELP, m_ctrlEdit_help);
	DDX_Control(pDX, IDC_COMBO_STAT_FEE, m_ctrlComboStatFee);
	DDX_Control(pDX, IDC_LIST_FEE, m_ctrlListFee);
	DDX_Control(pDX, IDC_DEL_STAT_FEE, m_ctrlButtonDelStatFee);
	DDX_Control(pDX, ID_STAT_FEE, m_ctrlButtonStatFee);
	DDX_Control(pDX, ID_START_GO, m_ctrlButtonStartGo);
	DDX_Control(pDX, ID_SET_PATH, m_ctrlButtonSetPath);
	DDX_Control(pDX, ID_SET_AREA, m_ctrlButtonSetArea);
	DDX_Control(pDX, ID_EDIT_USER, m_ctrlButtonEditUser);
	DDX_Control(pDX, IDC_STATIC_PREHEAD_FEE, m_ctrlStaticPreheadFee);
	DDX_Control(pDX, IDC_EDIT_PREHEAD_FEE, m_ctrlEditPreheadFee);
	DDX_Control(pDX, IDC_BUTTON_DEL_FEE, m_ctrlButtonDelFee);
	DDX_Control(pDX, IDC_BUTTON_ADD_FEE, m_ctrlButtonAddFee);
	DDX_Control(pDX, IDC_STATIC7_FEE, m_ctrlStatic7Fee);
	DDX_Control(pDX, IDC_STATIC6_FEE, m_ctrlStatic6Fee);
	DDX_Control(pDX, IDC_STATIC5_FEE, m_ctrlStatic5Fee);
	DDX_Control(pDX, IDC_STATIC4_FEE, m_ctrlStatic4Fee);
	DDX_Control(pDX, IDC_STATIC3_FEE, m_ctrlStatic3Fee);
	DDX_Control(pDX, IDC_STATIC2_FEE, m_ctrlStatic2Fee);
	DDX_Control(pDX, IDC_STATIC_FEE, m_ctrlStaticFee);
	DDX_Control(pDX, IDC_EDIT3_TIME_FEE, m_ctrlEdit3TimeFee);
	DDX_Control(pDX, IDC_EDIT3_FEE, m_ctrlEdit3Fee);
	DDX_Control(pDX, IDC_EDIT2_TIME_FEE, m_ctrlEdit2TimeFee);
	DDX_Control(pDX, IDC_EDIT2_FEE, m_ctrlEdit2Fee);
	DDX_Control(pDX, IDC_EDIT1_TIME_FEE, m_ctrlEdit1TimeFee);
	DDX_Control(pDX, IDC_EDIT1_FEE, m_ctrlEdit1Fee);
	DDX_Control(pDX, IDC_EDIT0_FEE, m_ctrlEdit0Fee);
	DDX_Control(pDX, IDC_COMBO_FEE, m_ctrlComboFee);
	DDX_Control(pDX, IDC_LIST_USER, m_ctrlListUser);
	DDX_Control(pDX, IDC_STATIC2_USER, m_ctrlStatic2User);
	DDX_Control(pDX, IDC_STATIC1_USER, m_ctrlStatic1User);
	DDX_Control(pDX, IDC_EDIT_TEL_USER, m_ctrlEditTelUser);
	DDX_Control(pDX, IDC_EDIT_USER, m_ctrlEditUser);
	DDX_Control(pDX, IDC_BUTTON_ADD_USER, m_ctrlButtonAddUser);
	DDX_Control(pDX, ID_BUTTON_DEL_USER, m_ctrlButtonDelUser);
	DDX_Control(pDX, IDC_STATIC_DIR, m_ctrlStaticDir);
	DDX_Control(pDX, IDC_EDIT_DIR, m_ctrlEditDir);
	//}}AFX_DATA_MAP
}

BOOL CCommisionView::PreCreateWindow(CREATESTRUCT& cs)
{
	// TODO: Modify the Window class or styles here by modifying
	//  the CREATESTRUCT cs

	return CFormView::PreCreateWindow(cs);
}

void CCommisionView::OnInitialUpdate()
{
	m_pDaoDB = &GetDocument()->m_DaoDB;
//	m_pDaoDB->Open("commission.mdb",FALSE,FALSE,";PWD=610dog");

	m_pSet = &GetDocument()->m_commisionSet;
	m_pUserSet = &GetDocument()->m_userSet;
	m_pParameterSet = &GetDocument()->m_parameterSet;
//	m_pDaoDB = m_pSet->m_pDatabase;
	m_pUserSet->m_pDatabase = m_pDaoDB;
	m_pParameterSet->m_pDatabase = m_pDaoDB;

	CFormView::OnInitialUpdate();
	GetParentFrame()->RecalcLayout();
	ResizeParentToFit();
	MoveDoDir();
	MoveDoUser();
	MoveDoFee();
	MoveDoStatFee();
	m_ctrlListUser.InsertColumn(0,"用户姓名",LVCFMT_LEFT,100,-1);
	m_ctrlListUser.InsertColumn(1,"号码段",LVCFMT_LEFT,480,-1);

	m_ctrlListFee.InsertColumn(0,"号码",LVCFMT_LEFT,100,-1);
	m_ctrlListFee.InsertColumn(1,"话费",LVCFMT_LEFT,300,-1);

	GetDocument()->SetTitle("进入操作");

	m_ctrlButtonSetArea.LoadBitmaps(IDB_BITMAP3,IDB_BITMAP4,IDB_BITMAP3);
//	m_ctrlButtonSetArea.SetTextAlignment(CTrackLookButton::AlignRight);
	m_ctrlButtonSetPath.LoadBitmaps(IDB_BITMAP3,IDB_BITMAP4,IDB_BITMAP3);
//	m_ctrlButtonSetPath.SetTextAlignment(CTrackLookButton::AlignRight);
	m_ctrlButtonEditUser.LoadBitmaps(IDB_BITMAP3,IDB_BITMAP4,IDB_BITMAP3);
//	m_ctrlButtonEditUser.SetTextAlignment(CTrackLookButton::AlignRight);
	m_ctrlButtonStartGo.LoadBitmaps(IDB_BITMAP3,IDB_BITMAP4,IDB_BITMAP3);
	m_ctrlButtonStartGo.SetTextAlignment(CTrackLookButton::AlignRight);
	m_ctrlButtonStatFee.LoadBitmaps(IDB_BITMAP3,IDB_BITMAP4,IDB_BITMAP3);
	m_ctrlButtonStatFee.SetTextAlignment(CTrackLookButton::AlignRight);
	m_ctrlButtonDelStatFee.LoadBitmaps(IDB_BITMAP3,IDB_BITMAP4,IDB_BITMAP3);
	m_ctrlButtonDelStatFee.SetTextAlignment(CTrackLookButton::AlignRight);

	m_ctrlStatic4Fee.SetWindowText("节假日");

	m_ctrlStaticFee.EnableWindow(FALSE);
	m_ctrlEdit0Fee.EnableWindow(FALSE);
	m_ctrlStatic2Fee.EnableWindow(FALSE);
	m_ctrlEdit1TimeFee.EnableWindow(FALSE);
	m_ctrlStatic5Fee.EnableWindow(FALSE);
	m_ctrlEdit1Fee.EnableWindow(FALSE);
	m_ctrlStatic3Fee.EnableWindow(FALSE);
	m_ctrlEdit2TimeFee.EnableWindow(FALSE);
	m_ctrlStatic6Fee.EnableWindow(FALSE);
	m_ctrlEdit2Fee.EnableWindow(FALSE);
	m_ctrlStatic7Fee.EnableWindow(FALSE);
	m_ctrlEdit3Fee.EnableWindow(FALSE);
	m_ctrlEdit3TimeFee.EnableWindow(FALSE);
	m_ctrlEditPreheadFee.EnableWindow(FALSE);

	OnHelp();
	m_ctrlEdit_help.SetWindowText("\
操作指南:	17911客户佣金统计						   \
1、设置用户属性:设置用户姓名(唯一)及经销的号码,号码之间用逗号隔开		   \
2、 将所有的原始记费文件放在同一个目录中,例如:c:\\file				   \
3、如原始文件大于1500k,请采用剪贴的方式,分成多个小于1500k文件		           \
5、设置路径:将路径全地址输入							   \
6、开始处理:系统将路径下的所有记费文件自动处理					   \
7、处理过程中,如文件大于1500k,只需将该文件分解后处理,其他文件不能再处理	   \
8、地区客户统计:察看所有客户的话费。");
	

}

/////////////////////////////////////////////////////////////////////////////
// CCommisionView printing

BOOL CCommisionView::OnPreparePrinting(CPrintInfo* pInfo)
{
	// default preparation
	return DoPreparePrinting(pInfo);
}

void CCommisionView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
	// TODO: add extra initialization before printing
}

void CCommisionView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
	// TODO: add cleanup after printing
}

/////////////////////////////////////////////////////////////////////////////
// CCommisionView diagnostics

#ifdef _DEBUG
void CCommisionView::AssertValid() const
{
	CFormView::AssertValid();
}

void CCommisionView::Dump(CDumpContext& dc) const
{
	CFormView::Dump(dc);
}

CCommisionDoc* CCommisionView::GetDocument() // non-debug version is inline
{
	ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CCommisionDoc)));
	return (CCommisionDoc*)m_pDocument;
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CCommisionView database support
CRecordset* CCommisionView::OnGetRecordset()
{
	return m_pSet;
}


/////////////////////////////////////////////////////////////////////////////
// CCommisionView message handlers

void CCommisionView::OnStartGo() 
{
	// TODO: Add your command handler code here
	int len;
	int i = 0;
	CString billfile;
	CString strSQL;

	GetDocument()->SetTitle("正在处理记费文件");

	m_ctrlEditDir.GetWindowText(m_strCurDia);
	if(m_strCurDia.IsEmpty())
	{
		MessageBox("请设置原始文件路径");
		return;
	}
	len = m_strCurDia.GetLength();

	if(m_strCurDia.GetAt(len - 1) != '\\' )
		m_strCurDia.Insert(len, '\\');

/*	while(i < m_strCurDia.GetLength())
	{
		if(m_strCurDia.GetAt(i) == '\\')
		{
			m_strCurDia.Insert(i, '\\');
			i += 2;
		}
		else
			i++;
	}
*/
	billfile = m_strCurDia;
	billfile.Insert(1000,"*.txt");
	CFileFind finder;
	BOOL bWorking = finder.FindFile(billfile);

	while (bWorking)
	{
		bWorking = finder.FindNextFile();
		billfile = finder.GetFileName();
		translate(billfile);
	}
	finder.Close();
}

void CCommisionView::OnSetPath() 
{
	// TODO: Add your command handler code here
	GetDocument()->SetTitle("设置原始记费文件路径");
	MoveDoFee();
	MoveDoUser();
	MoveDoStatFee();
	MoveDoHelp();
	
	m_ctrlStaticDir.MoveWindow(20,100,180,24);
	m_ctrlEditDir.MoveWindow(210, 100, 200, 24);
}

void CCommisionView::OnSetArea() 
{
	// TODO: Add your command handler code here
	GetDocument()->SetTitle("设置地区区号、优费时段、费率");
	MoveDoDir();
	MoveDoUser();
	MoveDoStatFee();
	MoveDoHelp();

	m_ctrlComboFee.SetCurSel(-1);
	m_ctrlComboFee.SetWindowText("请选择地区");
	m_ctrlComboFee.MoveWindow(200,80,160,290);

	m_ctrlStaticFee.MoveWindow(250,140,150,20);
	m_ctrlEdit0Fee.MoveWindow(400,140,100,20);
	
	m_ctrlStatic2Fee.MoveWindow(50,170,100,20);
	m_ctrlEdit1TimeFee.MoveWindow(130,170,100,20);
	m_ctrlStatic5Fee.MoveWindow(250,170,150,20);
	m_ctrlEdit1Fee.MoveWindow(400,170,100,20);
	
	m_ctrlStatic3Fee.MoveWindow(50,200,100,20);
	m_ctrlEdit2TimeFee.MoveWindow(130,200,100,20);
	m_ctrlStatic6Fee.MoveWindow(250,200,150,20);
	m_ctrlEdit2Fee.MoveWindow(400,200,100,20);

	m_ctrlStatic4Fee.MoveWindow(50,230,100,20);
	m_ctrlEdit3TimeFee.MoveWindow(130,230,100,20);
	m_ctrlStatic7Fee.MoveWindow(250,230,150,20);
	m_ctrlEdit3Fee.MoveWindow(400,230,100,20);
	
	m_ctrlStaticPreheadFee.MoveWindow(100,280,120,20);
	m_ctrlEditPreheadFee.MoveWindow(260,280,200,20);

	m_ctrlButtonAddFee.MoveWindow(100,310,120,20);
	m_ctrlButtonDelFee.MoveWindow(260,310,80,20);
	
}

void CCommisionView::OnEditUser() 
{
	// TODO: Add your command handler code here
	GetDocument()->SetTitle("设置县区、对应号段");
	MoveDoDir();
	MoveDoFee();
	MoveDoStatFee();
	MoveDoHelp();

	m_ctrlStatic1User.MoveWindow(20,80, 60,24);
	m_ctrlStatic2User.MoveWindow(20,120, 60,24);
	m_ctrlEditUser.MoveWindow(90,80,120,24);
	m_ctrlEditTelUser.MoveWindow(90,120,540,24);
	m_ctrlButtonAddUser.MoveWindow(230,80,120,24);
	m_ctrlButtonDelUser.MoveWindow(380,80,70,24);
	m_ctrlListUser.MoveWindow(20,160,610,260);

	CString str;
	CString strSQL;

	strSQL = _T("SELECT *  FROM [username]");

	if(m_pUserSet->IsOpen())
		m_pUserSet->Close();
	m_pUserSet->Open(CRecordset::snapshot, strSQL);
	if(m_pUserSet->IsBOF() && m_pUserSet->IsEOF())
		return;

	m_ctrlListUser.DeleteAllItems();
	int nRow = 0;
	m_pUserSet->MoveFirst();
	while(!m_pUserSet->IsEOF())
 	{
		m_ctrlListUser.InsertItem(nRow, m_pUserSet->m_username);
		m_ctrlListUser.SetItem(nRow, 1, LVIF_TEXT,	m_pUserSet->m_telephone, -1, 0, 0, 0);

		nRow++;
		m_pUserSet->MoveNext();
	}
}

void CCommisionView::OnDblclkListUser(NMHDR* /*pNMHDR*/, LRESULT* pResult) 
{
	// TODO: Add your control notification handler code here
	int nItem;
	POSITION pos = m_ctrlListUser.GetFirstSelectedItemPosition();
	if (pos != NULL)
	{
	   while (pos)
	   {
			nItem = m_ctrlListUser.GetNextSelectedItem(pos);
	   }
	}
	else
	{
		*pResult = 0;
		return;
	}

	m_ctrlEditUser.SetWindowText(m_ctrlListUser.GetItemText(nItem,0));
	m_ctrlEditTelUser.SetWindowText(m_ctrlListUser.GetItemText(nItem,1));
	
	*pResult = 0;
}

void CCommisionView::OnButtonAddUser() 
{
	// TODO: Add your control notification handler code here
	CString name, tel;

	m_ctrlEditUser.GetWindowText(name);
	m_ctrlEditTelUser.GetWindowText(tel);
	
	if(name.IsEmpty() || tel.IsEmpty())
	{
		MessageBox("请填写完全");
		return;
	}

	if(getUserByName(name))
		m_pUserSet->Edit();
	else
		m_pUserSet->AddNew( );
	m_pUserSet->m_username = name;
	m_pUserSet->m_telephone = tel;
	m_pUserSet->Update( );	

	m_ctrlEditUser.SetWindowText("");
	m_ctrlEditTelUser.SetWindowText("");

	m_ctrlListUser.DeleteAllItems();
	CString str;
	CString strSQL;

	strSQL = _T("SELECT *  FROM [username]");

	if(m_pUserSet->IsOpen())
		m_pUserSet->Close();
	m_pUserSet->Open(CRecordset::snapshot, strSQL);
	if(m_pUserSet->IsBOF() && m_pUserSet->IsEOF())
		return;

	int nRow = 0;
	m_pUserSet->MoveFirst();
	while(!m_pUserSet->IsEOF())
 	{
		m_ctrlListUser.InsertItem(nRow, m_pUserSet->m_username);
		m_ctrlListUser.SetItem(nRow, 1, LVIF_TEXT,	m_pUserSet->m_telephone, -1, 0, 0, 0);

		nRow++;
		m_pUserSet->MoveNext();
	}	
}

void CCommisionView::OnButtonDelUser() 
{
	// TODO: Add your control notification handler code here
	CString name;

	m_ctrlEditUser.GetWindowText(name);
	if(name.IsEmpty())
	{
		MessageBox("请填写完全");
		return;
	}
	
	CString str = "是否删除该用户";
	str += name;
	int i = MessageBox(str, "确认删除", MB_OKCANCEL);
	if(i != IDOK)
		return;

	CString strSQL;
	strSQL.Format("delete FROM [username] WHERE [username] = '%s'",name);

	if(m_pUserSet->IsOpen())
		m_pUserSet->Close();
	m_pUserSet->m_pDatabase->ExecuteSQL(strSQL);

	m_ctrlEditUser.SetWindowText("");

	m_ctrlListUser.DeleteAllItems();

	strSQL = _T("SELECT *  FROM [username]");

	if(m_pUserSet->IsOpen())
		m_pUserSet->Close();
	m_pUserSet->Open(CRecordset::snapshot, strSQL);
	if(m_pUserSet->IsBOF() && m_pUserSet->IsEOF())
		return;

	int nRow = 0;
	m_pUserSet->MoveFirst();
	while(!m_pUserSet->IsEOF())
 	{
		m_ctrlListUser.InsertItem(nRow, m_pUserSet->m_username);
		m_ctrlListUser.SetItem(nRow, 1, LVIF_TEXT,	m_pUserSet->m_telephone, -1, 0, 0, 0);

		nRow++;
		m_pUserSet->MoveNext();
	}	

}

bool CCommisionView::getUserByName(CString name)
{
	CString strSQL;
	
	strSQL.Format("select * FROM [username] WHERE [username] = '%s'", name);

	if(m_pUserSet->IsOpen())
		m_pUserSet->Close();
	
	m_pUserSet->Open(CRecordset::snapshot, strSQL);

	if(m_pUserSet->IsBOF() && m_pUserSet->IsEOF())
		return FALSE;

	return TRUE;
}

void CCommisionView::OnSelchangeComboFee() 
{
	// TODO: Add your control notification handler code here
	int count;
	count = m_ctrlComboFee.GetCurSel();

	if(count == 0)
	{
		m_ctrlEdit3TimeFee.EnableWindow(TRUE);
		m_ctrlEditPreheadFee.EnableWindow(FALSE);
	} 
	else// if(count == 3)
	{
		m_ctrlEditPreheadFee.EnableWindow(TRUE);
		m_ctrlEdit3TimeFee.EnableWindow(FALSE);
	}
	m_ctrlEditPreheadFee.SetWindowText("");
	m_ctrlEdit0Fee.SetWindowText("");
	m_ctrlEdit1TimeFee.SetWindowText("");
	m_ctrlEdit1Fee.SetWindowText("");
	m_ctrlEdit2TimeFee.SetWindowText("");
	m_ctrlEdit2Fee.SetWindowText("");
	m_ctrlEdit3TimeFee.SetWindowText("");
	m_ctrlEdit3Fee.SetWindowText("");
	m_ctrlComboFee.SetWindowText("");

	CString strSQL;

	strSQL.Format("SELECT *  FROM [parameter] where [item] = '%d'", count);

⌨️ 快捷键说明

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