求救!令人蛋碎的打印循环
时间:2011-12-09
来源:互联网
循环打印,DataGridView内,数量列分别为:2和4,列的和为6,打印6个边框,没问题。信息放入代码测试也没问题。
data_list.Rows[j].Cells[6] = ? 代表这行需要打印几次。
打印行内容的时候,出错。入下图,因为既要遍历DGV内的所有行,又要循环每行需要打印几个,又要计算打印的位置。现在不但位置不对,只出了第一条打印内容,应该是2个内容块,打印数量也不对。
边框打印没问题,但是内容打印的时候就出错了,如下图。应该是循环嵌套出了问题,但是实在是找不到哪里错了,求各位高人帮忙看看。
C# code
data_list.Rows[j].Cells[6] = ? 代表这行需要打印几次。
打印行内容的时候,出错。入下图,因为既要遍历DGV内的所有行,又要循环每行需要打印几个,又要计算打印的位置。现在不但位置不对,只出了第一条打印内容,应该是2个内容块,打印数量也不对。
边框打印没问题,但是内容打印的时候就出错了,如下图。应该是循环嵌套出了问题,但是实在是找不到哪里错了,求各位高人帮忙看看。
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;//"数量"列求合变量 //边框打印 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); } //内容打印 for (int j = 0; j < data_list.Rows.Count - 1; j++) { //循环遍历DataGridView中的所有行 foreach (object cell in data_list.Rows[j].Cells) { //判断DataGridView是否为空 DataGridViewCell d = (DataGridViewCell)cell; if (d.Value == null) { MessageBox.Show("数据输入不完整", "错误提示", MessageBoxButtons.OK); return; } //取得DATAGRIDVIEW单行的内容 //将单行信息放入控件,代码多略过 t_text.Text = ; string lines = t_text.Text; //循环取每行的打印位置 for (int k = 1; k < sums - 1; k++) { //换行打印 if (k % 10 == 0) { if (k == 0) { //首格位置打印位置 x = 50; y = 60; } else { //10个打印内容块换行 x = 50; y = y + border_h; } } else { //打印一个块内容后,右移动坐标 x = x + border_w; } for (int p = 0; p < int.Parse(data_list.Rows[j].Cells[6].Value.ToString()); p++) { //单条记录需要打印的数量 e.Graphics.DrawString(lines, new Font("Arial", 7), Brushes.Black, x, y); } } } }
作者: zln0118 发布时间: 2011-12-09

作者: HHQSY 发布时间: 2011-12-09
用Reporting里面的控件多好
作者: c02645 发布时间: 2011-12-09
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28