找回密码
 立即注册

QQ登录

只需一步,快速开始

xuxs

高级会员

50

主题

138

帖子

1086

积分

高级会员

积分
1086

活字格认证微信认证勋章

xuxs
高级会员   /  发表于:2015-10-12 18:57  /   查看:10320  /  回复:14
我的WinForm画面有2个FlexGrid,一个是标题FlexGrid1,一个是内容明细FlexGrid2,目前需要用C1Report将这两个FlexGrid同时打印出来
其中标题FlexGrid1需要在每一页都打印,明细FlexGrid2的Fixed行部分也需要在每一页都打印,明细数据按页正常打印,最后在右上角打印当前页和总页数,
我用WinForm做了一个打印后的效果Sample,截图如下:



上图只是我模拟的打印后的单页效果图。

我看过Componentone自带的C1Report的sample,感觉我的需求与之相差比较大,实现起来没有思路,请指教,附件是上面图片的实现代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

14 个回复

倒序浏览
Alice
社区贡献组   /  发表于:2015-10-13 09:14:00
沙发
回复 1楼xuxs的帖子

谢谢提供的Demo和对该问题的反馈。
首先我理解你需要将2个flexgrid打印到同一个页面,并且有自定义的要求。
你可以将2个flexgrid打印到PrintDocument,并且调用PrintDocument的PrintPage和EndPring事件,处理打印。打印的细节部分属于你的业务逻辑,可以根据自己的需求去在事件里完成。

有关以上的实现思路,你可以参考我们的产品博客:
一次性打印多个C1FlexGrid
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
xuxs
高级会员   /  发表于:2015-10-13 09:27:00
板凳
好的,我先尝试一下
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-10-13 11:54:00
地板
回复 3楼xuxs的帖子

好的。
也欢迎将尝试的结果反馈给我们。
为了给你提供更优质的服务,请对本次服务进行评分。我们会认真对待你提出的宝贵意见,谢谢        
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
xuxs
高级会员   /  发表于:2015-10-13 11:56:00
5#
我参考了 您所提供的网址,那个能打印多个FlexGrid,是分开打印的,即打印完一个之后继续打印下一个,结合他的思路我完善了一下自己的sample,目前可以在第一页同时打印出2个FlexGrid了,但是从第二页开始就没法同时打印2个了,现提供上我实现之后的代码,请帮我实现打印的每一页都要和开头截图一样的效果


在以上sample中,第一页我能够同时打印出主标题,二级标题Flexgrid 和明细FlexGrid,但是从第二页开始我仍然需要打印出主标题和二级标题FlexGrid以及明细FlexGrid的数据,每一页仅仅是明细FlexGrid的数据在变,其他固定打印。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-10-13 12:13:00
6#
回复 5楼xuxs的帖子

在PrintPage事件里,是否继续打印是靠e.HasMorePages来判断的。
在博客中,两个flexgrid打印完后,e.HasMorePages就会false,不会继续打印。

你应该记住上次打印的位置,没有打印完的时候e.HasMorePage设置为false,否则就是true。判断条件上还需要根据需求改变。
这点,你可以结合随机安装示例自定义打印grid来完成:
\Documents\ComponentOne Samples\Studio for WinForms\C1FlexGrid\CS\CustomPrintMultiGrid
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
xuxs
高级会员   /  发表于:2015-10-13 13:31:00
7#
我感觉我说的和你理解的有一定偏差,不知你运行我提供的代码了没,e.HasMorePages我已经正确的设置其属性值,只是打印到第二页我无法设定两个FlexGrid同时打印到上面,在第一页我做到了同时打印出来,因为在第一页里我在代码里面使用了FirstPageY设定了打印的开始位置,但是第二页设置该属性就不生效了。下图是我想实现的具体效果,红色字体部分是我在图片上的标注



当打印一页时如上图所示的样子,当打印多页时也和上面图片显示格式一样,多页情况下明细数据在不断变化

另外CustomPrintMultiGrid这个示例我这里没有找到,不知能否压缩一下提供给我 谢谢

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-10-13 17:29:00
8#
回复 7楼xuxs的帖子

我所使用的版本是2015V2.
示例如附件所示:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
xuxs
高级会员   /  发表于:2015-10-13 17:33:00
9#
还需要麻烦Alice 看看我7楼所写的问题,代码在5楼,能否帮我实现此功能,非常感谢
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-10-14 13:41:00
10#
回复 9楼xuxs的帖子

很抱歉,具体的业务逻辑需要你自己实现。
如果在此过程中遇到的产品问题,我可以给你点建议。
对于你的问题,还是建议你在根据我们的两个示例,在PrintPage事件里设置断点,然后判断是否能够在第二页开始打印获取到两个flexgrid。你也可以先试试如果你的程序只有一个flexgrid的时候,是否可以将整个打印到不同页的指定位置,如果有问题,请检查你的打印的逻辑。如果没有问题,再测试两个同时打印的时候的问题。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部