佩特来项目经验小集合(6)___ASP.NET模板页的读取

   在佩特来售后管理系统流程中,其中有一个节点是故障分析,也就是将发回来的整机进行故障分析,传统的方法是将每个整机的故障信息录入一个Excel表,表格Excel样式:

 

   这里是将Excel转换成模板页,然后根据需要替换模板中的标签,将功能完整展示,下面介绍在这个功能在项目中实现步骤:

1.将Excel转换为网页

   打开Excel文档,单击菜单栏中的“文件”,找到“另存为”,如图所示。在"另存为" 窗口的“保存类型”,下拉菜单中找到“单个文件网页”。名称起自己想起的。

 

2.修改模板页

   先看一下将Excel中模板头部及尾部生成的静态模板页(htm页),页面#号显示的部分都是需要替换的标签:

   看一下这部分的代码实现,这些就是简单的HTML代码,由EXCEL转换的网页代码略微修改了下:

<body style="width: 95%; margin: 0 auto; padding: 20px;">
    <form name="form" method="post" action="#">
    [#ChaiFenID#]
    <table border="1px" style="border-collapse: collapse;">
        <tr style="text-align: center;">
            <td colspan="15" class="style1">
                起动机故障分析表(A类)
            </td>
        </tr>
        <tr>
            <td colspan="2" class="style2">
                出厂二维
            </td>
            <td colspan="5" class="style3">
                [#CCEWM#]
            </td>
            <td colspan="3" class="style2">
                售后二维码
            </td>
            <td colspan="5" class="style3">
                [#SHEWM#]
            </td>
        </tr>
        <tr>
            <td rowspan="2" class="style5">
                信息
            </td>
            <td class="style6">
                反馈单位
            </td>
            <td colspan="3" class="style7">
                [#FKDW#]
            </td>
            <td class="style6">
                反馈日期
            </td>
            <td colspan="2" class="style7">
                [#FKRQ#]
            </td>
            <td class="style5">
                型号
            </td>
            <td colspan="2" class="style7">
                [#XH#]
            </td>
            <td class="style5">
                序列号
            </td>
            <td colspan="3" class="style7">
                [#XLH#]
            </td>
        </tr>
        <tr>
            <td class="style6">
                三包机
            </td>
            <td class="style5">
                [#SBJ#]
            </td>
            <td class="style6">
                零公里机
            </td>
            <td class="style6">
                外观照片
            </td>
            <td colspan="5" class="style8">
            </td>
            <td colspan="3" class="style5">
                性能是否正常
            </td>
            <td colspan="2" class="style10">
                <input id="Radio1" type="radio" name="是" value="是" />是
                <input id="Radio2" type="radio" valule="否" />否
            </td>
        </tr>
        <tr>
            <td class="style5">
                故障<br />
                部件
            </td>
            <td class="style6">
                故障现象
            </td>
            <td class="style5">
                故障<br />
                现象
            </td>
            <td class="style6">
                故障现象
            </td>
            <td class="style5">
                故障<br />
                现象
            </td>
            <td class="style6">
                故障现象
            </td>
            <td class="style5">
                故障<br />
                现象
            </td>
            <td class="style6">
                故障现象
            </td>
            <td class="style5">
                故障<br />
                现象
            </td>
            <td class="style6">
                故障现象
            </td>
            <td class="style5">
                故障<br />
                现象
            </td>
            <td class="style6">
                故障现象
            </td>
            <td class="style5">
                故障<br />
                现象
            </td>
            <td class="style6">
                故障现象
            </td>
            <td class="style5">
                故障<br />
                现象
            </td>
        </tr>
        [#Body#]
        <tr>
            <td rowspan="2" class="style5">
                其它<br />
                J
            </td>
            <td class="style4">
                1用户解体
            </td>
            <td class="style5">
            </td>
            <td colspan="2" class="style4">
                缺件要备注
            </td>
            <td class="style4">
                2进异物
            </td>
            <td class="style5">
            </td>
            <td colspan="2" class="style4">
                进何异物要备注
            </td>
            <td class="style4">
                3进尘土
            </td>
            <td class="style5">
            </td>
            <td class="style4">
                4进水
            </td>
            <td class="style5">
            </td>
            <td class="style4">
                5进油
            </td>
            <td class="style5">
            </td>
        </tr>
        <tr>
            <td class="style4">
                6错装
            </td>
            <td class="style5">
            </td>
            <td colspan="2" class="style5">
            </td>
            <td class="style4">
                7穿钉断
            </td>
            <td class="style5">
            </td>
            <td class="style4">
                8整机锈蚀
            </td>
            <td class="style5">
            </td>
            <td class="style4">
            </td>
            <td class="style5">
            </td>
            <td class="style4">
            </td>
            <td class="style5">
            </td>
            <td class="style5">
            </td>
            <td class="style5">
            </td>
        </tr>
        <tr>
            <td class="style5">
                备注<br />
                K
            </td>
            <td class="style4">
                1
            </td>
            <td class="style5">
            </td>
            <td class="style4">
                2
            </td>
            <td class="style5">
            </td>
            <td class="style4">
                3
            </td>
            <td class="style5">
            </td>
            <td class="style4">
                4
            </td>
            <td class="style5">
            </td>
            <td class="style4">
                5
            </td>
            <td class="style5">
            </td>
            <td class="style4">
                6
            </td>
            <td class="style5">
            </td>
            <td class="style4">
                7
            </td>
            <td class="style5">
            </td>
        </tr>
        <tr>
            <td colspan="15" class="style11">
                注解:请在相应故障现象后空格内“√”、零件故障现象有照片存档的请用圆圈圈示前面数字编号。
            </td>
        </tr>
        <tr>
            <td class="style5">
            </td>
            <td colspan="2" class="style12">
                分析人:
            </td>
            <td colspan="4" class="style12">
            </td>
            <td class="style12">
            </td>
            <td colspan="3" class="style12">
                分析日期:
            </td>
            <td colspan="3" class="style12">
            </td>
            <td class="style12">
            </td>
        </tr>
    </table>
    <input type="button" name="query" onclick="return doSubmit();" language="javascript"
        value="提交" />
    </form>
</body>


 

3.ASP.NET读取模板页

          ASP.NET读取模板页的方法如下,访问此页面的效果与生成的模板页一样:

   string mbPath = Server.MapPath("FaultMangaeTemplate.htm");  //模板页
        Encoding code = Encoding.GetEncoding("gb2312"); //字符编码
        StreamReader sr = null; 
        string str = null;
        //读取
        try
        {
            sr = new StreamReader(mbPath, code);
            str = sr.ReadToEnd();
            str= str.Replace("[#Body#]", tableBody); //Replace方法,替换模板中需要替换的标签
            str = str.Replace("[#FKDW#]", enWXJD.DLSName);
            str = str.Replace("[#FKRQ#]", enWXJD.DDDate);
            str = str.Replace("[#XH#]", ljxh);
            str = str.Replace("[#ChaiFenID#]", "<input id=\"hidChaifenID\" type=\"hidden\" value=\"" + chaifenid + "\"/>");
            str = str.Replace("[#SBJ#]", "是");
        }
        catch (Exception ex)
        {
            throw ex;
        }
        finally
        {
            sr.Close();
        }
        Response.Clear();
        Response.Write(str);
        Response.End();


 

   上面生成的模板部分有些标签,看一下页面主体部分标签替换的html代码:

/// <summary>
    ///结合故障部件及部件故障信息,生成html
    /// </summary>
    private string  bindGZJBJXX()
    {
        string strHTML="";
        DataTable dtGZBJ = new BT_LJGZ_GZManage().QueryAllGZBJByGZZL("起动机");
        for (int i = 0; i < dtGZBJ.Rows.Count; i++)
        {
            if (i == 0)
            {
                strHTML = "<tr>  <td  class=\"style5\"";
            }
            else
            {
                strHTML += "<tr>  <td  class=\"style5\"";
            }
            strHTML += " rowspan=\"";
            DataTable dtGZXX = new BT_LJGZ_GZManage().QueryAllGZXXByGZBJ(Convert.ToInt32(dtGZBJ.Rows[i]["ID"]));
            double rowspan = Math.Ceiling((double)dtGZXX.Rows.Count / (double)7); //每行显示7个故障信息
            strHTML += Convert.ToString(rowspan);
            strHTML += "\">";
            strHTML += Convert.ToString(dtGZBJ.Rows[i]["GZBJ"]);
            strHTML += "</td>";
            for (int j = 0; j < dtGZXX.Rows.Count; j=j+7)
            {
                if (j % 7 == 0)
                {
                    if (j != 0) {
                        strHTML += "<tr>";
                    }
                    for (int z = j; z < j + 7; z++)
                    {
                        if (z < dtGZXX.Rows.Count)
                        {
                            strHTML += "<td  class=\"style4\">";
                            strHTML += Convert.ToString(dtGZXX.Rows[z]["GZMC"]);
                            strHTML += "</td>";
                            strHTML += "<td  class=\"style5\">";
                            strHTML += "<input value=\"" + dtGZXX.Rows[z]["ID"].ToString() + "\"";
                            strHTML += " name=\"input\" type=\"checkbox\" />";
                            strHTML += "</td>";
                        }
                        else {
                            strHTML += "<td  class=\"style4\">";
                            strHTML += "</td>";
                            strHTML += "<td  class=\"style5\">";
                            strHTML += "</td>";
                        }  
                    }
                    strHTML +="</tr>";
                }
            }
        }
        return strHTML;
    }

   下面看一下,功能实现的页面效果图:


   这个功能就简单介绍到这里了,之所以会写下这篇博客,是由于这个功能的设计与实现是第一次做,刚开始实现这个功能的时候不知道从何入手,完成了发现其实它挺简单的,所有的经验都来自于经历,经历的多了,经验也就会多了!

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。