www.pudn.com > stocksoft.rar > Accobook_CEView.cpp


// Accobook_CEView.cpp : implementation of the CAccobook_CEView class 
// 
 
#include "stdafx.h" 
#include "Accobook_CE.h" 
#include "Accobook_CEDoc.h" 
#include "Accobook_CEView.h" 
#include "FloatEdit2.h" 
#include "SearchDlg.h" 
#include "CalcDlg.h" 
#include "KXianTu.h" 
 
#include "DBFEngine.h" 
#include "MyEdit.h" 
 
#ifdef _DEBUG 
#define new DEBUG_NEW 
#undef THIS_FILE 
static char THIS_FILE[] = __FILE__; 
#endif 
 
int g_nYear1,g_nMonth1,g_nDay1,g_nYear2,g_nMonth2,g_nDay2,g_nDays; 
CTime g_time1,g_time2; 
extern float g_nMax; 
extern float g_nMin; 
CDWordArray g_YearArray,g_MonthArray,g_DayArray; 
CStringArray g_ZuiGaoJiaArray; 
CStringArray g_ZuiDiJiaArray; 
CStringArray g_KaiPanJiaArray; 
CStringArray g_ShouPanJiaArray; 
 
CFloatEdit2* g_pEditShuE; 
CFloatEdit2* g_pEditRiQi; 
CMyEdit* g_pEditBeiZhu; 
 
BOOL g_bShouRu ; 
BOOL g_bZhiChu ; 
CString g_sBeiZhu ; 
CString g_sDaiMa,g_sJiaGe,g_sKaiPanJia,g_sShouPanJia,g_sZuiGaoJia,g_sZuiDiJia; 
CString g_sMingChen; 
 
