首先 using System.Drawing.Printing;
@@@@@@@@这个一定要注意 不然没法用的 要报错 如果觉得对你有帮助 给分吧
以下为参考
//**************************************************************
//
// 打印相关(以下部分)
//
//**************************************************************
private DataTable dtStudent; //存放需打印的学生ID列表
private int intIndex = 0; //当前打印序号
//打印所选班级
private void btnPrintClassroom_Click(object sender, EventArgs e)
{
if (clbClassroom.Items.Count == 0) return; //无班级列表则不能打印
//初始化打印学生数据表
intIndex = 0;
dtStudent = new DataTable();
dtStudent.Columns.Add("Id", typeof(string));
string strClassroomId;
string strSql;
OleDbConnection conn = new OleDbConnection(SqlHelper.connStr);
conn.Open();
OleDbCommand cmd;
OleDbDataReader dr;
//若没有复选,则打印选择项
if (clbClassroom.CheckedItems.Count == 0)
{
strSql = "select Id from Student where ClassroomId='" + clbClassroom.SelectedValue.ToString() + "'";
cmd = new OleDbCommand(strSql, conn);
dr = cmd.ExecuteReader();
while (dr.Read())
{
DataRow drow = dtStudent.NewRow();
string strStudentId = dr["Id"].ToString();
StudentInfo si = new StudentInfo(strStudentId);
//若选择了只打带毕业证号并且有毕业证号 或者 没有选择只打带毕业证号的,则打印
if (chbOnlyPrintDiplomaNo.Checked && si.DiplomaNo.Trim() != "" || !chbOnlyPrintDiplomaNo.Checked)
{
drow["Id"] = strStudentId;
dtStudent.Rows.Add(drow);
}
}
dr.Close();
}
foreach (System.Data.DataRowView item in clbClassroom.CheckedItems)
{
strClassroomId = item.Row["Id"].ToString();
strSql = "select Id from Student where ClassroomId='" + strClassroomId + "'";
cmd = new OleDbCommand(strSql, conn);
dr = cmd.ExecuteReader();
while (dr.Read())
{
DataRow drow = dtStudent.NewRow();
string strStudentId = dr["Id"].ToString();
StudentInfo si = new StudentInfo(strStudentId);
//若选择了只打带毕业证号并且有毕业证号 或者 没有选择只打带毕业证号的,则打印
if (chbOnlyPrintDiplomaNo.Checked && si.DiplomaNo.Trim() != "" || !chbOnlyPrintDiplomaNo.Checked)
{
drow["Id"] = strStudentId;
dtStudent.Rows.Add(drow);
}
}
dr.Close();
}
conn.Close();
//初始化进度条
pb.Minimum
asp.net 调用打印机 (转)
最新推荐文章于 2018-03-09 11:26:31 发布