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

📄 accobook_ceview.cpp

📁 本源代码是基于嵌入式平台WinCE上的家庭理财程序
💻 CPP
📖 第 1 页 / 共 2 页
字号:
{
int num=g_dbf.GetRecordCount();
if(g_nHitIndex<0||g_nHitIndex>num)
	{
	::MessageBox(GetSafeHwnd(),_T("请先选定要修改的记录!"),
		_T("  提示 !"),MB_OK);

	return;
	}
if(::MessageBox(GetSafeHwnd(),_T("真要修改所选记录吗?"),
		_T("  修改 ?"),MB_YESNO)==IDNO)
	{
	return;	
	}
TCHAR cc[100];
CString sRiQi,sShuE,sType,sBeiZhu;
g_pEditBeiZhu->GetWindowText(sBeiZhu);
UpdateData();	
if(m_bShouRu&&m_bZhiChu)
	{
	::MessageBox(GetSafeHwnd(),_T("收入或支出只能选一个!"),
		_T("  提示 !"),MB_OK);

	return;
	}
g_pEditShuE->GetWindowText(sShuE);	
if(sShuE=="")
	{
	::MessageBox(GetSafeHwnd(),_T("请填写金额后再按修改!"),
		_T("  提示 !"),MB_OK);

	return;
	}
g_pEditRiQi->GetWindowText(sRiQi);
if(m_bShouRu)
	sType=_T("收入");
else
	sType=_T("支出");
char cXuHao[100],cShuE[100],cRiQi[40],cType[20],cBeiZhu[255];
int len;
int index;
if(m_nIsListAll)
	index=g_nHitIndex+1;
else
	index=g_wStationsArray[g_nHitIndex]+1;
wsprintf(cc,_T("%d"),index);
len=g_dbf.WideCharToChar(cc,cXuHao);
g_dbf.SetFieldStr(index,0,(PBYTE)cXuHao,len);
	
len=g_dbf.WideCharToChar(sRiQi,cRiQi);
g_dbf.SetFieldStr(index,1,(PBYTE)cRiQi,len);

len=g_dbf.WideCharToChar(sType,cType);
g_dbf.SetFieldStr(index,2,(PBYTE)cType,len);

len=g_dbf.WideCharToChar(sShuE,cShuE);
g_dbf.SetFieldStr(index,3,(PBYTE)cShuE,len);

len=g_dbf.WideCharToChar(sBeiZhu,cBeiZhu);
g_dbf.SetFieldStr(index,4,(PBYTE)cBeiZhu,len);

g_dbf.WriteAllDataToFile();
if(m_nIsListAll)
	ShowAll();
else
	RefreshCtrl();
g_nHitIndex=-1;
}


void CAccobook_CEView::MyUpdate()
{
m_bShouRu=g_bShouRu;
m_bZhiChu=g_bZhiChu;
UpdateData(0);		
}

void CAccobook_CEView::OnUpdate(CView* pSender, LPARAM lHint, CObject* pHint) 
{


}

void CAccobook_CEView::OnFileDeleteall() 
{
if(::MessageBox(GetSafeHwnd(),_T("真要删除全部记录吗?"),
		_T("  删除全部记录 ?"),MB_YESNO)==IDNO)
	return;
if(::MessageBox(GetSafeHwnd(),_T("删除的全部记录将不能恢复!是否继续?"),
		_T("  删除全部记录 ?"),MB_YESNO)==IDNO)
	return;
int num=g_dbf.GetRecordCount();
int i;
BOOL bTrue=-1;
for(i=0;i<num;i++)
	{
	bTrue=g_dbf.DeleteRecordInMem(1);//i+1);
	}
if(bTrue==1)
	{
	g_dbf.WriteAllDataToFile();
	}
ShowAll();
g_nHitIndex=-1;
}