CWordArray g_wStationsArray; 
int m_nIsListAll=1; 
int m_nStepNum=0; 
int g_nTotalRecordNum=0; 
int g_nTotalFieldNum; 
PBYTE g_pFieldBuf=new BYTE[255+1]; 
CDbFile g_dbf; 
CListCtrlEx	m_listctrl; 
int g_nHitIndex=-1; 
///////////////////////////////////////////////////////////////////////////// 
// CAccobook_CEView 
BOOL CMyTime::YearMonthDayIn(CMyTime t1,CMyTime t2,CMyTime t) 
{ 
double y1=t1.m_dYear; 
double m1=t1.m_dMonth; 
double d1=t1.m_dDay; 
double y2=t2.m_dYear; 
double m2=t2.m_dMonth; 
double d2=t2.m_dDay; 
double y=m_dYear; 
double m=m_dMonth; 
double d=m_dDay; 
if(y>y1&&y=y2 
	{	 
	if(y==y1&&y<=y2) 
		{ 
		if(m>m1) 
			return 1; 
		else 
			{ 
			if(m==m1&&d>=d1) 
				return 1; 
			else 
				return 0; 
			} 
		} 
	else 
		{ 
		if(y==y2&&y>=y1) 
			{ 
			if(m-1) 
	{ 
	sRtn=s.Left(pos); 
	s=s.Right(s.GetLength()-pos-1); 
	} 
else 
	{ 
	pos=s.Find(_T("。")); 
	if(pos>-1) 
		{ 
		sRtn=s.Left(pos); 
		s=s.Right(s.GetLength()-pos-1); 
		} 
	else 
		{ 
		sRtn=s; 
		s=""; 
		} 
	} 
return sRtn; 
} 
 
CMyTime::CMyTime() 
{ 
m_dYear=0; 
m_dMonth=0; 
m_dDay=0; 
} 
 
CMyTime::CMyTime(double& y,double& m,double& d) 
{ 
m_dYear=y; 
m_dMonth=m; 
m_dDay=d; 
} 
 
CMyTime::CMyTime(CString& s) 
{ 
TCHAR  *stopstring; 
int pos=s.Find(_T(".")); 
CString tempYear=GetStrBeforePoint(s); 
CString tempMonth=GetStrBeforePoint(s); 
CString tempDay=GetStrBeforePoint(s); 
m_dYear=_tcstod(tempYear,&stopstring); 
m_dMonth=_tcstod(tempMonth,&stopstring); 
m_dDay=_tcstod(tempDay,&stopstring); 
} 
	 
CMyTime::~CMyTime() 
{ 
} 
 
IMPLEMENT_DYNCREATE(CAccobook_CEView, CFormView) 
 
BEGIN_MESSAGE_MAP(CAccobook_CEView, CFormView) 
	//{{AFX_MSG_MAP(CAccobook_CEView) 
	ON_BN_CLICKED(IDC_BUTTON1, OnButton1) 
	ON_BN_CLICKED(IDC_BUTTON2, OnButton2) 
	ON_BN_CLICKED(IDC_BUTTON4, OnButton4) 
	ON_BN_CLICKED(IDC_CHECK1, OnCheck1) 
	ON_BN_CLICKED(IDC_CHECK2, OnCheck2) 
	ON_BN_CLICKED(IDC_BUTTON_PREV, OnButtonPrev) 
	ON_BN_CLICKED(IDC_BUTTON_NEXT, OnButtonNext) 
	ON_COMMAND(ID_FILE_DELETEALL, OnFileDeleteall) 
	ON_BN_CLICKED(IDC_BUTTON_LISTALL, OnButtonListall) 
	ON_BN_CLICKED(IDC_BUTTON_TEST, OnButtonTest) 
	ON_BN_CLICKED(IDC_BUTTON_DELETE, OnButtonDelete) 
	ON_BN_CLICKED(IDC_BUTTON_MODIFY, OnButtonModify) 
	ON_BN_CLICKED(IDC_BUTTON_STATISTICS, OnButtonStatistics) 
	ON_BN_CLICKED(IDC_BUTTON_CALC, OnButtonCalc) 
	ON_BN_CLICKED(IDC_BUTTON_K, OnButtonK) 
	//}}AFX_MSG_MAP 
END_MESSAGE_MAP() 
 
///////////////////////////////////////////////////////////////////////////// 
// CAccobook_CEView construction/destruction 
 
CAccobook_CEView::CAccobook_CEView() 
	: CFormView(CAccobook_CEView::IDD) 
{ 
	//{{AFX_DATA_INIT(CAccobook_CEView) 
	m_bShouRu = TRUE; 
	m_bZhiChu = FALSE; 
	m_s2 = _T(""); 
	m_s1 = _T(""); 
	m_dIncome = 0.0; 
	m_dOutcome = 0.0; 
	m_dYingyu = 0.0; 
	m_sDaiMa = _T(""); 
	m_sMingChen = _T(""); 
	m_sJiaGe = _T(""); 
	m_sKaiPanJia = _T(""); 
	m_sShouPanJia = _T(""); 
	m_sZuiDiJia = _T(""); 
	m_sZuiGaoJia = _T(""); 
	//}}AFX_DATA_INIT 
	// TODO: add construction code here 
p_SearchDlg=new CSearchDlg(this); 
p_CalcDlg=new CCalcDlg(this); 
p_KXianTu=new CKXianTu(this); 
} 
 
CAccobook_CEView::~CAccobook_CEView() 
{ 
	delete p_SearchDlg; 
	delete p_CalcDlg; 
	delete p_KXianTu; 
} 
 
void CAccobook_CEView::DoDataExchange(CDataExchange* pDX) 
{ 
	CFormView::DoDataExchange(pDX); 
	//{{AFX_DATA_MAP(CAccobook_CEView) 
	DDX_Control(pDX, IDC_EDIT2, m_BeiZhuCtrl); 
	DDX_Control(pDX, IDC_EDIT4, m_RiQiCtrl); 
	DDX_Control(pDX, IDC_EDIT1, m_ShuECtrl); 
	DDX_Check(pDX, IDC_CHECK1, m_bShouRu); 
	DDX_Check(pDX, IDC_CHECK2, m_bZhiChu); 
	DDX_Text(pDX, IDC_STATIC_TOTAL, m_s2); 
	DDX_Text(pDX, IDC_STATIC_CURRENT, m_s1); 
	DDX_Text(pDX, IDC_EDIT_INCOME, m_dIncome); 
	DDX_Text(pDX, IDC_EDIT_OUTCOME, m_dOutcome); 
	DDX_Text(pDX, IDC_EDIT_YINGYU, m_dYingyu); 
	DDX_Text(pDX, IDC_EDIT_DAIMA, m_sDaiMa); 
	DDV_MaxChars(pDX, m_sDaiMa, 50); 
	DDX_Text(pDX, IDC_EDIT_MINGCHEN, m_sMingChen); 
	DDV_MaxChars(pDX, m_sMingChen, 254); 
	DDX_Text(pDX, IDC_EDIT_JIAGE, m_sJiaGe); 
	DDX_Control(pDX, IDC_LIST1, m_listctrl); 
	DDX_Text(pDX, IDC_EDIT_KAIPAN, m_sKaiPanJia); 
	DDX_Text(pDX, IDC_EDIT_SHOUPAN, m_sShouPanJia); 
	DDX_Text(pDX, IDC_EDIT_ZUIDI, m_sZuiDiJia); 
	DDX_Text(pDX, IDC_EDIT_ZUIGAO, m_sZuiGaoJia); 
	//}}AFX_DATA_MAP 
} 
 
BOOL CAccobook_CEView::PreCreateWindow(CREATESTRUCT& cs) 
{ 
	// TODO: Modify the Window class or styles here by modifying 
	//  the CREATESTRUCT cs 
	return CFormView::PreCreateWindow(cs); 
	 
} 
 
///////////////////////////////////////////////////////////////////////////// 
// CAccobook_CEView diagnostics 
 
#ifdef _DEBUG 
void CAccobook_CEView::AssertValid() const 
{ 
	CFormView::AssertValid(); 
} 
 
void CAccobook_CEView::Dump(CDumpContext& dc) const 
{ 
	CFormView::Dump(dc); 
} 
 
CAccobook_CEDoc* CAccobook_CEView::GetDocument() // non-debug version is inline 
{ 
	ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CAccobook_CEDoc))); 
	return (CAccobook_CEDoc*)m_pDocument; 
} 
#endif //_DEBUG 
 
///////////////////////////////////////////////////////////////////////////// 
// CAccobook_CEView message handlers 
 
void CAccobook_CEView::OnInitialUpdate()  
{ 
	CFormView::OnInitialUpdate(); 
GetDlgItem(IDC_BUTTON_PREV)->EnableWindow(FALSE); 
GetDlgItem(IDC_BUTTON_NEXT)->EnableWindow(FALSE); 
GetDlgItem(IDC_BUTTON_LISTALL)->SetWindowText(_T("全"));//显示全部	 
GetDlgItem(IDC_BUTTON_PREV)->SetWindowText(_T("上10条"));	 
GetDlgItem(IDC_BUTTON_NEXT)->SetWindowText(_T("下10条"));	 
GetDlgItem(IDC_STATIC_TOTAL)->SetWindowText(_T(""));	 
GetDlgItem(IDC_STATIC_CURRENT)->SetWindowText(_T(""));	 
GetDlgItem(IDC_STATIC_INCOME)->SetWindowText(_T("卖:"));//总收入	 
GetDlgItem(IDC_STATIC_OUTCOME)->SetWindowText(_T("买:"));//总支出	 
GetDlgItem(IDC_STATIC_YINGYU)->SetWindowText(_T("余:"));//盈余	 
GetDlgItem(IDC_STATIC1)->SetWindowText(_T("数量:"));	 
GetDlgItem(IDC_STATIC2)->SetWindowText(_T("备注:"));	 
GetDlgItem(IDC_STATIC4)->SetWindowText(_T("日期:"));	 
GetDlgItem(IDC_CHECK1)->SetWindowText(_T("买"));//入"));	 
GetDlgItem(IDC_CHECK2)->SetWindowText(_T("卖"));//出"));	 
//GetDlgItem(IDC_CHECK_MODIFY)->SetWindowText(_T("允许修改"));	 
GetDlgItem(IDC_BUTTON1)->SetWindowText(_T("加"));//添加	 
GetDlgItem(IDC_BUTTON_DELETE)->SetWindowText(_T("删"));//除	 
GetDlgItem(IDC_BUTTON_MODIFY)->SetWindowText(_T("改"));//修 
GetDlgItem(IDC_BUTTON2)->SetWindowText(_T("清"));//屏 
GetDlgItem(IDC_BUTTON4)->SetWindowText(_T("查"));//询	 
GetDlgItem(IDC_BUTTON_STATISTICS)->SetWindowText(_T("统计!"));	 
CFloatEdit2* pWnd=(CFloatEdit2*)GetDlgItem(IDC_EDIT1); 
g_pEditShuE=pWnd; 
 
pWnd=(CFloatEdit2*)GetDlgItem(IDC_EDIT4); 
g_pEditRiQi=pWnd; 
 
g_pEditBeiZhu=(CMyEdit*)GetDlgItem(IDC_EDIT2); 
/////////////////////////////////////////////////////////////////////// 
m_listctrl.SetColumnWidth(-1,-3); 
m_listctrl.AddColumn(_T("日期"),0); 
m_listctrl.SetColumnWidth(0,68); 
m_listctrl.AddColumn(_T("买/卖"),1); 
m_listctrl.SetColumnWidth(1,38); 
m_listctrl.AddColumn(_T("数量(股)"),2); 
m_listctrl.SetColumnWidth(2,68); 
m_listctrl.AddColumn(_T("价格(元/股)"),3); 
m_listctrl.SetColumnWidth(3,78); 
m_listctrl.AddColumn(_T("代码"),4); 
m_listctrl.SetColumnWidth(4,58); 
m_listctrl.AddColumn(_T("股名"),5); 
m_listctrl.SetColumnWidth(5,254); 
m_listctrl.AddColumn(_T("备注"),6); 
m_listctrl.SetColumnWidth(6,254); 
 
m_listctrl.AddColumn(_T("开盘价"),7); 
m_listctrl.SetColumnWidth(7,68); 
m_listctrl.AddColumn(_T("收盘价"),8); 
m_listctrl.SetColumnWidth(8,68); 
m_listctrl.AddColumn(_T("最高价"),9); 
m_listctrl.SetColumnWidth(9,68); 
m_listctrl.AddColumn(_T("最低价"),10); 
m_listctrl.SetColumnWidth(10,68); 
CString sInstallDir=g_dbf.GetExeDir(); 
 
TCHAR cc[200]; 
wsprintf(cc,_T("%s"),sInstallDir+_T("\\StockStar.tdf\0")); 
	//AfxMessageBox(cc); 
if(!g_dbf.OpenDbf(cc)) 
//	if(!g_dbf.OpenDbf(_T("\\My Documents\\StockStar.tdf\0"))) 
		{ 
		AfxMessageBox(_T("Cannot open StockStar.tdf file!")); 
		SendMessage(WM_CLOSE); 
		return; 
		}; 
 	if(!g_dbf.InitHeadStructure()) 
		{ 
		AfxMessageBox(_T("Cannot read StockStar.tdf fileheader!")); 
		SendMessage(WM_CLOSE); 
		return; 
		}; 
	g_nTotalFieldNum=g_dbf.GetFieldCount(); 
	 
	ShowAll(); 
 
 
SYSTEMTIME st; 
::GetSystemTime(&st); 
TCHAR sYear[10],sMonth[10],sDay[10]; 
wsprintf(sYear,_T("%d"),st.wYear); 
wsprintf(sMonth,_T("%d"),st.wMonth); 
wsprintf(sDay,_T("%d"),st.wDay); 
CString s=sYear; 
s+=_T("."); 
s+=sMonth; 
s+=_T("."); 
s+=sDay; 
s+=_T("."); 
g_pEditRiQi->SetWindowText(s); 
} 
 
void CAccobook_CEView::ShowAll() 
{ 
OnButton2(); 
m_nIsListAll=1; 
 
GetDlgItem(IDC_BUTTON_PREV)->EnableWindow(0); 
GetDlgItem(IDC_BUTTON_NEXT)->EnableWindow(0); 
//GetDlgItem(IDC_BUTTON_ListAll)->EnableWindow(0); 
 
m_listctrl.DeleteAllItems(); 
			 
	int i ,j ,len; 
	CString s; 
	TCHAR cc3[30]; 
	m_nStepNum=0;	 
	g_nTotalRecordNum=g_dbf.GetRecordCount(); 
	wsprintf(cc3,_T("%d"),g_nTotalRecordNum); 
	m_s2=cc3; 
	int total=min(10,g_nTotalRecordNum); 
	if(total<10) 
		{ 
		m_s1=_T("1~")+m_s2; 
		} 
	else 
		m_s1=_T("1~10"); 
	for(i=0;iEnableWindow(FALSE); 
	GetDlgItem(IDC_BUTTON_NEXT)->EnableWindow(TRUE); 
	UpdateData(FALSE); 
} 
 
void CAccobook_CEView::OnButton2() //清除 
{ 
g_nHitIndex=-1; 
UpdateData(0);	 
g_pEditShuE->SetWindowText(_T(""));	 
g_pEditBeiZhu->SetWindowText(_T(""));	 
} 
 
void CAccobook_CEView::OnButton4() //查询 
{ 
	p_SearchDlg->DoModal(); 
} 
 
void CAccobook_CEView::OnCheck1() //收入 
{ 
	UpdateData();	 
	if(m_bShouRu) 
		m_bZhiChu=0; 
	else 
		m_bZhiChu=1; 
	UpdateData(0);	 
} 
	 
void CAccobook_CEView::OnCheck2() //支出 
{ 
	UpdateData();	 
	if(m_bZhiChu) 
		m_bShouRu=0; 
	else 
		m_bShouRu=1; 
	UpdateData(0);	 
} 
 
 
void CAccobook_CEView::OnButtonListall()  
{ 
ShowAll(); 
} 
 
void CAccobook_CEView::OnButtonNext()  
{ 
if(m_nStepNum>(g_nTotalRecordNum/10-1)) 
	{ 
	GetDlgItem(IDC_BUTTON_NEXT)->EnableWindow(FALSE); 
	return; 
	} 
m_listctrl.DeleteAllItems(); 
UpdateData(); 
 
GetDlgItem(IDC_BUTTON_PREV)->EnableWindow(FALSE); 
GetDlgItem(IDC_BUTTON_NEXT)->EnableWindow(FALSE); 
//GetDlgItem(IDC_BUTTON_ListAll)->EnableWindow(FALSE); 
m_nStepNum++; 
int i; 
int j; 
int start=10*m_nStepNum; 
int end=min(start+10,g_nTotalRecordNum); 
TCHAR cc1[10],cc2[10]; 
wsprintf(cc1,_T("%d"),start+1); 
wsprintf(cc2,_T("%d"),end); 
m_s1=cc1; 
m_s1+=_T("~"); 
m_s1+=cc2; 
int len; 
CString s; 
if(m_nIsListAll) 
	{ 
	for(i=start;i(g_nTotalRecordNum/10-1)) 
	{ 
	GetDlgItem(IDC_BUTTON_NEXT)->EnableWindow(FALSE); 
	} 
else 
	GetDlgItem(IDC_BUTTON_NEXT)->EnableWindow(1); 
 
GetDlgItem(IDC_BUTTON_PREV)->EnableWindow(1); 
UpdateData(FALSE); 
} 
 
void CAccobook_CEView::OnButtonPrev()  
{ 
if(m_nStepNum<1) 
	{ 
	GetDlgItem(IDC_BUTTON_PREV)->EnableWindow(FALSE); 
	return; 
	} 
m_listctrl.DeleteAllItems(); 
UpdateData(); 
 
GetDlgItem(IDC_BUTTON_PREV)->EnableWindow(FALSE); 
GetDlgItem(IDC_BUTTON_NEXT)->EnableWindow(FALSE); 
m_nStepNum--; 
int i; 
int j; 
int start=max(10*m_nStepNum,0); 
int end=min(start+10,g_nTotalRecordNum); 
 
TCHAR cc1[10],cc2[10]; 
wsprintf(cc1,_T("%d"),start+1); 
wsprintf(cc2,_T("%d"),end); 
m_s1=cc1; 
m_s1+=_T("~"); 
m_s1+=cc2; 
int len; 
CString s; 
if(m_nIsListAll) 
	{ 
	for(i=start;iEnableWindow(FALSE); 
	} 
else 
	GetDlgItem(IDC_BUTTON_PREV)->EnableWindow(1); 
 
GetDlgItem(IDC_BUTTON_NEXT)->EnableWindow(1); 
UpdateData(FALSE); 
} 
 
void CAccobook_CEView::OnButtonTest()  
{ 
g_dbf.SetRecordCountInMem(0);	 
g_dbf.WriteAllDataToFile(); 
} 
 
void CAccobook_CEView::MyUpdate() 
{ 
m_sKaiPanJia=g_sKaiPanJia; 
m_sShouPanJia=g_sShouPanJia; 
m_sZuiGaoJia=g_sZuiGaoJia; 
m_sZuiDiJia=g_sZuiDiJia; 
m_sJiaGe=g_sJiaGe; 
m_sDaiMa=g_sDaiMa; 
m_sMingChen=g_sMingChen; 
m_bShouRu=g_bShouRu; 
m_bZhiChu=g_bZhiChu; 
UpdateData(0);		 
} 
 
void CAccobook_CEView::OnUpdate(CView* pSender, LPARAM lHint, CObject* pHint)  
{ 
long lwStyle = ::GetWindowLong(GetSafeHwnd(), GWL_STYLE); 
			lwStyle &= ~WS_VSCROLL; 
				lwStyle &= ~WS_HSCROLL; 
			::SetWindowLong(GetSafeHwnd(), GWL_STYLE, lwStyle); 
 
} 
 
void CAccobook_CEView::OnFileDeleteall()  
{ 
if(::MessageBox(GetSafeHwnd(),_T("真要删除全部记录吗?"), 
		_T("  Delete All Records ?"),MB_YESNO)==IDNO) 
	return; 
if(::MessageBox(GetSafeHwnd(),_T("删除的全部记录将不能恢复!是否继续?"), 
		_T("  Delete All Records ?"),MB_YESNO)==IDNO) 
	return; 
int num=g_dbf.GetRecordCount(); 
int i; 
BOOL bTrue=-1; 
for(i=0;iEnableWindow(FALSE); 
GetDlgItem(IDC_BUTTON_NEXT)->EnableWindow(FALSE); 
GetDlgItem(IDC_BUTTON_LISTALL)->EnableWindow(FALSE); 
 
m_nStepNum=0;	 
g_nTotalRecordNum=0; 
m_s2=_T("0"); 
m_s1=_T("0"); 
UpdateData(FALSE); 
} 
 
void CAccobook_CEView::RefreshCtrl() 
{ 
OnButton2(); 
m_listctrl.DeleteAllItems(); 
 
TCHAR cc[20]; 
int i,j,len; 
CString s; 
g_nTotalRecordNum=g_wStationsArray.GetSize(); 
wsprintf(cc,_T("%d"),g_nTotalRecordNum); 
m_s2=cc; 
int total=min(10,g_nTotalRecordNum); 
 
for(i=0;i=10) 
	{ 
	m_s1=_T("1~10"); 
	GetDlgItem(IDC_BUTTON_NEXT)->EnableWindow(TRUE); 
	} 
else 
	{ 
	m_s1=_T("1~")+m_s2; 
	} 
GetDlgItem(IDC_BUTTON_LISTALL)->EnableWindow(TRUE); 
UpdateData(FALSE); 
} 
 
int CAccobook_CEView::StationIn(PBYTE cc,CString s) 
{ 
int nRtn=0; 
CString ss=cc; 
int pos=ss.Find(s); 
if(pos>-1)nRtn=1; 
if(s=="")nRtn=1; 
return nRtn; 
} 
 
int CAccobook_CEView::StationIn2(const char* cc,const char* c) 
{ 
char* ptr=strstr(cc,c); 
if(ptr==NULL)return 0; 
return 1; 
} 
 
void CAccobook_CEView::ReShow() 
{ 
GetDlgItem(IDC_BUTTON_PREV)->EnableWindow(0); 
GetDlgItem(IDC_BUTTON_NEXT)->EnableWindow(0); 
//GetDlgItem(IDC_BUTTON_ListAll)->EnableWindow(0); 
 
m_listctrl.DeleteAllItems(); 
			 
	int i ,j ,len; 
	CString s; 
	TCHAR cc3[30]; 
	m_nStepNum=0;	 
	g_nTotalRecordNum=g_dbf.GetRecordCount(); 
	wsprintf(cc3,_T("%d"),g_nTotalRecordNum); 
	m_s2=cc3; 
	int total=min(10,g_nTotalRecordNum); 
	if(total<10) 
		{ 
		m_s1=_T("1~")+m_s2; 
		} 
	else 
		m_s1=_T("1~10"); 
if(m_nIsListAll) 
	{ 
	for(i=0;iEnableWindow(FALSE); 
	GetDlgItem(IDC_BUTTON_NEXT)->EnableWindow(TRUE); 
//	GetDlgItem(IDC_BUTTON_ListAll)->EnableWindow(1); 
	UpdateData(FALSE); 
} 
 
BOOL CAccobook_CEView::YearMonthDayIn( 
						double y1,double m1,double d1, 
						double y2,double m2,double d2, 
						double y,double m,double d) 
{ 
if(y==y1&&y==y2&&m>=m1&&m<=m2&&d>=d1&&d<=d2) 
	return 1; 
if(y>y1&&ym1) 
		return 1; 
	if(m==m1&&d>=d1) 
		return 1; 
	else 
		return 0; 
	} 
if(y==y2&&y>y1) 
	{ 
	if(m=f1&&f<=f2) 
		{ 
		g_wStationsArray.Add(count); 
		} 
	count++; 
	} 
RefreshCtrl();  
return 1; 
} 
 
int CAccobook_CEView::UpdateListByTime(int nField,CString s1,CString s2)//sRIQI1,sRIQI2 
{ 
if(s1=="")s1=_T("0.0.0."); 
if(s2=="")s2=_T("2999.12.31."); 
CMyTime t1(s1); 
CMyTime t2(s2); 
CTime time1(t1.m_dYear,t1.m_dMonth,t1.m_dDay,0,0,0); 
CTime time2(t2.m_dYear,t2.m_dMonth,t2.m_dDay,0,0,0); 
CTime time; 
if(time1>time2) 
	{ 
	time=time1; 
	time1=time2; 
	time2=time; 
	//AfxMessageBox(_T("起始日期大于终止日期,重新输入!")); 
	//return 0; 
	} 
char sc1[101],sc2[101]; 
int i,j,count=0; 
InitCtrl(); 
m_nIsListAll=0; 
int len; 
g_wStationsArray.RemoveAll(); 
DWORD l; 
CString s; 
for(i=0;itime2) 
	{ 
	time=time1; 
	time1=time2; 
	time2=time; 
	//AfxMessageBox(_T("起始日期大于终止日期,重新输入!")); 
	//return 0; 
	} 
 
char cBeiZhu[255]; 
g_dbf.WideCharToChar(sBeiZhu,cBeiZhu); 
char cDaiMa[51]; 
g_dbf.WideCharToChar(sDaiMa,cDaiMa); 
char cMingChen[255]; 
g_dbf.WideCharToChar(sMingChen,cMingChen); 
 
double f; 
 
DWORD l; 
CString s; 
for(i=0;i=f1&&f<=f2) 
				{ 
				l=g_dbf.ReadFieldStr(i+1,0,g_pFieldBuf); 
				s=g_dbf.CharToWideChar(g_pFieldBuf,l); 
				CMyTime t(s); 
				time=CTime(t.m_dYear,t.m_dMonth,t.m_dDay,0,0,0); 
				if((time1<=time)&&(time<=time2)) 
					{ 
					g_wStationsArray.Add(count); 
					} 
				} 
			} 
		} 
	} 
	} 
	count++; 
	} 
RefreshCtrl();  
return 1; 
} 
 
void CAccobook_CEView::OnButtonStatistics()  
{ 
CString sType2=_T("买入"); 
CString sType1=_T("卖出"); 
char cType1[50],cType2[50]; 
g_dbf.WideCharToChar(sType1,cType1); 
g_dbf.WideCharToChar(sType2,cType2); 
double dShouRu=0; 
double dZhiChu=0; 
double fShuE,fJiaGe; 
int i,j,len; 
CString s; 
TCHAR  *stopstring; 
for(i=0;i0xA0)&&((i+1)GetWindowText(sBeiZhu); 
 
UpdateData();	 
if(m_bShouRu&&m_bZhiChu) 
	{ 
	//AfxMessageBox(_T("买入或卖出只能选一个!")); 
	::MessageBox(GetSafeHwnd(),_T("买入或卖出只能选一个!"), 
		_T("StockStar_CE Application"),MB_OK); 
	 
	return; 
	} 
g_pEditShuE->GetWindowText(sShuE);	 
 
g_pEditRiQi->GetWindowText(sRiQi); 
if(m_bShouRu) 
	sType=_T("买入"); 
else 
	sType=_T("卖出"); 
 
if(::MessageBox(GetSafeHwnd(),_T("真要添加记录吗?"), 
		_T("  Add Record ?"),MB_YESNO)==IDNO) 
	{ 
	return;	 
	} 
 
char cRiQi[40],cType[20],cShuE[100],cJiaGe[30], 
	cDaiMa[50],cMingChen[255],cBeiZhu[255], 
	cKaiPan[30],cShouPan[30],cZuiGao[30],cZuiDi[30]; 
g_dbf.AppendBlankRecordInMem(); 
 
int num=g_dbf.GetRecordCount(); 
 
int len=g_dbf.WideCharToChar(sRiQi,cRiQi); 
g_dbf.SetFieldStr(num,0,(PBYTE)cRiQi,len); 
len=g_dbf.WideCharToChar(sType,cType); 
g_dbf.SetFieldStr(num,1,(PBYTE)cType,len); 
len=g_dbf.WideCharToChar(sShuE,cShuE); 
g_dbf.SetFieldStr(num,2,(PBYTE)cShuE,len); 
len=g_dbf.WideCharToChar(m_sJiaGe,cJiaGe); 
g_dbf.SetFieldStr(num,3,(PBYTE)cJiaGe,len); 
 
len=g_dbf.WideCharToChar(m_sDaiMa,cDaiMa); 
g_dbf.SetFieldStr(num,4,(PBYTE)cDaiMa,len); 
len=g_dbf.WideCharToChar(m_sMingChen,cMingChen); 
g_dbf.SetFieldStr(num,5,(PBYTE)cMingChen,len); 
len=g_dbf.WideCharToChar(sBeiZhu,cBeiZhu); 
g_dbf.SetFieldStr(num,6,(PBYTE)cBeiZhu,len); 
 
len=g_dbf.WideCharToChar(m_sKaiPanJia,cKaiPan); 
g_dbf.SetFieldStr(num,7,(PBYTE)cKaiPan,len); 
len=g_dbf.WideCharToChar(m_sShouPanJia,cShouPan); 
g_dbf.SetFieldStr(num,8,(PBYTE)cShouPan,len); 
len=g_dbf.WideCharToChar(m_sZuiGaoJia,cZuiGao); 
g_dbf.SetFieldStr(num,9,(PBYTE)cZuiGao,len); 
len=g_dbf.WideCharToChar(m_sZuiDiJia,cZuiDi); 
g_dbf.SetFieldStr(num,10,(PBYTE)cZuiDi,len); 
 
g_dbf.WriteAllDataToFile(); 
ShowAll(); 
} 
 
void CAccobook_CEView::OnButtonDelete()  
{ 
int num=g_dbf.GetRecordCount(); 
if(g_nHitIndex<0||g_nHitIndex>num) 
	{ 
	//AfxMessageBox(_T("请先选定要删除的记录!")); 
	::MessageBox(GetSafeHwnd(),_T("请先选定要删除的记录!"), 
		_T("StockStar_CE Application"),MB_OK); 
	 
	return; 
	} 
if(::MessageBox(GetSafeHwnd(),_T("真要删除所选记录吗?"), 
		_T("  Delete Record ?"),MB_YESNO)==IDNO) 
	return; 
int index; 
if(m_nIsListAll) 
	index=g_nHitIndex+1; 
else 
	index=g_wStationsArray[g_nHitIndex]+1; 
BOOL bTrue=-1; 
bTrue=g_dbf.DeleteRecordInMem(index); 
if(bTrue==1) 
	g_dbf.WriteAllDataToFile(); 
if(m_nIsListAll) 
	ShowAll(); 
else 
	RefreshCtrl(); 
g_nHitIndex=-1; 
} 
 
void CAccobook_CEView::OnButtonModify()  
{ 
int num=g_dbf.GetRecordCount(); 
if(g_nHitIndex<0||g_nHitIndex>num) 
	{ 
	//AfxMessageBox(_T("请先选定要修改的记录!")); 
	::MessageBox(GetSafeHwnd(),_T("请先选定要修改的记录!"), 
		_T("  Modify Record ?"),MB_OK); 
	return; 
	} 
if(::MessageBox(GetSafeHwnd(),_T("真要修改所选记录吗?"), 
		_T("  Modify Record ?"),MB_YESNO)==IDNO) 
	{ 
	return;	 
	} 
TCHAR cc[100]; 
CString sRiQi,sShuE,sType,sBeiZhu; 
g_pEditBeiZhu->GetWindowText(sBeiZhu); 
UpdateData();	 
if(m_bShouRu&&m_bZhiChu) 
	{ 
	//AfxMessageBox(_T("买入或卖出只能选一个!")); 
	::MessageBox(GetSafeHwnd(),_T("买入或卖出只能选一个!"), 
		_T("StockStar_CE Application"),MB_OK); 
	 
	return; 
	} 
g_pEditShuE->GetWindowText(sShuE);	 
g_pEditRiQi->GetWindowText(sRiQi); 
if(m_bShouRu) 
	sType=_T("买入"); 
else 
	sType=_T("卖出"); 
char cRiQi[40],cType[20],cShuE[100],cJiaGe[30], 
	cDaiMa[50],cMingChen[255],cBeiZhu[255], 
	cKaiPan[30],cShouPan[30],cZuiGao[30],cZuiDi[30]; 
int len; 
int index; 
if(m_nIsListAll) 
	index=g_nHitIndex+1; 
else 
	index=g_wStationsArray[g_nHitIndex]+1; 
len=g_dbf.WideCharToChar(sRiQi,cRiQi); 
g_dbf.SetFieldStr(index,0,(PBYTE)cRiQi,len); 
len=g_dbf.WideCharToChar(sType,cType); 
g_dbf.SetFieldStr(index,1,(PBYTE)cType,len); 
len=g_dbf.WideCharToChar(sShuE,cShuE); 
g_dbf.SetFieldStr(index,2,(PBYTE)cShuE,len); 
len=g_dbf.WideCharToChar(m_sJiaGe,cJiaGe); 
g_dbf.SetFieldStr(index,3,(PBYTE)cJiaGe,len); 
 
len=g_dbf.WideCharToChar(m_sDaiMa,cDaiMa); 
g_dbf.SetFieldStr(index,4,(PBYTE)cDaiMa,len); 
len=g_dbf.WideCharToChar(m_sMingChen,cMingChen); 
g_dbf.SetFieldStr(index,5,(PBYTE)cMingChen,len); 
len=g_dbf.WideCharToChar(sBeiZhu,cBeiZhu); 
g_dbf.SetFieldStr(index,6,(PBYTE)cBeiZhu,len); 
 
len=g_dbf.WideCharToChar(m_sKaiPanJia,cKaiPan); 
g_dbf.SetFieldStr(index,7,(PBYTE)cKaiPan,len); 
len=g_dbf.WideCharToChar(m_sShouPanJia,cShouPan); 
g_dbf.SetFieldStr(index,8,(PBYTE)cShouPan,len); 
len=g_dbf.WideCharToChar(m_sZuiGaoJia,cZuiGao); 
g_dbf.SetFieldStr(index,9,(PBYTE)cZuiGao,len); 
len=g_dbf.WideCharToChar(m_sZuiDiJia,cZuiDi); 
g_dbf.SetFieldStr(index,10,(PBYTE)cZuiDi,len); 
 
g_dbf.WriteAllDataToFile(); 
if(m_nIsListAll) 
	ShowAll(); 
else 
	RefreshCtrl(); 
g_nHitIndex=-1; 
} 
 
void CAccobook_CEView::OnButtonCalc()  
{ 
p_CalcDlg->DoModal();	 
} 
 
void CAccobook_CEView::OnButtonK()  
{ 
p_KXianTu->DoModal();		 
} 
 
BOOL CAccobook_CEView::UpdateListForKXianTu( 
									CString sRIQI1,CString sRIQI2, 
									CString sDaiMa,CString sMingChen) 
{ 
char sc1[101],sc2[101]; 
int i,j,count=0; 
InitCtrl(); 
m_nIsListAll=0; 
int len; 
g_wStationsArray.RemoveAll(); 
//TCHAR  *stopstring; 
if(sRIQI1=="")sRIQI1=_T("0.0.0."); 
if(sRIQI2=="")sRIQI2=_T("2999.12.31."); 
CMyTime t1(sRIQI1); 
g_time1=CTime(t1.m_dYear,t1.m_dMonth,t1.m_dDay,0,0,0); 
CMyTime t2(sRIQI2); 
g_time2=CTime(t2.m_dYear,t2.m_dMonth,t2.m_dDay,0,0,0); 
CTime time1(t1.m_dYear,t1.m_dMonth,t1.m_dDay,0,0,0); 
CTime time2(t2.m_dYear,t2.m_dMonth,t2.m_dDay,0,0,0); 
CTime time; 
if(time1>time2) 
	{ 
	time=time1; 
	time1=time2; 
	time2=time; 
	} 
g_nYear1=t1.m_dYear; 
g_nMonth1=t1.m_dMonth; 
g_nDay1=t1.m_dDay; 
g_nYear2=t2.m_dYear; 
g_nMonth2=t2.m_dMonth; 
g_nDay2=t2.m_dDay; 
CTimeSpan ts =g_time2 - g_time1; 
g_nDays=ts.GetDays( ); 
DWORD l; 
CString s; 
g_YearArray.RemoveAll(); 
g_MonthArray.RemoveAll(); 
g_DayArray.RemoveAll(); 
for(i=0;id2) 
	{ 
	d=d1; 
	d1=d2; 
	d2=d; 
	return 1; 
	} 
return 0; 
} 
 
int CAccobook_CEView::PrePareTimeIndex() 
{ 
int i,j,num=g_YearArray.GetSize(); 
CTime TimeI,TimeJ; 
double dYear,dMonth,dDay,dYearI,dMonthI,dDayI,dYearJ,dMonthJ,dDayJ; 
//CWordArray IndexArray; 
for(i=1;i=0;j--) 
		{ 
		dYearI=g_YearArray[j+1]; 
		dMonthI=g_MonthArray[j+1]; 
		dDayI=g_DayArray[j+1]; 
		TimeI=CTime(g_YearArray[j+1],g_MonthArray[j+1],g_DayArray[j+1],0,0,0); 
		dYearJ=g_YearArray[j]; 
		dMonthJ=g_MonthArray[j]; 
		dDayJ=g_DayArray[j]; 
		TimeJ=CTime(g_YearArray[j],g_MonthArray[j],g_DayArray[j],0,0,0); 
		if(TimeI1) 
	{ 
	t1=CTime(g_YearArray[0],g_MonthArray[0],g_DayArray[0],0,0,0); 
	t2=CTime(g_YearArray[num-1],g_MonthArray[num-1],g_DayArray[num-1],0,0,0); 
	ts =t2 - t1;	 
	g_nDays=ts.GetDays( ); 
	} 
return 1; 
} 
 
int CAccobook_CEView::PrePareKXianTuValues() 
{ 
g_nMax=0; 
g_nMin=1000000; 
g_ZuiGaoJiaArray.RemoveAll(); 
g_ZuiDiJiaArray.RemoveAll(); 
g_KaiPanJiaArray.RemoveAll(); 
g_ShouPanJiaArray.RemoveAll(); 
CString s; 
double len,temp; 
TCHAR  *stopstring; 
PrePareTimeIndex(); 
int i,j,num=g_YearArray.GetSize(); 
CTime TimeJ,TimeI; 
if(num>0) 
	{ 
	g_time1=CTime(g_YearArray[0],g_MonthArray[0],g_DayArray[0],0,0,0); 
	g_time2=CTime(g_YearArray[num-1],g_MonthArray[num-1],g_DayArray[num-1],0,0,0); 
	} 
for(j=0;j