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

📄 maindlg.cpp

📁 html MFC对话框显示数据库内容
💻 CPP
字号:
// MainDlg.cpp : 实现文件
//

#include "stdafx.h"
#include "htmdb.h"
#include "MainDlg.h"
#include "BASIC.h"
#include "FILE.h"
#include "htmdbDlg.h"
#include "AddBasicDlg.h"
#include "SetDlg.h"

#define RED ((long)0xaa2222)
//_________________________________
class CAboutDlg : public CDialog
{
public:
	CAboutDlg();

	// 对话框数据
	enum { IDD = IDD_ABOUTBOX };

protected:
	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV 支持

	// 实现
protected:
	DECLARE_MESSAGE_MAP()
};

CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
{
}

void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{

	CDialog::DoDataExchange(pDX);
}

BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
END_MESSAGE_MAP()

//_________________________________
// CMainDlg 对话框

IMPLEMENT_DYNCREATE(CMainDlg, CDHtmlDialog)

CMainDlg::CMainDlg(CWnd* pParent /*=NULL*/)
: CDHtmlDialog(CMainDlg::IDD, CMainDlg::IDH, pParent)
, m_nCurTable(0)
{
	m_strID=_T("");
	m_bLogin=false;
}

CMainDlg::~CMainDlg()
{
}

void CMainDlg::DoDataExchange(CDataExchange* pDX)
{
	CDHtmlDialog::DoDataExchange(pDX);
	DDX_DHtml_ElementInnerText(pDX, _T("appname"), m_strAppName);
}

BOOL CMainDlg::OnInitDialog()
{
	m_strAppName=AfxGetApp()->GetProfileString ("APP","NAME","");
	CDHtmlDialog::OnInitDialog();
	this->SetWindowPos (&CWnd::wndNoTopMost ,0,0,550,400,SWP_NOZORDER);
	this->m_wndBrowser.SetWindowPos(&CWnd::wndNoTopMost ,0,0,550,400,SWP_NOZORDER);
	this->CenterWindow ();
	return TRUE;  // 除非将焦点设置到控件,否则返回 TRUE
}

BEGIN_MESSAGE_MAP(CMainDlg, CDHtmlDialog)
END_MESSAGE_MAP()

BEGIN_DHTML_EVENT_MAP(CMainDlg)
	DHTML_EVENT_ONCLICK(_T("ButtonOK"), OnButtonOK)
	DHTML_EVENT_ONCLICK(_T("ButtonDel"), OnButtonDel)
	DHTML_EVENT_ONCLICK(_T("ButtonAbout"), OnButtonAbout)

	DHTML_EVENT_ONCLICK(_T("ButtonCancel"), OnButtonCancel)
	DHTML_EVENT_ONCLICK(_T("ButtonSet"), OnButtonSet)
	DHTML_EVENT_ONCLICK(_T("ButtonLogin"), OnButtonLogin)
	DHTML_EVENT_ONCLICK(_T("ButtonPersonnel") ,OnButtonPersonnel)
	DHTML_EVENT_ONCLICK(_T("ButtonIns"),OnButtonIns)
	DHTML_EVENT_ONCLICK(_T("ButtonFile"),OnButtonFile)
	DHTML_EVENT_ONCLICK(_T("ButtonHelp"),OnButtonHelp)
	DHTML_EVENT_CLASS(DISPID_HTMLELEMENTEVENTS_ONCLICK,_T("Record"),OnRecordOver)
	DHTML_EVENT_CLASS(DISPID_HTMLELEMENTEVENTS_ONDBLCLICK,_T("Record"),OnRecordOut)

END_DHTML_EVENT_MAP()



// CMainDlg 消息处理程序

HRESULT CMainDlg::OnButtonOK(IHTMLElement* /*pElement*/)
{
	AfxMessageBox("OnOK");
	OnOK();
	return S_OK;  // 除非将焦点设置到控件,否则返回 TRUE
}

HRESULT CMainDlg::OnButtonCancel(IHTMLElement* /*pElement*/)
{

	if(AfxMessageBox("真的退出吗?",MB_OKCANCEL)==IDOK) OnCancel();
	return S_OK;  // 除非将焦点设置到控件,否则返回 TRUE
}
HRESULT CMainDlg::OnButtonLogin (IHTMLElement *pElement)
{
	ChtmdbDlg dlg(this);
	if(dlg.DoModal()==IDOK)

	{
		AfxMessageBox("登录成功!");

		this->m_bLogin =true;
	}
	return S_OK;
}
HRESULT CMainDlg::OnButtonSet(IHTMLElement *pElement)
{
	CSetDlg dlg;
	dlg.DoModal ();
	m_strAppName=AfxGetApp()->GetProfileString ("APP","NAME","");
	UpdateData(FALSE);

	return S_OK;
}
HRESULT CMainDlg::OnButtonPersonnel(IHTMLElement *pElement)
{
	RefreshBasic();

	return S_OK;
}
HRESULT CMainDlg::OnButtonIns(IHTMLElement *pElement)
{
	switch(m_nCurTable)
	{
	case 1:
		InsertBasic();

		break;
	case 2:
		InsertFile();
		break;
	default:
		AfxMessageBox("请打开一个表");

	}
	return S_OK;
}
HRESULT CMainDlg:: OnButtonFile(IHTMLElement *pElement)