void CAccobook_CEView::InitCtrl()
{
m_listctrl.DeleteAllItems();
UpdateData();

GetDlgItem(IDC_BUTTON_PREV)->EnableWindow(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<total;i++)
	{
	for(j=0;j<g_nTotalFieldNum;j++)
		{
		len=g_dbf.ReadFieldStr(g_wStationsArray[i]+1,j,g_pFieldBuf);
		s=g_dbf.CharToWideChar(g_pFieldBuf,len);
		m_listctrl.AddItem(i,j,s);
		}
	}

if(total>=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");
	for(i=0;i<total;i++)
		{
		for(j=0;j<g_nTotalFieldNum;j++)
			{
			if(m_nIsListAll)
				{
				len=g_dbf.ReadFieldStr(i+1,j,g_pFieldBuf);
				s=g_dbf.CharToWideChar(g_pFieldBuf,len);
				m_listctrl.AddItem(i,j,s);
				}
			else
				{
				len=g_dbf.ReadFieldStr(g_wStationsArray[i]+1,j,g_pFieldBuf);
				s=g_dbf.CharToWideChar(g_pFieldBuf,len);
				m_listctrl.AddItem(i,j,s);
				}
			}
		}
	GetDlgItem(IDC_BUTTON_PREV)->EnableWindow(FALSE);
	GetDlgItem(IDC_BUTTON_NEXT)->EnableWindow(TRUE);
	UpdateData(FALSE);
}

int  CAccobook_CEView::UpdateList(int nField,CString s)//sBeiZhu,sType
{
char sc[101];
int i,j,count=0;
InitCtrl();
m_nIsListAll=0;
int len;
g_wStationsArray.RemoveAll();
g_dbf.WideCharToChar(s,sc);
DWORD l;
for(i=0;i<g_dbf.GetRecordCount();i++)
	{
	l=g_dbf.ReadFieldStr(i+1,nField,g_pFieldBuf);
	if(StationIn2((const char*)g_pFieldBuf,sc))
		{
		g_wStationsArray.Add(count);
		}
	count++;
	}
RefreshCtrl(); 
return 1;
}

int CAccobook_CEView::UpdateList2(int nField,CString s1,CString s2)//sShuE1,sShuE2
{
char sc1[101],sc2[101];
int i,j,count=0;
InitCtrl();
m_nIsListAll=0;
int len;
g_wStationsArray.RemoveAll();
TCHAR  *stopstring;
double f1=_tcstod(s1,&stopstring);
double f2=_tcstod(s2,&stopstring);
if(f1==0)
	f1=-100000000000000;
if(f2==0)
	f2=100000000000000;
double f;
DWORD l;
CString s;
for(i=0;i<g_dbf.GetRecordCount();i++)
	{
	l=g_dbf.ReadFieldStr(i+1,nField,g_pFieldBuf);
	s=g_dbf.CharToWideChar(g_pFieldBuf,l);
	f=_tcstod(s,&stopstring);
	if(f>=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=s2;
if(s2=="")s2=s1;
if(s1==""&&s2=="")
	{
	::MessageBox(GetSafeHwnd(),_T("请输入日期后再查询!"),
		_T("  提示! "),MB_OK);	
	return 0;
	};

CMyTime t1(s1);
CMyTime t2(s2);
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;i<g_dbf.GetRecordCount();i++)
	{
	l=g_dbf.ReadFieldStr(i+1,nField,g_pFieldBuf);
	s=g_dbf.CharToWideChar(g_pFieldBuf,l);
	CMyTime t(s);
	if(YearMonthDayIn(t1.m_dYear,t1.m_dMonth,t1.m_dDay,
					t2.m_dYear,t2.m_dMonth,t2.m_dDay,
					t.m_dYear,t.m_dMonth,t.m_dDay))
		{
		g_wStationsArray.Add(count);
		}
	count++;
	}
RefreshCtrl(); 
return 1;
}

int CAccobook_CEView::UpdateListWithAll(CString sType,
										CString sShuE1,CString sShuE2,
										CString sRIQI1,CString sRIQI2,
										CString sBeiZhu)
{
char sc1[101],sc2[101];
int i,j,count=0;
InitCtrl();
m_nIsListAll=0;
int len;
g_wStationsArray.RemoveAll();

char cType[40];
g_dbf.WideCharToChar(sType,cType);
TCHAR  *stopstring;
double f1=_tcstod(sShuE1,&stopstring);
double f2=_tcstod(sShuE2,&stopstring);
if(f1==0)
	f1=-100000000000000;
if(f2==0)
	f2=100000000000000;
if(sRIQI1=="")sRIQI1=_T("0.0.0.");
if(sRIQI2=="")sRIQI2=_T("2999.12.31.");
CMyTime t1(sRIQI1);
CMyTime t2(sRIQI2);
char cBeiZhu[101];
g_dbf.WideCharToChar(sBeiZhu,cBeiZhu);

double f;

DWORD l;
CString s;
for(i=0;i<g_dbf.GetRecordCount();i++)
	{
	l=g_dbf.ReadFieldStr(i+1,2,g_pFieldBuf);
	if(StationIn2((const char*)g_pFieldBuf,cType))
		{
		l=g_dbf.ReadFieldStr(i+1,4,g_pFieldBuf);
		if(StationIn2((const char*)g_pFieldBuf,cBeiZhu))
			{
			l=g_dbf.ReadFieldStr(i+1,3,g_pFieldBuf);
			s=g_dbf.CharToWideChar(g_pFieldBuf,l);
			f=_tcstod(s,&stopstring);
			if(f>=f1&&f<=f2)
				{
				l=g_dbf.ReadFieldStr(i+1,1,g_pFieldBuf);
				s=g_dbf.CharToWideChar(g_pFieldBuf,l);
				CMyTime t(s);
				if(YearMonthDayIn(t1.m_dYear,t1.m_dMonth,t1.m_dDay,
					t2.m_dYear,t2.m_dMonth,t2.m_dDay,
					t.m_dYear,t.m_dMonth,t.m_dDay))
					{
					g_wStationsArray.Add(count);
					}
				}
			}
		}
	count++;
	}
RefreshCtrl(); 
return 1;
}
/*
void CAccobook_CEView::OnButtonStatistics() 
{
CString sType1=_T("收入");
CString sType2=_T("支出");
char cType1[50],cType2[50];
g_dbf.WideCharToChar(sType1,cType1);
g_dbf.WideCharToChar(sType2,cType2);
double dShouRu=0;
double dZhiChu=0;
double f;
int i,j,len;
CString s;
TCHAR  *stopstring;
for(i=0;i<g_nTotalRecordNum;i++)
	{
	if(m_nIsListAll)
		{
		len=g_dbf.ReadFieldStr(i+1,3,g_pFieldBuf);
		s=g_dbf.CharToWideChar(g_pFieldBuf,len);
		f=_tcstod(s,&stopstring);
		len=g_dbf.ReadFieldStr(i+1,2,g_pFieldBuf);
		if(StationIn2((const char*)g_pFieldBuf,cType1))
			dShouRu+=f;
		else
			dZhiChu+=f;
		}
	else
		{
		len=g_dbf.ReadFieldStr(g_wStationsArray[i]+1,3,g_pFieldBuf);
		s=g_dbf.CharToWideChar(g_pFieldBuf,len);
		f=_tcstod(s,&stopstring);
		len=g_dbf.ReadFieldStr(g_wStationsArray[i]+1,2,g_pFieldBuf);
		if(StationIn2((const char*)g_pFieldBuf,cType1))
			dShouRu+=f;
		else
			dZhiChu+=f;
		}
	}
m_dIncome=dShouRu;
m_dOutcome=dZhiChu;
m_dYingyu=dShouRu-dZhiChu;
UpdateData(0);
}
*/
BOOL CAccobook_CEView::YearMonthDayIn(
						double y1,double m1,double d1,
						double y2,double m2,double d2,
						double y,double m,double d)
{
int num1=CalcYangDays(y1,m1,d1);
int num2=CalcYangDays(y2,m2,d2);
int num=CalcYangDays(y,m,d);
if(num>=num1&&num<=num2)return 1;
return 0;
}

BOOL CAccobook_CEView::IsLeapYear(int AYear)
{
 return (AYear % 4 == 0) && ((AYear % 100 != 0) || (AYear % 400 == 0));
}

int	CAccobook_CEView::CalcNewYangWithDaysLess365(int year,int days,int& y,int& m,int& d)//0,0,0 as base yang year
{
	if(days<1)
		{
		if(IsLeapYear(year))
			days=366+days;
		else
			days=365+days;
		year--;
		CalcNewYangWithDaysLess365(year,days,y,m,d);
		return 1;
		}
	//days>0:
	y=year;
	m=12;
	d=31;
	int i;
	m=0;
	d=0;
	y++;
	for(i=1;i<13;i++)
		{
		if((i==1)||(i==3)||(i==5)||(i==7)||(i==8)||(i==10)||(i==12))
			{
			if(days>31)
				days-=31;
			else
				{
				m=i;
				d=days;
				break;
				}
			}
		else
			{
			if(i!=2)//4,6,9,11
				{
				if(days>30)
					days-=30;
				else
					{
					m=i;
					d=days;
					break;
					}
				}
			else
				{
				if(IsLeapYear(y))
					{
					if(days>29)
						days-=29;
					else
						{
						m=i;
						d=days;
						break;
						}
					}
				else
					{
					if(days>28)
						days-=28;
					else
						{
						m=i;
						d=days;
						break;
						}
					}
				}
			}
		m=i;
		}
return 1;
}

int CAccobook_CEView::CalcNewYangWithDays(int days,int& y,int& m,int& d)//0,0,0 as base yang year
{
	int i=0;
	int num=days/365-1;
	if(num<0)return 0;
	int leftDays=days-(num+1)*365;
	int leapYearNum=0;
	for(i=1;i<=num;i++)
		{
		if(IsLeapYear(i))
			leapYearNum++;
		}
	if(leftDays>=leapYearNum)
		{
		leftDays=leftDays-leapYearNum;
		CalcNewYangWithDaysLess365(num,leftDays,y,m,d);
		}
	else//leftDays<leapYearNum
		{
		if(IsLeapYear(num))
			leapYearNum--;
		num=num-1;
		leftDays=365+leftDays-leapYearNum;
		CalcNewYangWithDaysLess365(num,leftDays,y,m,d);
		}
return 1;
}

int CAccobook_CEView::CalcYangDays(int endY,int endM,int endD)
{
	int i,leapYearNum=0;
	for(i=1;i<endY;i++)
		{
		if(IsLeapYear(i))
			leapYearNum++;
		}
	int day1=endY*365+leapYearNum;
	int day2=0;
		for(i=1;i<endM;i++)
			{
			if((i==1)||(i==3)||(i==5)||(i==7)||(i==8)||(i==10)||(i==12))
				day2+=31;
			else
				{
				if(i!=2)
					day2+=30;
				else
					if(IsLeapYear(endY))
						day2+=29;
					else
						day2+=28;
				}
			}
		day1+=day2+endD;
		
		
	return day1;
}


void CAccobook_CEView::OnSize(UINT nType, int cx, int cy) 
{
	CFormView::OnSize(nType, cx, cy);
/*	
	long lwStyle = ::GetWindowLong(GetSafeHwnd(), GWL_STYLE);
			lwStyle &= ~WS_VSCROLL;
				lwStyle &= ~WS_HSCROLL;
			::SetWindowLong(GetSafeHwnd(), GWL_STYLE, lwStyle);

*/	
}

⌨️ 快捷键说明

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