如题,求教各位大侠,我想用小票打印机 打印datagridview1 中部分列的内容,使用部分代码如下,提示错误:当前上下文中不存在名称“column”
还有一个警告:空语句可能有错误似乎存在写法的错误,求各位大侠指正。谢谢~~ private void printDocument1_PrintPage(object sender, PrintPageEventArgs e)
{
DataTable dt = (DataTable)dataGridView1.DataSource;
int x = 30, y = 0, kuan = 70, gao = 25;
Font ff = new Font("宋体", 10);
e.Graphics.DrawString("超市发货单", ff, Brushes.Blue, x, y);
y += gao;
foreach (DataColumn column in dt.Columns(商品名称DataGridViewTextBoxColumn, 单位DataGridViewTextBoxColumn, 数量DataGridViewTextBoxColumn, 售价DataGridViewTextBoxColumn, 总价DataGridViewTextBoxColumn)) ;
{
e.Graphics.DrawString(column.ColumnName, ff, Brushes.Black, x, y);
x += kuan;
}
y += gao;
x = 30;
for (int i = 0; i < dt.Rows.Count; i++)
{
for (int j = 0; j < dt.Columns.Count; j++)
{
e.Graphics.DrawString((string)dt.Rows[i].ItemArray[j].ToString(), ff, Brushes.Black, x, y);
x += kuan;
}
x = 30;
y += gao;
}
}
还有一个警告:空语句可能有错误似乎存在写法的错误,求各位大侠指正。谢谢~~ private void printDocument1_PrintPage(object sender, PrintPageEventArgs e)
{
DataTable dt = (DataTable)dataGridView1.DataSource;
int x = 30, y = 0, kuan = 70, gao = 25;
Font ff = new Font("宋体", 10);
e.Graphics.DrawString("超市发货单", ff, Brushes.Blue, x, y);
y += gao;
foreach (DataColumn column in dt.Columns(商品名称DataGridViewTextBoxColumn, 单位DataGridViewTextBoxColumn, 数量DataGridViewTextBoxColumn, 售价DataGridViewTextBoxColumn, 总价DataGridViewTextBoxColumn)) ;
{
e.Graphics.DrawString(column.ColumnName, ff, Brushes.Black, x, y);
x += kuan;
}
y += gao;
x = 30;
for (int i = 0; i < dt.Rows.Count; i++)
{
for (int j = 0; j < dt.Columns.Count; j++)
{
e.Graphics.DrawString((string)dt.Rows[i].ItemArray[j].ToString(), ff, Brushes.Black, x, y);
x += kuan;
}
x = 30;
y += gao;
}
}
解决方案 »
- 如何通过webbrowser拖动form
- 高手请留步
- DataGridView编辑模式的问题???
- 一个关于C#使用P/Invoke调用的问题
- c# 关于除数为0
- foreach遍历的集合为什么要实现IEnumerable
- DataSet这个对象可以将XML字符串写入一个字符串吗?
- dropdownlist的小问题,求救!!!
- C#中用HttpWebRequest类 连续post数据(测试发现,循环2-4次的时候,就不行了)!求助,在线等!
- asp.net + ajax 缺少对象
- WPF中,如何使用图像API进行绘制控件,让控件能够在窗体中浮动
- 简单的控制台程序,数据库连接,读出字段正确,验证却错了
foreach (DataColumn column in dt.Columns)
{
switch (column.ColumnName)
{
case "商品名称DataGridViewTextBoxColumn":
case "单位DataGridViewTextBoxColumn": break;
default:
continue;
}
}
这样试试
DataTable print_dt=getData(dt);//把所有的提取数据的工作交给getData去做,你可以在调试的时候,看到print_dt的最终结果Print(print_dt)//打印工作独立出来,前面已经保证数据正确,这里就只管打印界面本身就ok
{
switch (column.ColumnName)
{
case "商品名称DataGridViewTextBoxColumn":
case "单位DataGridViewTextBoxColumn":
e.Graphics.DrawString(column.ColumnName, ff, Brushes.Black, x, y);
x += kuan;
break;
default:
continue;
}
y += gao;
x = 30;
for (int i = 0; i < dt.Rows.Count; i++)
{
for (int j = 0; j < dt.Columns.Count; j++)
{
switch (column.ColumnName)
{
case "商品名称DataGridViewTextBoxColumn":
case "单位DataGridViewTextBoxColumn":
e.Graphics.DrawString((string)dt.Rows[i].ItemArray[j].ToString(), ff, Brushes.Black, x, y);
x += kuan;
break;
default :
continue;
}
x = 30;
y += gao;
}
}
case "商品名称DataGridViewTextBoxColumn":
case "单位DataGridViewTextBoxColumn":
改成
case "商品名称":
case "单位":
应该是这么写的,这个应该是列的名称,能打出来了,不过打成 数据库中 每个字段一行...而不是当前datagridview 的表格形式 ,是不是我的换行的命令那里有问题....代码如下:
foreach (DataColumn column in dt.Columns)
{
switch (column.ColumnName)
{
case "商品名称":
case "单位":
e.Graphics.DrawString(column.ColumnName, ff, Brushes.Black, x, y);
x += kuan;
break;
default:
continue;
}
for (int i = 0; i < dt.Rows.Count; i++)
{ for (int j = 0; j < dt.Columns.Count; j++)
{
switch (column.ColumnName)
{
case "商品名称":
case "单位":
e.Graphics.DrawString((string)dt.Rows[i].ItemArray[j].ToString(), ff, Brushes.Black, x, y);
x += kuan;
break;
default:
continue;
}
x = 30;
y += gao;
}
}
}