{
	this->RefreshFile ();
	return S_OK;

}
HRESULT CMainDlg::OnButtonHelp(IHTMLElement *pElement)
{
	return S_OK;

}
HRESULT CMainDlg::OnRecordOver(IHTMLElement *pElement)

{

	COleVariant varColor;
	CComBSTR combstr;
	CComBSTR bstrcolor("");
	varColor=RED;
	pElement->get_innerHTML(&combstr);
	CString strCurID(combstr);
	if(m_strID!=strCurID)
	{
		CComPtr<IHTMLElement> preEle;
		GetElementInterface (m_strID,IID_IHTMLElement,(void **) &preEle);
		if(preEle!=NULL)
		{
			CComPtr<IHTMLStyle> style;
			preEle->get_style (&style);
			if(style!=NULL)

				style->put_background (bstrcolor);


		}
		m_strID=strCurID;

	}

	CComPtr<IHTMLElement> spTR;
	pElement->get_parentElement(&spTR);
	CComPtr<IHTMLStyle> style2;
	//pElement->get_style (&style);
	spTR->get_style (&style2);
	if(style2!=NULL)
	{
		//style->put_backgroundColor (varColor);
		// style->put_cursor (L"hand");
		style2->put_backgroundColor(varColor);
	}

	return S_OK;

}
HRESULT CMainDlg::OnRecordOut(IHTMLElement *pElement)

{
	/*
	//COleVariant varColor;
	CComBSTR combstr,bstrcolor("");
	//	varColor=NULL;

	pElement->get_innerHTML(&combstr);
	CString strID(combstr);
	CComPtr<IHTMLElement> spTR;
	pElement->get_parentElement(&spTR);
	CComPtr<IHTMLStyle> style,style2;
	pElement->get_style (&style);

	AfxMessageBox(strID);
	spTR->get_style(&style2);
	if(style!=NULL)
	{
	style->put_background( bstrcolor);
	style2->put_background(bstrcolor);
	//  style->put_cursor (L"hand");
	}
	*/
	return S_OK;

}
void CMainDlg::InsertBasic()
{
	CAddBasicDlg dlg;
	dlg.DoModal ();
	RefreshBasic();

}
void CMainDlg::DeleteBasic ()
{
	if(m_strID.IsEmpty())
	{
		AfxMessageBox("单击第一列选择一个记录");
		return;
	}
	CBASIC basicset;
	basicset.Open();
	CString strSQL;
	strSQL.Format("delete from BASIC  where BASIC_ID=%s",m_strID);
	basicset.m_pDatabase ->ExecuteSQL (strSQL);
	basicset.Close();
	//RefreshBasic();


}
HRESULT CMainDlg::OnButtonDel(IHTMLElement *pElement)

{

	switch(m_nCurTable)
	{
	case 1:
		DeleteBasic();
		RefreshBasic();

		break;
	case 2:
		DeleteFile();
		RefreshFile();
		break;
	default:
		AfxMessageBox("请打开一个表");

	}

	return S_OK;

}
void CMainDlg::DeleteFile ()
{
	if(m_strID.IsEmpty())
	{
		AfxMessageBox("单击第一列选择一个记录");
		return;
	}

	CFILE fileset;
	fileset.Open();
	CString strSQL;
	strSQL.Format("delete from FILE  where FILE_ID=%s",m_strID);
	fileset.m_pDatabase ->ExecuteSQL (strSQL);
	fileset.Close();


}
HRESULT CMainDlg::OnButtonAbout(IHTMLElement *pElement)
{

	CAboutDlg dlg;
	dlg.DoModal ();
	return S_OK;
}
void CMainDlg::InsertFile()
{
	AfxMessageBox("功能未实现!");
}
void CMainDlg::OnOK()
{
}
void CMainDlg::RefreshBasic()
{
	//::SetCursor(AfxGetApp()->LoadCursor(IDC_WAIT));
	//SetCapture ();


	if(m_bLogin)
	{

		m_strID="";
		m_nCurTable=1;
		CString strTable,strTd;
		strTable = _T("<TABLE BORDER='1' CELLPADDING='0' CELLSPACING='0' STYLE='color:blue;Font-size: 9pt'>")
			_T("<THEAD><TR><TD>ID</TD><TD>姓名</TD><TD>性别</TD><TD>民族</TD><TD>岗位</TD><TD>职称</TD><TD>职务</TD><TD>部门</TD><TD>电话</TD><TD>电邮</TD><TD>主页</TD></TR></THEAD>");


		// recreate the filelist table
		CComPtr<IHTMLElement> spRecordTable;
		GetElementInterface(_T("RecordTable"), IID_IHTMLElement, (void **) &spRecordTable);

		if (spRecordTable != NULL)
		{

			CBASIC basicset;
			basicset.Open();
			CString strBasicID;
			CString strBasicName;
			CString strBasicSex;
			CString	strBasicNation;
			CString strBasicJob;
			CString	strBasicZhicheng;	//技术职称
			CString	strBasicDuty;	//行政职务,
			CString strBasicDept;
			CString strBasicTelNo;
			CString strBasicEmail;
			CString strBasicHomepage;

			while(!basicset.IsEOF ())
			{
				basicset.GetFieldValue (0,strBasicID);
				basicset.GetFieldValue (1,strBasicName);
				basicset.GetFieldValue (2,strBasicSex);
				basicset.GetFieldValue (4,strBasicJob);
				basicset.GetFieldValue (3,strBasicNation);
				basicset.GetFieldValue (5,strBasicZhicheng);
				basicset.GetFieldValue (6,strBasicDuty);
				basicset.GetFieldValue (7,strBasicDept);
				basicset.GetFieldValue(8,strBasicTelNo);
				basicset.GetFieldValue (9,strBasicEmail);
				basicset.GetFieldValue (10,strBasicHomepage);
				//if(strBasicDept.IsEmpty ()) strBasicDept.Format("%s","&nbsp;");
				strTd.Format(_T("<TR ID='%s'><TD CLASS='Record'>%s</TD><TD>%s</TD><TD>%s</TD><TD>%s</TD><TD>%s</TD><TD>%s</TD><TD>%s</TD><TD>%s</TD><TD>%s</TD><TD>%s</TD><TD>%s</TD></TR>"),
					strBasicID,strBasicID,strBasicName,strBasicSex,strBasicNation,strBasicJob,strBasicZhicheng,strBasicDuty,strBasicDept,strBasicTelNo,strBasicEmail,strBasicHomepage);
				strTable+=strTd;
				basicset.MoveNext ();

			}

			strTable += _T("</TABLE>");
			BSTR bstrTable = strTable.AllocSysString();
			spRecordTable->put_innerHTML(bstrTable);
			SysFreeString(bstrTable);
		}
	}
	else
	{AfxMessageBox("未知用户,请登录");
	}
	//ReleaseCapture();


}
void CMainDlg::RefreshFile()
{
	//::SetCursor(AfxGetApp()->LoadCursor(IDC_WAIT));
	//SetCapture ();
	if(m_bLogin)
	{
		m_strID="";
		m_nCurTable=2;
		CString strTable,strTd;
		strTable = _T("<TABLE BORDER='1'CELLPADDING='0' CELLSPACING='0'STYLE='color:blue;Font-size: 9pt' WIDTH='500'>\n")
			_T("<THEAD><TR><TD >ID</TD><TD>文号</TD><TD>标题</TD><TD>发文机关</TD><TD>发文日期</TD><TD>执行时间</TD></TR></THEAD>");
		CComPtr<IHTMLElement> spRecordTable;
		this->GetElementInterface (_T("RecordTable"),IID_IHTMLElement,(void **) &spRecordTable);
		if (spRecordTable != NULL)
		{

			CFILE fileset;
			fileset.Open();
			CString strFileID;
			CString strFileNumber;
			CString strFileTitle;
			CString strFileDept;
			CString strFileDate;
			CString strFileDate2;

			while(!fileset.IsEOF ())
			{
				fileset.GetFieldValue (0,strFileID);
				fileset.GetFieldValue (1,strFileNumber);
				fileset.GetFieldValue (2,strFileTitle);
				fileset.GetFieldValue (3,strFileDept);
				fileset.GetFieldValue (4,strFileDate);
				fileset.GetFieldValue (5,strFileDate2);

				strTd.Format(_T("<TR ID='%s'><TD CLASS='Record'>%s</TD><TD>%s</TD><TD>%s</TD><TD>%s</TD><TD>%s</TD><TD>%s</TD></TR>"),\
					strFileID,strFileID,strFileNumber,strFileTitle,strFileDept,strFileDate,strFileDate2);
				strTable+=strTd;
				fileset.MoveNext();

			}
			strTable+=_T("</TABLE>");
			BSTR bstrTable=strTable.AllocSysString ();
			spRecordTable->put_innerHTML(bstrTable);
			SysFreeString(bstrTable);
			fileset.Close();
		}
	}
	else{AfxMessageBox("未知用户,请登录");
	}
	//ReleaseCapture();

}

⌨️ 快捷键说明

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