忙活了一天,怪辛苦的。没有办法,谁让自己眼馋,中午不去午休倒看什么黄梅戏呢!董永与七仙女的槐树下成鸳鸯,看得都让人羡慕了……
时间不多,本来总结Web拍照的例子呢?仔细想想,还是把今天的工作给总结一下的好。系统上的所有报表都又重新写了一下,看上去还行,不像起初那样难看了,又是连续打印,多少我也是写了一天,不算经典,实用还是可以说过去的,效果如下(我只设置每页5行,)
在这里,我就不多说了,把代码直接贴上就可以了,实在是困的受不了了
样式:
<style media="print">
.Noprint { DISPLAY: none }
.NOPRINT { FONT-SIZE: 6pt; FONT-FAMILY: "宋体" }
P {page-break-after:always}
</style>
绘制页面方法:
protected void SetInfo()
{
//LblTip.Text = ResultCheckClass.GetSessionHospitalName(this).Trim() + "住院收费明细表";
DataTable dt = _Logic.GetDataTable(_Query);
this.renshu = dt.Rows.Count - 1 + "";
System.Text.StringBuilder Str = new System.Text.StringBuilder();
int i = 0;
int pges = 0;
int pageSize = 0;
string gongsi = "";
//获取公司名称,同每页打印行数,都在config中配置
try
{
gongsi = System.Configuration.ConfigurationManager.AppSettings["ProjectName"].ToString();
}
catch
{
gongsi = "*****公司";
}
try
{
pageSize = int.Parse(System.Configuration.ConfigurationManager.AppSettings["IntPrintCount"].ToString());
}
catch
{
pageSize = 50;
}
if (dt != null && dt.Rows.Count > 0)
{
Str.Append("<p>");
Str.Append("<table style=\"width: 730px;\" cellspacing=\"0\" cellpadding=\"0\" rules=\"rows\" style=\"border:1px solid #000000\" align=\"center\">"); //外框
Str.Append("<tr><td style='text-align:center;'>"); //第一单元
/*设置报表题头*/
Str.Append("<table style=\"width: 730px;\" align=\"center\" cellspacing=\"0\" cellpadding=\"0\" >"); //题头table
//----
Str.Append("<tr><td height='26px' style='text-align:center;'>");
Str.Append("" + gongsi + "职工基本医疗保险"); //副标题
Str.Append("</td></tr>");
//----
Str.Append("<tr><td style='font-weight:bold; font-size:16px;text-align:center;'>");
Str.Append("" + title); //主标题
Str.Append("<br/>");
Str.Append("<br/>");
Str.Append("</td></tr>");
// 查询信息列
Str.Append("<tr><td style='text-align:left;font-size:10px;'>");
Str.Append("<table style=\"width: 730px;\" border=\"0px\" align=\"center\"><tr>"); //
Str.Append("<td width=\"65px\">划账人数:</td><td>" + this.renshu + "人</td>");
Str.Append("<td width=\"38px\">时间:</td><td width=\"151px\">" + this.BeginDate.Trim() + "至" + this.EndDate.Trim() + "</td>");
Str.Append("</tr></table>");
Str.Append("</td></tr>");
//题头
Str.Append("<tr><td>");
Str.Append("<table style=\"width: 730px;\" align=\"center\" border='1px' cellspacing=\"0\" cellpadding=\"0\" style=\"font-weight:bold;\">");
Str.Append("<tr style='font-weight:bold;'><td style=\"width:60px;\">序号</td><td style=\"width:90px\">姓名</td><td style=\"width:100px\">医保号码</td>");
Str.Append("<td style=\"width:150px\">身份证</td><td style=\"width:80px\">划账金额</td><td style=\"width:80px\">划账人</td>");
Str.Append("<td >划账时间</td></tr></table>");
Str.Append("</td></tr></table>");
Str.Append("</td></tr>");
/*内容信息*/
Str.Append("<tr><td>"); //第二单元
foreach (DataRow d in dt.Rows)
{
if (i % pageSize == 0)
{
Str.Append("<table align=\"center\" rules=\"rows\" style=\"border:1px solid #000000;width: 100%\" >");
pges = pges + 1;
}
string No = "";
if (d["姓名"].ToString().IndexOf("合计") != -1)
{
}
else
{
No = d["序号"].ToString();
}
string Name = d["姓名"].ToString();
string YBHM = d["医保号码"].ToString();
string SFZ = d["身份证"].ToString();
string HZJE = d["划账金额"].ToString();
string HZR = d["划账人"].ToString();
string HZSJ = d["划账时间"].ToString();
Str.Append("<tr><td style=\"width:60px;\">" + No + "</td><td style=\"width:90px\">" + Name + "</td><td style=\"width:100px\">" + YBHM + "</td>");
Str.Append("<td style=\"width:150px\">" + SFZ + "</td><td style=\"width:80px\">" + HZJE + "</td><td style=\"width:80px\">" + HZR + "</td>");
Str.Append("<td style=\"\">" + HZSJ + "</td></tr>");
i += 1;
if (i % pageSize == 0)
{
Str.Append("<tr><td colspan=\"4\" client=\"right\">打印时间:" + this.PrintDate + "</td>");
Str.Append("<td align=\"right\">操作员:</td>");
Str.Append("<td align=\"left\">" + this.czy + "</td>");
Str.Append("<td>职工签字:</td>");
Str.Append("<td></td></tr>");
Str.Append("</table></td></tr></table>");
Str.Append("<table width=\"100%\"><tr><td align=\"right\">第" + pges.ToString() + "页");
Str.Append("</td></tr></table>");
Str.Append("</p>");
//下一页设置
Str.Append("<table style=\"width: 730px;\" cellspacing=\"0\" cellpadding=\"0\" rules=\"rows\" style=\"border:1px solid #000000\" align=\"center\">"); //外框
Str.Append("<tr><td style='text-align:center;'>"); //第一单元
///*设置报表题头*/
Str.Append("<table style=\"width: 730px;\" align=\"center\" cellspacing=\"0\" cellpadding=\"0\" >"); //题头table
////----
Str.Append("<tr><td height='26px' style='text-align:center;'>");
Str.Append("" + "郑煤集团公司职工基本医疗保险"); //副标题
Str.Append("</td></tr>");
//////----
Str.Append("<tr><td style='font-weight:bold; font-size:16px;text-align:center;'>");
Str.Append("" + title); //主标题
Str.Append("<br/>");
Str.Append("<br/>");
Str.Append("</td></tr>");
//// 查询信息列
Str.Append("<tr><td style='text-align:left;font-size:10px;'>");
Str.Append("<table style=\"width: 730px;\" border=\"0px\" align=\"center\"><tr>"); //
Str.Append("<td width=\"65px\">划账人数:</td><td>" + this.renshu + "人</td>");
Str.Append("<td width=\"38px\">时间:</td><td width=\"151px\">" + this.BeginDate.Trim() + "至" + this.EndDate.Trim() + "</td>");
Str.Append("</tr></table>");
Str.Append("</td></tr>");
Str.Append("</table>");
Str.Append("</td></tr>");
Str.Append("<tr><td>");
/*内容信息*/
// Str.Append("<tr><td>"); //第二单元
}
}
if (i % pageSize != 0)
{
Str.Append("<tr><td height=\"" + (pageSize - i % pageSize) * 16 + "px\" colspan=\"7\"> </td></tr>");
Str.Append("<tr><td colspan=\"4\" client=\"right\">打印时间:" + this.PrintDate + "</td>");
Str.Append("<td align=\"right\">操作员:</td>");
Str.Append("<td align=\"left\">" + this.czy + "</td>");
Str.Append("<td>职工签字:</td>");
Str.Append("</tr>");
Str.Append("</table></td></tr></table>");
Str.Append("<table width=\"100%\"><tr><td align=\"right\">第" + pges.ToString() + "页");
Str.Append("</td></tr></table>");
Str.Append("</P>");
}
}
LtrList.Text = Str.ToString();
}
好了,这样足可以满足一般的打印需求,都是实用写table的方式
LtrList在客户端
<asp:Literal ID="LtrList" runat="server"></asp:Literal>
结束