首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

初学者请问打印有关问题(页面上有多个grid控件)

2012-03-17 
菜鸟请教打印问题(页面上有多个grid控件)我有两个窗体,窗体上都是是第三方控件一个是bsCeSkinScrollBox,控

菜鸟请教打印问题(页面上有多个grid控件)
我有两个窗体,窗体上都是是第三方控件一个是bsCeSkinScrollBox,控件上都是lable,另一个窗体上有多个cxgrid,要实现打印.本人初次搞BCB开发,还请高手指点,分没有了,到时候有了一定给补上!谢谢

[解决办法]
可以直接打印窗体!如memo的文字,我得博克里有,参照着改一下就行了!
http://hi.baidu.com/little_grass/blog
[解决办法]
做个报表吧,不做报表就要打印有滚动数据的界面好像没听说过
[解决办法]
用fastreport
3个grid就用3个userdataset
[解决办法]
次问题好像很麻烦,不过可以用TVSPrinter试试看。
IFieldCollectionPtr fieldCollectionPtr = (IFieldCollectionPtr)TVReport-> Fields;

TVPrint-> PaperHeight = 4300;
TVPrint-> PaperWidth = 4300;

for (long i = 0; i < fieldCollectionPtr-> Count ;i++)
{
Variant v = i;
VARIANT v1 =v;
FieldPtr fieldPtrTail = fieldCollectionPtr-> get_Item( v1);
IVSReportPtr subReportPtr = fieldPtrTail-> get_Subreport();
String strTailText = fieldPtrTail-> Name;
if ( strTailText.AnsiCompareIC( "name " ) == 0 )
{
fieldPtrTail-> set_Text(AnsiToOLESTR(serid.c_str()));
}
else if ( strTailText.AnsiCompareIC( "id " ) == 0 )
{
fieldPtrTail-> set_Text(AnsiToOLESTR(providername.c_str()));
}
else if ( strTailText.AnsiCompareIC( "address " ) == 0 )
{
fieldPtrTail-> set_Text(AnsiToOLESTR(consumername.c_str()));
}
else if ( strTailText.AnsiCompareIC( "age " ) == 0 )
{
fieldPtrTail-> set_Text(AnsiToOLESTR(amountsum.c_str()));
}
}
TVReport-> Render((LPDISPATCH)TVPrint-> ControlInterface);

热点排行