忙活了一天,怪辛苦的。没有办法,谁让自己眼馋,中午不去午休倒看什么黄梅戏呢!董永与七仙女的槐树下成鸳鸯,看得都让人羡慕了……
 时间不多,本来总结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\">&nbsp;</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>
结束

posted on 2008-06-21 22:04  ☆^寶々貝^☆  阅读(187)  评论(0编辑  收藏  举报