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

📄 browdatastrudlg.cpp

📁 这是书上的代码
💻 CPP
字号:
// BrowDataStruDlg.cpp : implementation file
//

#include "stdafx.h"
#include "OO4O_VC.h"
#include "BrowDataStruDlg.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CBrowDataStruDlg dialog


CBrowDataStruDlg::CBrowDataStruDlg(CString strTableName,BOOL bIsTableData,CWnd* pParent /*=NULL*/)
	: CDialog(CBrowDataStruDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CBrowDataStruDlg)
		// NOTE: the ClassWizard will add member initialization here
	m_strTableName =strTableName;
	m_bIsTableData =bIsTableData;
	//}}AFX_DATA_INIT
}


void CBrowDataStruDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CBrowDataStruDlg)
	DDX_Control(pDX, IDC_LIST_DATASTRU, m_listctrl1);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CBrowDataStruDlg, CDialog)
	//{{AFX_MSG_MAP(CBrowDataStruDlg)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CBrowDataStruDlg message handlers

BOOL CBrowDataStruDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	DWORD st= m_listctrl1.GetExtendedStyle();
		m_listctrl1.SetExtendedStyle(st|LVS_EX_GRIDLINES );
	COO4O_VCApp * pApp =(COO4O_VCApp *)AfxGetApp();	
	if(!this->m_bIsTableData)
	{
	
		CStringArray strColumnNameArray,arrColumnDataType,
			arrDataLength,arrDataPrec,arrDataScale;
			pApp->oo4o_vc.GetTableColumns(m_strTableName,&strColumnNameArray,&arrColumnDataType,
			&arrDataLength,&arrDataPrec,&arrDataScale);
		//Insert the column
		m_listctrl1.InsertColumn(0,"字段名",LVCFMT_LEFT,100,0);
		m_listctrl1.InsertColumn(1,"类型",LVCFMT_LEFT,80,1);
		m_listctrl1.InsertColumn(2,"长度",LVCFMT_LEFT,38,2);
		m_listctrl1.InsertColumn(3,"精度",LVCFMT_LEFT,60,3);
		m_listctrl1.InsertColumn(4,"小数位数",LVCFMT_LEFT,60,4);
		m_listctrl1.DeleteAllItems();

		for(int i=0;i<strColumnNameArray.GetSize();i++)
		{
			m_listctrl1.InsertItem(i,strColumnNameArray.GetAt(i),1);
			CString str;
			str.Format("%d",i+1);
			m_listctrl1.SetItemText(i,0,strColumnNameArray.GetAt(i));
			m_listctrl1.SetItemText(i,1,arrColumnDataType.GetAt(i));
			m_listctrl1.SetItemText(i,2,arrDataLength.GetAt(i));
			m_listctrl1.SetItemText(i,3,arrDataPrec.GetAt(i));
			m_listctrl1.SetItemText(i,4,arrDataScale.GetAt(i));
		}	
	}
	else
	{
		CString szSQL;
		szSQL.Format("select * from %s",m_strTableName);
		pApp->oo4o_vc.m_OraSet.Open(pApp->oo4o_vc.m_OraDB,szSQL);
		if(!pApp->oo4o_vc.m_OraSet.IsOpen()) 
		{
			AfxMessageBox(pApp->oo4o_vc.m_OraSet.GetErrorText());
			return FALSE;
		}
		int nFields=pApp->oo4o_vc.m_OraSet.GetFieldCount();
		if(nFields<=0) return FALSE;
		//编辑窗口中添加字段名
		for(int i=0;i<nFields;i++)
		{
			CString szFieldName=pApp->oo4o_vc.m_OraSet.GetField(i).GetName();
			m_listctrl1.InsertColumn(i,szFieldName,LVCFMT_CENTER,80,i);
		}
		int nRecords=pApp->oo4o_vc.m_OraSet.GetRecordCount();
		if(nRecords>0) //记录存在,逐步添加记录信息
		{
			int iNext=0;		
			while (!pApp->oo4o_vc.m_OraSet.IsEOF())
			{
				m_listctrl1.InsertItem(iNext,"",1);
				for(i=0;i<nFields;i++)
				{	
					OValue val;
					pApp->oo4o_vc.m_OraSet.GetFieldValue(i,&val);
					CString strValue=(const char *)val;
					

					if(strValue.GetLength()>0)
					{
						m_listctrl1.SetItemText(iNext,i,strValue);
					}
					else
					{
						m_listctrl1.SetItemText(iNext,i,"BLOB");
					}
				}
				pApp->oo4o_vc.m_OraSet.MoveNext();
				iNext=iNext+1;
			}
			
		}
		pApp->oo4o_vc.m_OraSet.Close();
	}
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

⌨️ 快捷键说明

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