實習第三週之項目小結

來大學科技園這邊實習有三週的時間了,然後,做出來的東西也沒有多少的。昨天才剛剛完成一個算是比較滿意的任務,先看看大體的效果:



圖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,我覺得這都不是很好的一個方法,因爲這些方法很多都被瀏覽器禁用的,會降低安全性。最簡單的方法就是直接在瀏覽器中文件---打印---打印預覽,然後在打印預覽裏面把那些頁眉頁腳給去除,這樣打印的時候,就不會打印出頁眉和頁腳了。可是,我覺得很多用戶都不會知道瀏覽器有這種功能,悲催了!!!!

    如果大家有什麼好的解決方案,歡迎和我討論。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章