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

📄 feeview.cpp

📁 VC6.0环境下编写的一个交换机计费程序。
💻 CPP
📖 第 1 页 / 共 5 页
字号:
// feeView.cpp : implementation of the CFeeView class
//

#include "stdafx.h"
#include "fee.h"

#include "feeDoc.h"
#include "feeView.h"

#include "telephoneQueryDlg.h"
#include "telephoneListDlg.h"
#include "telephoneAddDlg.h"
#include "lineQueryDlg.h"
#include "lineListDlg.h"
#include "lineManageAddDlg.h"
#include "blackAllRisingDlg.h"
#include "blackConditionRisingDlg.h"
#include "blackQueryConditionDlg.h"
#include "blackretrivalDlg.h"
#include "blackretriveconditionDlg.h"
#include "feedirectionAddDlg.h"
#include "feedirectionListDlg.h"
#include "feetimechangeDlg.h"
#include "feeTimechangemodifyDlg.h"
#include "feetimechangeaddDlg.h"
#include "feetelenumaddDlg.h"
#include "feetelelistDlg.h"
#include "feetelequeryDlg.h" 


#include "balancealltalkDlg.h"
#include "balanceconditionDlg.h"

#include "talkrecordqueryallDlg.h"
#include "talkrecorddetailDlg.h"

#include "printsetfontDlg.h"
#include "printsetmaginDlg.h"

#include "FontCombo.h"

#include "mdbdeleteDlg.h"
#include "mgmtaddDlg.h"
#include "mgmtlistDlg.h"

#include"reportcdrquery.h"

#include "MainFrm.h"

#include "winbase.h"

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

#include "feeext.h"

#include "commdlg.h"



/////////////////////////////////////////////////////////////////////////////
// CFeeView

IMPLEMENT_DYNCREATE(CFeeView, CListView)

BEGIN_MESSAGE_MAP(CFeeView, CListView)
	//{{AFX_MSG_MAP(CFeeView)
	ON_COMMAND(ID_REALTIMESHOW_START, OnRealtimeshowStart)
	ON_WM_TIMER()
	ON_COMMAND(ID_REALTIMESHOW_END, OnRealtimeshowEnd)
	ON_WM_LBUTTONDBLCLK()
	ON_COMMAND(ID_TELEPHONE_ADD, OnTelephoneAdd)
	ON_COMMAND(ID_TELEQUERY_ALL, OnTelequeryAll)
	ON_COMMAND(ID_TELEQUERY_CONDITION, OnTelequeryCondition)
	ON_COMMAND(ID_TELEPHONE_DELETE, OnTelephoneDelete)
	ON_COMMAND(ID_TELEPHONE_MODIFY, OnTelephoneModify)
	ON_NOTIFY_REFLECT(LVN_COLUMNCLICK, OnColumnclick)
	ON_COMMAND(ID_LINEQUERY_MAC, OnLinequeryMac)
	ON_COMMAND(ID_LINEQUERY_SUB, OnLinequerySub)
	ON_COMMAND(ID_LINEQUERY_ALL, OnLinequeryAll)
	ON_COMMAND(ID_LINEQUERY_CONDITION, OnLinequeryCondition)
	ON_COMMAND(ID_LINEMANAGE_ADD, OnLinemanageAdd)
	ON_COMMAND(ID_LINEMANAGE_MODIFY, OnLinemanageModify)
	ON_COMMAND(ID_LINEMANAGE_DELETE, OnLinemanageDelete)
	ON_COMMAND(ID_BLACKRISING_ALL, OnBlackrisingAll)
	ON_COMMAND(ID_BLACKRISING_CONDITION, OnBlackrisingCondition)
	ON_COMMAND(ID_BLACKQUERY_ALL, OnBlackqueryAll)
	ON_COMMAND(ID_BLACKQUERY_CONDITION, OnBlackqueryCondition)
	ON_COMMAND(ID_BLACKCLEAN_ALL, OnBlackcleanAll)
	ON_COMMAND(ID_FEE_SCAN, OnFeeScan)
	ON_COMMAND(ID_FEE_ADD, OnFeeAdd)
	ON_COMMAND(ID_FEE_MODIFY, OnFeeModify)
	ON_COMMAND(ID_FEE_DELETE, OnFeeDelete)
	ON_COMMAND(ID_ADDFEE_ADD, OnAddfeeAdd)
	ON_COMMAND(ID_ADDFEE_SCAN, OnAddfeeScan)
	ON_COMMAND(ID_TELEFEE_ADD, OnTelefeeAdd)
	ON_COMMAND(ID_TELEFEE_MODIFY, OnTelefeeModify)
	ON_COMMAND(ID_TELEFEE_DELETE, OnTelefeeDelete)
	ON_COMMAND(ID_ADDFEE_MODIFY, OnAddfeeModify)
	ON_COMMAND(ID_ADDFEE_DELETE, OnAddfeeDelete)
	ON_COMMAND(ID_BALANCE_ALL, OnBalanceAll)
	ON_COMMAND(ID_BALANCE_CONDITION, OnBalanceCondition)
	ON_COMMAND(ID_TALKRECORD_DETAIL, OnTalkrecordDetail)
	ON_COMMAND(ID_PRINT_SETPRINTER, OnPrintSetprinter)
	ON_COMMAND(ID_PRINT_SETFONT, OnPrintSetfont)
	ON_COMMAND(ID_PRINT_SETMARGIN, OnPrintSetmargin)
	ON_COMMAND(ID_MDB_BACKUP_SPC, OnMdbBackupSpc)
	ON_COMMAND(ID_MDB_BACKUP_JIFEI, OnMdbBackupJifei)
	ON_COMMAND(ID_MDB_RETRIVE_SPC, OnMdbRetriveSpc)
	ON_COMMAND(ID_MDB_RETRIVE_JIFEI, OnMdbRetriveJifei)
	ON_COMMAND(ID_MDB_DELETE_SPC, OnMdbDeleteSpc)
	ON_COMMAND(ID_MDB_DELETE_JIFEI, OnMdbDeleteJifei)
	ON_COMMAND(ID_MGMT_SCAN, OnMgmtScan)
	ON_COMMAND(ID_MGMT_ADD, OnMgmtAdd)
	ON_COMMAND(ID_MGMT_MODIFY, OnMgmtModify)
	ON_COMMAND(ID_MGMT_DELETE, OnMgmtDelete)
	ON_COMMAND(ID_BLACKCLEAN_CONDITION, OnBlackcleanCondition)
	ON_COMMAND(ID_FEETELEQUERY_ALL, OnFeetelequeryAll)
	ON_COMMAND(ID_FEETELEQUERY_CONDITION, OnFeetelequeryCondition)
	ON_COMMAND(ID_TALKRECORD_ALL, OnTalkrecordAll)
	ON_COMMAND(ID_PRINTFORMATFACE, OnPrintformatface)
	ON_COMMAND(ID_PRINTTABLE, OnPrinttable)
	ON_COMMAND(ID_PRINTMONTHFACE, OnPrintmonthface)
	ON_COMMAND(ID_REPORT_QUERY, OnReportQuery)
	ON_COMMAND(ID_REPORT_QUERY_AFTER_SET, OnReportQueryAfterSet)
	//}}AFX_MSG_MAP
	// Standard printing commands
	ON_COMMAND(ID_FILE_PRINT, CListView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_DIRECT, CListView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_PREVIEW, CListView::OnFilePrintPreview)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CFeeView construction/destruction

CFeeView::CFeeView()
{
	// TODO: add construction code here
	viewColumnNum=0;
	realtimeShowFlag=0;//D0:1callingnum,D1:1callingregist,D2:1callednum,D3:1calledregist,D4:1talkstart,D5:1 talkendstart,D6 TalkTime,D7:TalkFee
	actViewWindow=0;
	oldYear=0;
	oldMonth=0;
	oldDay=0;
	oldHour=0;
	oldMinute=0;
	oldSecond=0;
	showidx=0;
	telequeryconditionname="";
	telequeryconditionadr="";
	telequeryconditionnum="";
	telequeyconditionkind="";
	telequeryconditionstatus="";
	telequeryconditionbank="";
	telequeryconditonbankaccount="";
	linequerycondition_outLayoutLine="";
	linequerycondition_outLayoutColumn="";
	linequerycondition_inLayoutLine="";
	linequerycondition_inLayoutColumn="";
	linequerycondition_lineroom="";
	linequerycondition_lineroomKind="";
	linequerycondition_lineteleNum="";
	blacksubquerycondition_telenum="";
	blacksubquerycondition_starttime="";
	blacksubquerycondition_endtime="";
	blacksubquerycondition_talktime="";
	blacksubquerycondition_talkfee="";
	blacksubquerycondition_endtalktime="";
	blacksubquerycondition_endtalkfee="";

	feetelequerycondition_num="";
	feetelequerycondition_rent="";
	feetelequerycondition_rentper="";
	feetelequerycondition_startper="";
	feetelequerycondition_stepper="";
	feetelequerycondition_addper="";

}

