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