社区
数据库
帖子详情
关于Microsoft DataGrid Control数据的打印
nichulas
2003-03-25 10:37:58
在单文档中Microsoft ADO Data Control与Microsoft DataGrid Control关联,就可以从数据库中取到想要打印的数据,请问如何将生成的数据打印或者生成*.xls或者*.csv文件!!如果你不吝赐教,并且问题解决,最少给你200分
...全文
95
4
打赏
收藏
关于Microsoft DataGrid Control数据的打印
在单文档中Microsoft ADO Data Control与Microsoft DataGrid Control关联,就可以从数据库中取到想要打印的数据,请问如何将生成的数据打印或者生成*.xls或者*.csv文件!!如果你不吝赐教,并且问题解决,最少给你200分
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
mountai
2003-08-07
打赏
举报
回复
Good Question
CharmDream
2003-05-24
打赏
举报
回复
可以使用MFC GridCtrl代替MS DataGrid
GridCtrl 在www.codeproject.com中找到,很多中文网站也可以找到
这个类支持直接打印,当然,它不能使用绑定的方法从数据库中读数
不过还是在www.codeproject.com中有人用它派生了一个新类,支持
绑定,郁闷的是类名也叫CDataGrid,跟MS DataGird的类名冲突。
如果要用MS DataGrid,把数据导到Excel打印也是一个好办法
,而且还是比较方便的,不过最好使用动态绑定的办法:
m_DataGrid.SetRefDatasource(NULL);
m_DataGrid.SetRefDatasource((LPUNKNOWN)m_pRecordset);
m_DataGrid.Refresh();
这样,要导数据到EXCEL,就可以直接用m_pRecordset了
具体可以参考www.vckbase.com上的一个例子ADOSource
yangzhb2003
2003-05-19
打赏
举报
回复
up
Tasehouny
2003-03-26
打赏
举报
回复
生成 .xls 和 .csv是很容易的,用Microsoft DataGrid Control打印,我没有做过。
用CListCtrl 打印,我做过。
给你一段代码做参考,如果生成.CSV则不用使用OLE,直接写文本即可。tabtpl.tpl是一个xls格式的文件,我把后缀名改了,实际上是把它当作模板,我在里边设置好了字体,字号,行距等参数,生成表格的时候就自动套用它的格式了。
BOOL CAlloltCalCuPage3::ExportCsvFile(LPCTSTR lzFileName)
{
CAlloltCalCuSheet * psheet = (CAlloltCalCuSheet*) GetParent();
CListCtrl &cList = psheet->m_Page2.GetListCtrl();
if(!cList.GetSafeHwnd())
return FALSE;
int i,j,m_iColCount,m_iLineCount;
CHeaderCtrl *pHeadCtlr = (CHeaderCtrl *)cList.GetDlgItem(0);
m_iColCount = pHeadCtlr->GetItemCount();
m_iLineCount = cList.GetItemCount();
//////////////////////////////////////////////////////////////////////////
_Application ExcelApp;
Workbooks wbsMyBooks;
_Workbook wbMyBook;
Worksheets wssMysheets;
_Worksheet wsMysheet;
Range rgMyRge;
//创建Excel 2000服务器(启动Excel)
COleVariant vTrue((short)TRUE),
vFalse((short)FALSE),
vOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR);
CString tplFile = SYSTEM_PATH;
tplFile += "\\tabtpl.tpl";
if(!gFileExist(tplFile))
{
tplFile = "缺少导入文件:"+tplFile;
AfxMessageBox(tplFile,MB_ICONHAND);
return FALSE;
}
if (!ExcelApp.CreateDispatch("Excel.Application") )
{
AfxMessageBox("创建Excel服务失败!");
return FALSE;
}
wbsMyBooks.AttachDispatch(ExcelApp.GetWorkbooks(),true);
wbMyBook.AttachDispatch(wbsMyBooks.Open((LPCTSTR)tplFile,vOptional,
vOptional,vOptional,vOptional,vOptional,vOptional,vOptional,
vOptional,vOptional,vOptional,vOptional,vOptional));
//得到Worksheets
wssMysheets.AttachDispatch(wbMyBook.GetWorksheets(),true);
//得到sheet1
wsMysheet.AttachDispatch(wssMysheets.GetItem(_variant_t("sheet1")),true);
//得到全部Cells,此时,rgMyRge是cells的集合
rgMyRge.AttachDispatch(wsMysheet.GetCells(),true);
//////////////////////////////////////////////////////////////////////////
//------------------------------------------------------------------------
HDITEM hdi;
TCHAR lpBuffer[256];
hdi.mask = HDI_TEXT;
hdi.pszText = lpBuffer;
hdi.cchTextMax = 256;
CString str;
int row=0,col=0;
//------------------------------------------------------------------------
//设置1行1列的单元的值
for (i=0;i < m_iColCount;i++)
{
pHeadCtlr->GetItem(i, &hdi);
col = i+1;
rgMyRge.SetItem(_variant_t((long)1),_variant_t((long)col),_variant_t(hdi.pszText));
}
for(i= 0;i<m_iLineCount;i++)
{
for(j=0;j<m_iColCount;j++)
{
str = cList.GetItemText(i,j);
row = i+2;
col = j+1;
rgMyRge.SetItem(_variant_t((long)row),_variant_t((long)col),_variant_t((LPCTSTR)str));
}
}
//////////////////////////////////////////////////////////////////////////
wbMyBook.SaveAs(_variant_t(lzFileName),vOptional,vOptional,
vOptional,vOptional,vOptional,2,vOptional,vOptional,
vOptional,vOptional);
rgMyRge.ReleaseDispatch();
wsMysheet.ReleaseDispatch();
wssMysheets.ReleaseDispatch();
wbMyBook.ReleaseDispatch();
wbsMyBooks.ReleaseDispatch();
ExcelApp.ReleaseDispatch();
wbMyBook.Close(vFalse,vOptional,vOptional);
wbsMyBooks.Close();
ExcelApp.Quit();
return TRUE;
}
asp.net学习大全(超全面的资料整合)
DataGrid
导出EXCEL的几个方法(Web
Control
).txt
DataGrid
的
打印
预览和
打印
.txt GridView排序.txt GRID控件删除之前确认.txt javascript小技巧.doc MVC在Web系统中的模式与应用.doc NET中各种
数据
库连接大全.doc ...
ASP.NET学习大全
DataGrid
导出EXCEL的几个方法(Web
Control
).txt
DataGrid
的
打印
预览和
打印
.txt GridView排序.txt GRID控件删除之前确认.txt javascript小技巧.doc MVC在Web系统中的模式与应用.doc NET中各种
数据
库连接大全.doc ...
asp.net知识库
在自定义Server
Control
中捆绑JS文件 Step by Step 深度解析Asp.Net2.0中的Callback机制 使用 Web 标准生成 ASP.NET 2.0 Web 站点 ASP.NET 2.0基于SQLSERVER 2005的aspnetdb.mdf部署 ASP.NET 2.0 Security FAQs Asp...
Visual.Basic.6大学教程.pdf
和
Microsoft
DataGrid
Control
6.0 18.5 关系
数据
库概览:Biblio.mdb
数据
库 588 18.6 结构化查询语言 590 18.6.1 基本的SELECT查询 591 18.6.2 WHERE从句 591 18.6.3 ORDER BY从句 592 18.6.4 使用INNER JOIN 从多个...
Visual Basic 6编程技术大全 中译本扫描版带书签 2/2
18.4.3创建
数据
绑定User
Control
707 第五部分Internet编程711 第19章动态HTML的应用711 19.1 HTML速成711 19.1.1标题和段落712 19.1.2属性713 19.1.3图像714 19.1.4超级链接715 19.1.5表格716 19.1.6样式717 19.1.7...
数据库
4,011
社区成员
39,816
社区内容
发帖
与我相关
我的任务
数据库
VC/MFC 数据库
复制链接
扫一扫
分享
社区描述
VC/MFC 数据库
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章