CFeeView::~CFeeView()
{
}

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

	return CListView::PreCreateWindow(cs);
}

/////////////////////////////////////////////////////////////////////////////
// CFeeView drawing

void CFeeView::OnDraw(CDC* pDC)
{
	CFeeDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	// TODO: add draw code for native data here
}

void CFeeView::OnInitialUpdate()
{
	CListView::OnInitialUpdate();

	CMainFrame * m_Frm = (CMainFrame *)::AfxGetMainWnd();
	m_Frm->m_ListView = this;
	SetListCtrlStyle();
	// TODO: You may populate your ListView with items by directly accessing
	//  its list control through a call to GetListCtrl().
}

void CFeeView::SetListCtrlStyle()
{
	DWORD dwStyle = GetWindowLong(m_hWnd, GWL_STYLE); 
	dwStyle &= ~(LVS_TYPEMASK);
	dwStyle &= ~(LVS_EDITLABELS);
 
	// Make sure we have report view and send edit label messages.
    SetWindowLong( m_hWnd, GWL_STYLE, 
		dwStyle | LVS_REPORT|LVS_NOLABELWRAP|LVS_SHOWSELALWAYS);

	// Enable the full row selection and the drag drop of headers.
	DWORD styles = LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES;
	// Use macro since this is new and not in MFC.
	ListView_SetExtendedListViewStyleEx(m_hWnd, styles, styles );
}

/////////////////////////////////////////////////////////////////////////////
// CFeeView printing


/////////////////////////////////////////////////////////////////////////////
// CFeeView diagnostics

#ifdef _DEBUG
void CFeeView::AssertValid() const
{
	CListView::AssertValid();
}

void CFeeView::Dump(CDumpContext& dc) const
{
	CListView::Dump(dc);
}

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

/////////////////////////////////////////////////////////////////////////////
// CFeeView message handlers


void CFeeView::RemoveAllColumn()
{
	CListCtrl *ctl;
	ctl=&GetListCtrl();

	unsigned char i;
	i=0;
	while(viewColumnNum!=0)
	{
		ctl->DeleteColumn(0);
		viewColumnNum--;
		i++;
		if (i>100)
		{
			viewColumnNum=0;
		}
	}
} 


void CFeeView::RemoveAll() 
{
	// TODO: Add your command handler code here
	//增加值针变量指向ListView的CListCtrl
	CListCtrl *ctl;
	ctl=&GetListCtrl();
	//删除CListCtrl中的所有记录;
	ctl->DeleteAllItems();
}

void CFeeView::RemovePreTimer()
{
	if (actViewWindow==VIEWREALTIMESHOW)
		OnRealtimeshowEnd();
}

long  CFeeView::availdate(long lyear,long lmonth,long lday)
{
	long availflag;
	availflag=0;
	if (lyear<2000)
		availflag=1;
	if (lmonth<1||lmonth>12)
		availflag=1;
	if (lday<1||lday>31)
		availflag=1;
	if (lmonth==1||lmonth==3||lmonth==5||lmonth==7||lmonth==8||lmonth==10||lmonth==12)
	{
		if (lday>31)
		{
			availflag=1;
		}
	}
	if (lmonth==4||lmonth==6||lmonth==9||lmonth==11)
	{
		if (lday>30)
		{
			availflag=1;
		}
	}
	if(lmonth==2)
	{
		if ((lyear%4)==0)
		{
			if (lday>29)
			{
				availflag=1;
			}
		}
		else
		{
			if (lday>28)
			{
				availflag=1;
			}
		}
	}

	return availflag;
	
}

int CompareColumn=-1;
int CompareStyle=-1;

int CALLBACK CFeeView::ListViewCompareFunc(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort)
{
 // 得到排序方式
 
 // 得到两个列的排序信息
	CListCtrl *pListCtrl=(CListCtrl*)lParamSort;
	CString sz1,sz2;
	sz1=pListCtrl->GetItemText(lParam1,CompareColumn);
	sz2=pListCtrl->GetItemText(lParam2,CompareColumn);
 // 比较列的信息并返回比较结果。
 // 若为减序,则将比较结果乘上-1。
  return lstrcmp(sz1, sz2) * CompareStyle;
}


void CFeeView::OnColumnclick(NMHDR* pNMHDR, LRESULT* pResult) 
{
	NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
	// TODO: Add your control notification handler code here

	if (CompareColumn == pNMListView->iSubItem)
	{
		if (CompareStyle==1) CompareStyle=-1;
		else CompareStyle=1;
	}
	else
	{
		CompareStyle=1;
		CompareColumn=pNMListView->iSubItem;
	}
	CListCtrl* lc = &GetListCtrl();
	lc->SortItems(ListViewCompareFunc,(LPARAM) this);
	for(int i=0;i<lc->GetItemCount();i++)
	{
		lc->SetItemData(i,i);
	}

	*pResult = 0;
}


void CFeeView::OnLButtonDblClk(UINT nFlags, CPoint point) 
{
	CListView::OnLButtonDblClk(nFlags, point);
	// TODO: Add your message handler code here and/or call default
	if (actViewWindow==VIEWTELEQUERY)
	{
		teleList(point);					
	}
	if (actViewWindow==VIEWLINEQUERY)
	{
		lineList(point);					
	}
	if (actViewWindow==VIEWFEEDIRECTIONQUERY)
	{
		feedirectionlist(point);			
	}
	if (actViewWindow==VIEWFEETIMECHANGEQUERY)
	{
		feetimechagelist(point);			
	}
	if (actViewWindow==VIEWFEETELEQUERY)
	{
		feetelelist(point);			
	}
	if (actViewWindow==VIEWMGMTQUERY)
	{
		mgmtlist(point);
	}
}


void CFeeView::frontTimeIni(long year,long month,long day,long hour,long minute,long second)
{
	oldYear=year;
	oldMonth=month;
	oldDay=day;
	oldHour=hour;
	oldMinute=minute;
	oldSecond=second;
}


void CFeeView::OnRealtimeshowStart() 
{
	// TODO: Add your command handler code here
	CString strSql;
	CString strtemp;
	
	BOOL realtimestartCallingNumShow;
	BOOL realtimestartCalledNumShow;
	BOOL realtimestartTalkTimeShow;
	BOOL realtimestartTalkEndShow;
	BOOL realtimestartCallingRegistShow;
	BOOL realtimestartCalledRegistShow;
	BOOL realtimestartTalkFeeShow;

	realtimestartCallingNumShow=TRUE;
	realtimestartCalledNumShow=TRUE;
	realtimestartTalkTimeShow=TRUE;
	realtimestartTalkEndShow=TRUE;
	realtimestartCallingRegistShow=TRUE;
	realtimestartCalledRegistShow=TRUE;
	realtimestartTalkFeeShow=TRUE;
	realtimeShowFlag=0xEF;

	RemoveAllColumn();
	RemoveAll();

	CFeeApp* pApp=(CFeeApp *)AfxGetApp();
	CListCtrl *ctl;
	ctl=&GetListCtrl();
	//set front fee title
	ctl->InsertColumn(viewColumnNum,"Calling number",LVCFMT_LEFT,100);
	viewColumnNum++;
	ctl->InsertColumn(viewColumnNum,"Called number",LVCFMT_LEFT,100);
	viewColumnNum++;
	ctl->InsertColumn(viewColumnNum,"Call end time",LVCFMT_LEFT,150);
	viewColumnNum++;
	ctl->InsertColumn(viewColumnNum,"Call duration(s)",LVCFMT_LEFT,100);
	viewColumnNum++;
	ctl->InsertColumn(viewColumnNum,"Call fee(ks)",LVCFMT_LEFT,350);
	viewColumnNum++;
	actViewWindow=VIEWREALTIMESHOW;
	realtimeShowNum=0;

	CString stridx;

⌨️ 快捷键说明

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