📄 commisionview.cpp
字号:
// 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 + -