VC打印报表,原则性有关问题

fieldset{padding:10px;}

VC打印报表,原则性问题正在做一个报表打印,需要支持预览,使用的MFC框架,有几个方向性的问题请教: 1。多页打印 报表打印产生多页有两种情况:A-记录多,B-宽度超出一页,我不能确定用什么方式处理比较好,一种是用超大的内存缓冲图形,打印用Bilbit方式。或者在OnPrint时处理输出,但不知宽度超出一页时,怎么处理。或者还有其他较好的方式。 2。总页数的计算 似乎只有打印两次才能处理总页数。 3。脚本支持 网上没有找到详细的执行脚本方面的资料。要想做到Office中VBA那样,是不是不可能? 4.合计函数的实现(分组合计、页合计) 是否需要自己实现合计的功能,还是有现成的类和方法,例如借助ADO——解决方案——————————————————–1、都可以。 2、根据纸张大小和报表的宽、高直接计算出页数。 3、有难度,如果只是简单的脚本,可自己写个解释器。 4、自己实现。——解决方案——————————————————–1 自己根据计算结果处理; 2 似乎是的,如果字体大小固定可以计算,否则最好还是打印两次的方法。 3 MS提供了VBA引擎支持的。——解决方案——————————————————–具体可以看看微软的网站, http://msdn.microsoft.com/isv/technology/vba/default.aspx MSDN中就有不少内容。——解决方案——————————————————–可以的,我以前的代码 VARIANT_BOOL CYFGridCtrl::LoadFromXmlDOM(IUnknown* pUnknown) { AFX_MANAGE_STATE(AfxGetStaticModuleState()); try { MSXML2::IXMLDOMDocument2 *pXmlDoc = NULL; HRESULT hr; hr = pUnknown-> QueryInterface(__uuidof(MSXML2::IXMLDOMDocument2), (void**)&pXmlDoc); if(SUCCEEDED(hr)) { this-> m_GridEditor.LoadFromXmlDOM(pXmlDoc); pXmlDoc-> Release(); this-> m_TabCtrl.DeleteAllItem(); for(int i = 0; i < this-> m_GridEditor.GetSheetCount(); i++) { this-> m_TabCtrl.AppendItem(this-> m_GridEditor.GetSheet(i)-> m_SheetName); } this-> m_TabCtrl.SetCurTab(0); return VARIANT_TRUE; } else { return VARIANT_FALSE; } } catch(…) { return VARIANT_FALSE; } }我们可以失望,但不能盲目。

VC打印报表,原则性有关问题

相关文章:

你感兴趣的文章:

标签云: