#ifndef __GRIDVIEW_H #define __GRIDVIEW_H // MatDlg.h : header file // ///////////////////////////////////////////////////////////////////////////// // CMatDlg dialog //{{AFX_INCLUDES() //#include "TrueDbGrid50.h" //}}AFX_INCLUDES class CFieldHead { public: XString m_sName; XString m_sDesc; short m_nWidth; BOOL m_bWritable; int m_nDataType; //Use VARIANT data type flag XString m_sDataFormat; public: CFieldHead() {m_bWritable=TRUE; m_nDataType=VT_BSTR;} CFieldHead(const TCHAR *name, const TCHAR *desc, short w, BOOL bW=TRUE, int nT=VT_BSTR, const TCHAR *szFormat=NULL): m_sName(name), m_sDesc(desc), m_nWidth(w), m_bWritable(bW), m_nDataType(nT) { if(szFormat) m_sDataFormat=szFormat; } CFieldHead(const CFieldHead &src) { *this = src; } CFieldHead & operator = (const CFieldHead &src) { m_sName=src.m_sName; m_sDesc=src.m_sDesc; m_nWidth=src.m_nWidth; m_bWritable = src.m_bWritable; m_nDataType = src.m_nDataType; m_sDataFormat = src.m_sDataFormat; return *this; } int operator !() { return !m_sName; } BOOL IsNumeric() { return (m_nDataType==VT_I2 || m_nDataType==VT_I4 || m_nDataType==VT_R4 || m_nDataType==VT_R8); } BOOL IsInteger() { return (m_nDataType==VT_I2 || m_nDataType==VT_I4); } }; // modify by xlc on 090902 消除tg5lib影响 // 下面的类,辅助CTrueDBGrid50_TDBGrid类,已经不再使用 //#if ADS<18 #if 0 class CGridView : public CFormView { // Construction protected: CGridView():CFormView(0U) {ASSERT(0);} CGridView(UINT id); // standard constructor DECLARE_DYNCREATE(CGridView) public: // Dialog Data //{{AFX_DATA(CMatDlg) CTrueDBGrid50_TDBGrid m_grid; //}}AFX_DATA CodeBase m_db; XDbfTable *m_pTable; DList m_lstBookmarks; // All the valid record number int m_nCurIndex; BOOL m_bAscend; CString m_sSortFieldName; DList m_lstHeadInfo; // Overrides // ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(CGridView) protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support //}}AFX_VIRTUAL // Implementation protected: BOOL m_bReadEnable; BOOL IsBOF() { return m_nCurIndex<=-1; } BOOL IsEOF() { return m_nCurIndex>=m_lstBookmarks.Length(); } void MoveNext() { m_nCurIndex ++; } BOOL MoveTo(long bookmark); void Move(long offset); void GetBookmarks(BOOL bRetriveFromDbf); void ConfigGrid(); void OnDocFileChanged(); void ReadData(CTrueDBGrid50_RowBuffer &RowBuffer, VARIANT FAR* StartLocation, long offset, long FAR* ApproximatePosition); virtual XDbfTable *OpenDbfTable() { return NULL; } // Generated message map functions //{{AFX_MSG(CGridView) virtual void OnInitialUpdate(); afx_msg void OnUnboundReadDataExMatgrid(LPDISPATCH RowBuf, VARIANT FAR* StartLocation, long offset, long FAR* ApproximatePosition); afx_msg void OnUnboundWriteDataMatgrid(LPDISPATCH RowBuf, VARIANT FAR* WriteLocation); afx_msg void OnUnboundAddDataMatgrid(LPDISPATCH RowBuf, VARIANT FAR* NewRowBookmark); afx_msg void OnUnboundDeleteRowMatgrid(VARIANT FAR* Bookmark); afx_msg void OnHeadClickMatgrid(short ColIndex); DECLARE_EVENTSINK_MAP() //}}AFX_MSG DECLARE_MESSAGE_MAP() }; #endif #endif