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