📄 moneybook.h
字号:
//////////////////////////////////////////////////////////////////////////////// File: MoneyBook.h// Purpose: xml data file control// Maintainer: wesley.wang// Created: 2004-04-02// RCS-ID: $Id: moneybook.h,v 1.8 2004/04/25 13:54:17 wq1977 Exp $// Copyright: (c) wesley.wang// Licence: wxWindows licence//////////////////////////////////////////////////////////////////////////////#ifndef _MONEY_BOOK_H_#define _MONEY_BOOK_H_#ifdef __GNUG__ #pragma implementation "moneybook.h"#endif//----------------------------------------------------------------------------// information//----------------------------------------------------------------------------//----------------------------------------------------------------------------// headers//----------------------------------------------------------------------------#include <libxml/xmlmemory.h>#include <libxml/parser.h>#include <libxml/xpath.h>#include <wx/treectrl.h>#include <wx/datetime.h>//#define APPEND_TEST_DATA 1//============================================================================// declarations//============================================================================class xmlnodeTreeItemData: public wxTreeItemData{public: xmlNodePtr xmlNode; xmlnodeTreeItemData(xmlNodePtr data){xmlNode = data;} };class xmlnodeGNode{public: xmlNodePtr xmlNode; xmlnodeGNode(xmlNodePtr data){xmlNode = data;} };WX_DECLARE_LIST(xmlnodeGNode, MyXmlNodeList);class MoneytypeCountNode{public: xmlNodePtr moneytype; wxDouble acount; MoneytypeCountNode(xmlNodePtr data,wxDouble count){moneytype = data;acount = count;} };WX_DECLARE_LIST(MoneytypeCountNode, MoneytypeCountList);//----------------------------------------------------------------------------//!typedef struct{ xmlChar UserName[100];}MB_UserInfo;typedef struct{ char Desc[100];}MB_ClassInInfo;typedef struct{ xmlChar Desc[100]; wxDouble fee;}MB_ClassOutInfo;//----------------------------------------------------------------------------//! moneybookclass MoneyBook{public: xmlNodePtr UserInfo,ContentInfo,InComingNode,OutGoingNode; wxTreeItemId rootitem; wxTreeItemId incomingitem,outgoingitem; bool enableAutoSave; xmlDocPtr doc; MoneyBook(const wxChar * sfilename, wxTreeCtrl *Tree); ~MoneyBook(); bool SetUserInfo(MB_UserInfo *pUserInfo); bool GetUserInfo(MB_UserInfo *pUserInfo); wxString* GetFolderDesc(xmlNodePtr node); bool GetMonthTotalCnt(xmlNodePtr parentnode, wxDouble *pret, wxDateTime adate= wxDateTime::Today(),MoneytypeCountList *retlist=NULL); bool SetBaseAcount(wxTreeItemId *id, wxDouble base); bool AddMoneyType(wxTreeItemId *id, MB_ClassInInfo *pClassInfo); bool SetDefault(wxTreeItemId *pid); bool DeleteMoneyType(wxTreeItemId *pid); bool IsFolderNode(wxTreeItemId id); bool CanBeDelete(wxTreeItemId id); bool DeleteRec(xmlNodePtr node); bool ModifyMoneyRec(xmlnodeGNode* oldNode,wxDateTime *pdate, wxDouble acount, wxString memo); xmlNodePtr GetRecsFolder(xmlNodePtr parent); bool GetHousePay(wxDouble *TotalCnt, wxDouble *MonthRate, long *terms, wxDateTime *startdate, long* PayMethod); void SetHousePay(wxDouble TotalCnt, wxDouble MonthRate, long terms, wxDateTime startdate, long PayMethod); int GetMonthCntForPayHouse(wxDouble TotalCnt, wxDouble MonthRate, long terms, wxDateTime startdate, long PayMethod, wxDouble BaseACount, wxDouble PerMonth, long MaxMonth); xmlNodePtr GetMonthFolder(xmlNodePtr parent, wxDateTime *pdate); void UpdateTotalCount(xmlNodePtr MonthPtr, wxDouble acount, bool Increase=TRUE); bool AddMoneyRec(wxDateTime* pdate, wxDouble acount, wxString memo, xmlnodeGNode* item); bool AddTestRec(int years, int permonth); void savetofile(bool Force=FALSE); wxDouble GetTotalOutGoing(void); wxDouble GetTotalInComing(void); wxDouble GetBaseInComing(void); wxDouble GetBaseOutGoing(void); static wxDouble GetHouseFeeSameCountPlusTax(wxDouble totalcnt,wxDouble monthrate,wxInt16 terms); static wxDouble GetHouseFeeSameCountOnly(wxDouble totalcnt,wxDouble monthrate,wxInt16 terms, int monthindex); void uiExpendAll(wxTreeItemId Id); xmlXPathObjectPtr getnodeset (xmlDocPtr doc, xmlChar *xpath);private: wxTreeCtrl *uiTree; wxString filename; xmlNodePtr HouseFeeNode; void RecursionInitUi(wxTreeItemId *pId); xmlChar *GetNodeXPath(xmlNodePtr nodeitem); long GetFolderIndex(void);};#endif // _MONEY_BOOK_H_
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -