亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? shtmlreport.cpp

?? 如果在您的軟件中需要輸出報(bào)表
?? CPP
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
// SHTMLReport.cpp: implementation of the CSHTMLReport class.
//	模塊:?jiǎn)⒊虉?bào)表(基于DHTML)
//	說明:采用HTML提供對(duì)表格形式的數(shù)據(jù)的顯示,目前只提供了幾個(gè)常用的接口,
//	接口:
//			void SetIndexFormat(CString strIndexFormat);
//			BOOL MergeCol(int iCol);
//			BOOL MergeRow(int iRow);
//			BOOL DeleteRow(int index);
//			BOOL SetItemHTML(int iRow,int iCol,CString html);
//			BOOL InsertRow(int index);
//			void SetTableName(CString name);
//			void SetHtmlDocPtr(IHTMLDocument2 *pDoc);
//	本代碼可以任意使用、修改、傳播。
//				黃建雄 2003-10-14
//				huangjianxiong@sina.com
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "sreport.h"
#include "SHTMLReport.h"

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

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CSHTMLReport::CSHTMLReport()
{
	m_pHtmlDoc2=NULL;
	m_iHeadLines=1;
}

CSHTMLReport::~CSHTMLReport()
{

}

//***********************************************
//	指定HTML文檔接口
//**********************************************
void CSHTMLReport::SetHtmlDocPtr(IHTMLDocument2 *pDoc)
{
	m_pHtmlDoc2=pDoc;
}

//***********************************************
//	指定操作的表的名稱,表名稱在HTML模板中指定
//*********************************************
void CSHTMLReport::SetTableName(CString name)
{
	m_strTableName=name;
}

//**************************************************
//	獲取HTML表格COM接口,內(nèi)部接口
//**************************************************
IHTMLTable * CSHTMLReport::GetTableDispatch()
{
	ASSERT(m_pHtmlDoc2);
	IHTMLElementCollection *all;
	m_pHtmlDoc2->get_all(&all);
	IDispatch *distable;
	all->item(COleVariant(m_strTableName),COleVariant(short(0)),&distable);
	IHTMLTable *pITable=NULL;
	HRESULT hr=distable->QueryInterface(IID_IHTMLTable, (void**)&pITable);//get table dispatch
	ASSERT(hr==S_OK);
	return pITable;
}

//*******************************************************
//	在指定位置插入一行,index==-1表示append
//*******************************************************
BOOL CSHTMLReport::InsertRow(int index)
{
	IHTMLTable *pITable=GetTableDispatch();
	IDispatch *disrow;
	HRESULT hr=pITable->insertRow(index,&disrow);//insert a  row at 1 position
	if(hr!=S_OK) return FALSE;

	IHTMLTableRow *pIRow;
	hr=disrow->QueryInterface(IID_IHTMLTableRow, (void**)&pIRow);
	ASSERT(hr==S_OK);
	
	long cols;
	hr=pITable->get_cols(&cols);
	ASSERT(hr==S_OK&&cols!=0);
	
	IDispatch *discell;
	IHTMLElement *cell;

	CString str= " ";
	BSTR bsStr = str.AllocSysString();
	for(int i=0;i<cols;i++)
	{
		pIRow->insertCell(i,&discell);
		discell->QueryInterface(IID_IHTMLElement,(void **)&cell);
		cell->put_innerHTML(bsStr);
		cell->Release();
		discell->Release();
	}
	SysFreeString(bsStr);
	pIRow->Release();

	if(!m_strIndexFormat.IsEmpty())
	{
		IHTMLElementCollection *irows;
		hr=pITable->get_rows(&irows);
		ASSERT(hr==S_OK);
		long rows;
		hr=irows->get_length(&rows);
		ASSERT(hr==S_OK);
		CString strHead="";
		if(index==-1) index=rows-1;
		for(long i=index;i<rows;i++)
		{
			strHead.Format(m_strIndexFormat,i);
			BSTR bsStrHead=strHead.AllocSysString();
			hr=irows->item(COleVariant(long(i)),COleVariant(long(0)),&disrow);
			ASSERT(hr==S_OK);
			//get row interface
			hr=disrow->QueryInterface(IID_IHTMLTableRow, (void**)&pIRow);
			ASSERT(hr==S_OK);
			IHTMLElementCollection *icells;
			hr=pIRow->get_cells(&icells);
			ASSERT(hr==S_OK);
			hr=icells->item(COleVariant(long(0)),COleVariant(long(0)),&discell);
			ASSERT(hr==S_OK);
			discell->QueryInterface(IID_IHTMLElement,(void **)&cell);
			ASSERT(hr==S_OK);
			cell->put_innerText(bsStrHead);
			SysFreeString(bsStrHead);
			cell->Release();
			pIRow->Release();
			disrow->Release();
		}
		irows->Release();
	}

	pIRow->Release();
	disrow->Release();
	pITable->Release();
	return TRUE;
}

//***************************************************************
//	修改單元格的內(nèi)容:可以使用html語(yǔ)法
//***************************************************************
BOOL CSHTMLReport::SetItemHTML(int iRow, int iCol, CString html)
{
	IHTMLTable *pITable=GetTableDispatch();
	//get row collect
	IHTMLElementCollection *pIRows;
	HRESULT hr=pITable->get_rows(&pIRows);
	ASSERT(hr==S_OK);
	//get specisfied row
	IDispatch *disrow;
	hr=pIRows->item(COleVariant(long(iRow)),COleVariant(short(0)),&disrow);//iRow row
	if(hr!=S_OK||disrow==NULL) return FALSE;

	IHTMLTableRow *pIRow;
	hr=disrow->QueryInterface(IID_IHTMLTableRow, (void**)&pIRow);
	ASSERT(hr==S_OK);
	//get cell collect
	IHTMLElementCollection *rowcells;
	pIRow->get_cells(&rowcells);
	//get cell
	IDispatch *discell;
	IHTMLElement *cell;
	hr=rowcells->item(COleVariant(long(iCol)),COleVariant(short(0)),&discell);//iCol col
	if(hr!=S_OK||discell==NULL) return FALSE;
	hr=discell->QueryInterface(IID_IHTMLElement,(void **)&cell);
	ASSERT(hr==S_OK);

	BSTR bsStr = html.AllocSysString();
	cell->put_innerHTML(bsStr);
	SysFreeString(bsStr);
	
	cell->Release();
	pIRow->Release();
	pITable->Release();
	return TRUE;
}

//************************************************
//	刪除指定行
//************************************************
BOOL CSHTMLReport::DeleteRow(int index)
{
	IHTMLTable *pITable=GetTableDispatch();
	HRESULT hr=pITable->deleteRow(index);
	pITable->Release();
	return hr==S_OK;
}

//************************************************
//	將指定行數(shù)據(jù)相同的單元格合并
//************************************************
BOOL CSHTMLReport::MergeRow(int iRow)
{
	IHTMLTable *pITable=GetTableDispatch();
	//get row collect
	IHTMLElementCollection *pIRows;
	HRESULT hr=pITable->get_rows(&pIRows);
	ASSERT(hr==S_OK);
	//get specisfied row
	IDispatch *disrow;
	hr=pIRows->item(COleVariant(long(iRow)),COleVariant(short(0)),&disrow);//iRow row
	if(hr!=S_OK||disrow==NULL) return FALSE;

	IHTMLTableRow *pIRow;
	hr=disrow->QueryInterface(IID_IHTMLTableRow, (void**)&pIRow);
	ASSERT(hr==S_OK);
	//get cell collect
	IHTMLElementCollection *rowcells;
	pIRow->get_cells(&rowcells);
	long cells;
	hr=rowcells->get_length(&cells);

	IDispatch *discell;
	IHTMLElement *icellElement;
	long begin=-1,end=-1;
	CString beginStr;
	CString cellStr;
	long    beginRowSpan=0,rowSpan;
	for(long i=m_strIndexFormat.IsEmpty()?0:1;i<cells;i++)
	{
		//get cell
		hr=rowcells->item(COleVariant(long(i)),COleVariant(short(0)),&discell);
		ASSERT(hr==S_OK&&discell!=NULL);
		hr=discell->QueryInterface(IID_IHTMLElement,(void **)&icellElement);
		ASSERT(hr==S_OK&&icellElement!=NULL);
		
		cellStr=GetElementText(icellElement,inner_text);
		IHTMLTableCell *icell;
		hr=discell->QueryInterface(IID_IHTMLTableCell,(void **)&icell);
		ASSERT(hr==S_OK&&icell!=NULL);
		icell->get_rowSpan(&rowSpan);
		if(cellStr!=beginStr||rowSpan!=beginRowSpan)
		{
			if(end-begin+1>1&&begin!=-1)
			{
				ASSERT(beginRowSpan!=0);
				MergeRowPrivate(pIRow,begin,end);
				cells-=end-begin;
				i-=end-begin;
			}
			begin=end=i;
			beginStr=cellStr;
			beginRowSpan=rowSpan;
		}else
			end=i;
		icell->Release();
		icellElement->Release();
	}

	if(begin!=end)
		MergeRowPrivate(pIRow,begin,end);
	pIRow->Release();
	pITable->Release();
	return TRUE;
}

