求多页面打印问题
时间:2011-12-10
来源:互联网
头次做胶贴打印程序,现在单页打印功能基本完成,多页打印有问题,应该是多页打印不对。现在我这样多页打印后,打印预览起来没完。我也知道应该是
e.HasMorePages写的有问题,但是不知道应该怎么写?
这次120个胶贴,每页50个,应该3页。
比如单页49个胶贴是这样的
明显分页没成功,多页打印也没成功
问题应该就在最后几行上.
源代码
C# code
e.HasMorePages写的有问题,但是不知道应该怎么写?
这次120个胶贴,每页50个,应该3页。
比如单页49个胶贴是这样的
明显分页没成功,多页打印也没成功
问题应该就在最后几行上.
源代码
C# code
private void OnPrintPage(object sender, PrintPageEventArgs e) { Graphics g = e.Graphics;//初始化边框; int x = 50; //商品信息打印的开始横坐标; int y = 60; //商品信息打印的开始纵坐标; int border_x = 40; //价签边框打印的开始横坐标; int border_y = 40; //价签边框打印的开始纵坐标; int border_w = 110; //价签边框的宽度; int border_h = 150; //价签边框的高度; int sums = 0;//边框数量合变量; string lines = "";//打印行内容; int font_sunms = 0;//打印内容的数量的合; for (int z = 0; z < data_list.Rows.Count - 1; z++) { sums = sums + int.Parse(data_list.Rows[z].Cells[6].Value.ToString().Trim()); //计算字段“数量”列的和,计算需要打印的边框数 } for (int i = 0; i < sums; i++) { //边框位置计算,每行10个格,打印10格后换行 if (i % 10 == 0) { if (i == 0) { //首格位置 border_x = 40; border_y = 40; } else { //10格换行 border_x = 40; border_y = border_y + border_h; } } else { //打印一个格后,右移动坐标 border_x = border_x + border_w; } g.DrawRectangle(new Pen(Color.Black, 1), border_x, border_y, border_w, border_h); } //循环遍历DataGridView中的所有行,取得打印内容和位置 for (int j = 0; j < data_list.Rows.Count - 1; j++) { for (int p = 0; p < int.Parse(data_list.Rows[j].Cells[6].Value.ToString()); p++) { //DataGridView单行打印位置计算 if (font_sunms % 10 == 0) { if (font_sunms == 0) { //首格位置 x = 50; y = 60; } else { //打印10格换行 x = 50; y = y + border_h; } } else { //打印一个格后,右移动坐标 x = x + border_w; } font_sunms = font_sunms + 1; foreach (object cell in data_list.Rows[j].Cells) { //判断DataGridView是否为空 DataGridViewCell d = (DataGridViewCell)cell; if (d.Value == null) { MessageBox.Show("数据输入不完整", "错误提示"); return; } //取得DATAGRIDVIEW单行的内容 if (data_list.Rows[j].Cells[0].Value.ToString().Length > 7) { //代码过多省略.. t_text.Text = "...."; } //单条记录需要打印的数量 e.Graphics.DrawString(lines, new Font("Arial", 7), Brushes.Black, x, y); } if (sums % 50 == 0 && sums >50) { if(sums == 50) { //头一页,不分页,正好50格 e.HasMorePages = false; return; } else { //如果打印超过50格则分页 e.HasMorePages = true; } } }
作者: zln0118 发布时间: 2011-12-10
这么难么?完全没人知道?
作者: zln0118 发布时间: 2011-12-10
高手们都睡了...
作者: zln0118 发布时间: 2011-12-10
2012前也许有结果
作者: bulls5988 发布时间: 2011-12-10
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28