Files
envi-code/SourceCode/Code2026/tg_shs/shs_kerncmd/GridView.h
T
2026-09-28 15:28:50 +08:00

118 lines
3.2 KiB
C++

#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<long> m_lstBookmarks; // All the valid record number
int m_nCurIndex;
BOOL m_bAscend;
CString m_sSortFieldName;
DList<CFieldHead> 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