//************************************************
//	將指定列數(shù)據(jù)相同的單元格合并
//************************************************
BOOL CSHTMLReport::MergeCol(int iCol)
{
	IHTMLTable *pITable=GetTableDispatch();
	//get row collect
	IHTMLElementCollection *pIRows;
	HRESULT hr=pITable->get_rows(&pIRows);
	ASSERT(hr==S_OK);
	CSArray<COLCELLINFO> colArray;
	if(!MakeColDispatchCollection(pIRows,iCol,colArray)) return FALSE;
	int colCells=colArray.GetSize();

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
奇米在线7777在线精品| 久久在线免费观看| 日韩午夜三级在线| 日韩美女视频一区二区| 理论电影国产精品| 91国偷自产一区二区开放时间 | 日本亚洲欧美天堂免费| 91麻豆swag| 日本一区二区三级电影在线观看| 丝袜a∨在线一区二区三区不卡| 成人av影视在线观看| 精品国产露脸精彩对白 | 欧美人成免费网站| 18欧美亚洲精品| 国产成人精品一区二区三区网站观看| 91精品国产欧美一区二区成人| 亚洲人成亚洲人成在线观看图片| 粉嫩aⅴ一区二区三区四区| 精品国产一区二区在线观看| 国内精品嫩模私拍在线| 91.xcao| 亚洲一区二区欧美激情| 日本韩国欧美一区| 轻轻草成人在线| 国产日韩欧美综合在线| 在线一区二区观看| 激情成人综合网| 亚洲精品久久久久久国产精华液| 99国产精品99久久久久久| 国产欧美精品一区aⅴ影院 | 欧美亚洲另类激情小说| 亚洲精品国产无天堂网2021| 91精品久久久久久蜜臀| 成人国产亚洲欧美成人综合网| 亚洲国产精品天堂| 制服.丝袜.亚洲.另类.中文| 国产九色sp调教91| 国产精品无遮挡| 成人午夜免费电影| 成人欧美一区二区三区白人| 日韩一区二区三区在线观看| 97久久精品人人澡人人爽| 蜜臀91精品一区二区三区| 91精品国产综合久久蜜臀| 成人激情动漫在线观看| 美洲天堂一区二卡三卡四卡视频| 国产精品动漫网站| jiyouzz国产精品久久| 一区二区三区四区高清精品免费观看 | 美国毛片一区二区| 亚洲欧美二区三区| 国产日韩欧美制服另类| 日韩你懂的在线观看| 国产精品99久久久久久有的能看| 亚洲大片精品永久免费| 欧美一区二区视频在线观看2022 | 99久久久精品| 国产精品影音先锋| 裸体一区二区三区| 亚洲va韩国va欧美va| 亚洲老司机在线| 国产精品久久久一本精品| 精品成a人在线观看| 69av一区二区三区| 欧美性猛片xxxx免费看久爱| caoporn国产精品| 成人午夜激情视频| 成人美女在线视频| 国产精品456露脸| 国内精品国产三级国产a久久| 免费久久精品视频| 午夜精品福利久久久| 日韩亚洲欧美一区二区三区| 欧美日韩性生活| 99r国产精品| caoporm超碰国产精品| 91小宝寻花一区二区三区| 99亚偷拍自图区亚洲| 99精品国产一区二区三区不卡| 丁香激情综合国产| 94色蜜桃网一区二区三区| jizz一区二区| 欧美亚洲一区二区在线观看| 欧美日韩一区 二区 三区 久久精品| 色综合久久中文综合久久97| 久久99国内精品| 亚洲综合偷拍欧美一区色| 亚洲欧美乱综合| 亚洲一区二区美女| 日本va欧美va瓶| 蜜桃久久精品一区二区| 国产自产视频一区二区三区| 国产精品一区二区果冻传媒| 成人黄页在线观看| 色婷婷综合久久久久中文一区二区 | 日韩精品视频网| 久久99国产精品久久| 国产美女一区二区三区| 蜜桃av噜噜一区| 国产久卡久卡久卡久卡视频精品| 国产成人日日夜夜| 99久久精品情趣| 欧美片在线播放| 久久婷婷国产综合精品青草| 国产精品国产三级国产普通话99| 一区二区在线电影| 免费人成精品欧美精品| 成人精品国产免费网站| 在线观看亚洲专区| 欧美中文字幕一区二区三区亚洲| 欧美巨大另类极品videosbest | 久久精品一区二区三区不卡| 日韩欧美激情在线| 国产精品天美传媒| 亚洲大片在线观看| 国产91丝袜在线播放0| 色一情一伦一子一伦一区| 日韩一区二区三区视频在线观看| 国产女主播在线一区二区| 亚洲狠狠爱一区二区三区| 国产麻豆精品视频| 欧美色视频一区| 国产精品免费久久久久| 秋霞午夜鲁丝一区二区老狼| 99re在线视频这里只有精品| 欧美精品在线视频| 国产精品电影一区二区三区| 五月天精品一区二区三区| 成人在线一区二区三区| 日韩欧美一级在线播放| 亚洲男同1069视频| 韩国精品免费视频| 欧美日韩成人一区二区| 国产精品理伦片| 狠狠色狠狠色综合系列| 欧美在线播放高清精品| 国产免费观看久久| 极品少妇xxxx精品少妇| 欧美日韩黄色一区二区| 亚洲视频一区二区在线| 国产成人亚洲精品青草天美| 日韩一级完整毛片| 亚洲国产视频一区| 99久久精品免费观看| 久久久久久一二三区| 亚洲三级在线免费观看| 国产精品系列在线观看| 日韩精品一区二区三区视频| 亚洲国产一区二区视频| 本田岬高潮一区二区三区| 久久久久综合网| 美女视频一区二区| 欧美一区三区二区| 亚洲成人在线免费| 在线一区二区观看| 一区二区欧美精品| 91国偷自产一区二区三区观看| 国产精品久久久久婷婷二区次| 国产美女娇喘av呻吟久久| 欧美大片在线观看一区二区| 日韩高清欧美激情| 欧美一区二区三区小说| 亚洲国产日韩在线一区模特| 欧美日韩中文一区| 午夜欧美大尺度福利影院在线看| 色爱区综合激月婷婷| 亚洲特黄一级片| 色综合天天综合狠狠| 日韩一区和二区| 久久99蜜桃精品| 精品国产91洋老外米糕| 国模套图日韩精品一区二区 | 成人免费看片app下载| 中文字幕精品一区二区三区精品| 亚洲成a人片在线观看中文| 色悠悠亚洲一区二区| 亚洲综合区在线| 欧美女孩性生活视频| 日本免费新一区视频| 久久亚洲捆绑美女| 成人av中文字幕| 亚洲欧美日韩人成在线播放| 91久久精品一区二区二区| 亚洲国产视频直播| 精品少妇一区二区三区日产乱码 | 亚洲欧美色图小说| 91官网在线免费观看| 午夜视频在线观看一区二区三区| 欧美亚洲精品一区| 激情六月婷婷综合| 国产精品青草综合久久久久99| 99久久伊人精品| 亚洲h动漫在线| 日韩一区二区精品葵司在线| 国产一区在线精品| 亚洲色图另类专区| 欧美一区二区三区视频在线观看| 国产麻豆9l精品三级站| 18成人在线观看| 日韩欧美视频在线|