现在的位置: 首页 > 综合 > 正文

实习第三周之项目小结

2013年12月20日 ⁄ 综合 ⁄ 共 2431字 ⁄ 字号 评论关闭

来大学科技园这边实习有三周的时间了,然后,做出来的东西也没有多少的。昨天才刚刚完成一个算是比较满意的任务,先看看大体的效果:

图1

图2

大体上要实现的功能是这样的:当我们在图1中单击和顺这个打印按钮的时候,打印出来的效果就是和顺这边的通知单,如果我们单击的是新里程的话,表格的抬头和下面的注意事项也要相应的改变。就是我们要在数据库里面换某个字段。然后再表格的表头里面我是放置一个label标签来存抬头的,这样子当我们点击下面的按钮的时候,相应的表格抬头就会换过来。然后在注意事项中换字段的话,我是在aspx这个页面中放置了两个隐藏的控件。然后再通过js就控件里面的值取出来显示。具体的源代码如下:


<style>  @media print {  .ipt {display:none;text-align: center}  </style>//这个主要是用来隐藏打印的按钮的。
         <div class="ipt"><input type="button" name="button_print" value="和顺接团通知单打印"
onclick="doPrint()" />//相应的单击事件在下面
                            <input type="button" name="button_print0" value="新里程接团通知单打印"
onclick="XLCdoPrint()" /></div>
            
        </div>

   单击事件如下:

<script type="text/javascript">
               function doPrint() {                  
                   document.getElementById("Label1").innerHTML = "桂林市和顺国际旅行社有限公司接团通知单"
                   document.getElementById("Label2").innerHTML = document.all("hs").value
                   window.print();
               }
           </script> 
         <script type="text/javascript">
             function XLCdoPrint() {
                 bdhtml = window.document.body.innerHTML;
                 sprnstr = "<!--startprint-->";
                 eprnstr = "<!--endprint-->";
                 prnhtml = bdhtml.substring(bdhtml.indexOf(sprnstr) + 17);
                 prnhtml = prnhtml.substring(0, prnhtml.indexOf(eprnstr));
                 window.document.body.innerHTML = prnhtml;
                 document.getElementById("Label1").innerHTML = "桂林市新里程国际旅行社有限公司接团通知单";
                 document.getElementById("Label2").innerHTML = document.all("xlc").value;                
                 window.print();                         
             }            
            </script>


还有就是用了的label如下:

 <asp:Label ID="Label1" runat="server" Text="桂林市和顺国际旅行社有限公司接团通知单"></asp:Label>

改变label的值的代码如下:

document.getElementById("Label1").innerHTML = "桂林市新里程国际旅行社有限公司接团通知单";
                 document.getElementById("Label2").innerHTML = document.all("xlc").value;                

document.getElementById("Label1").innerHTML = "桂林市和顺国际旅行社有限公司接团通知单"
                   document.getElementById("Label2").innerHTML = document.all("hs").value


下面这两个是隐藏控件,主要是从后台取数据:

<input id="xlc" runat="server" type="hidden" value=""/> 
                    <input id="hs" runat="server" type="hidden" value=""/> 

后台中.cs文件代码如下:

 Label2.Text = ur.HSMemo;
                xlc.Value = ur.XLCMemo;
                hs.Value = ur.HSMemo;
//将字段的值赋给在前台显示的标签


上面大体用到的就是js,然后还有就是如何通过js给label赋值。

还有一点就是调用window.print()这个打印功能。在打印的时候,打印机会把当前页面的标题,时间,还有URL都打印出来。我在网上找了几天的时间,都没找到很好的解决方案。好多都是说通过js来修改注册表,或者说是加载一个控件ScriptX,我觉得这都不是很好的一个方法,因为这些方法很多都被浏览器禁用的,会降低安全性。最简单的方法就是直接在浏览器中文件---打印---打印预览,然后在打印预览里面把那些页眉页脚给去除,这样打印的时候,就不会打印出页眉和页脚了。可是,我觉得很多用户都不会知道浏览器有这种功能,悲催了!!!!

    如果大家有什么好的解决方案,欢迎和我讨论。

抱歉!评论已关闭.