來大學科技園這邊實習有三週的時間了,然後,做出來的東西也沒有多少的。昨天才剛剛完成一個算是比較滿意的任務,先看看大體的效果:
圖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,我覺得這都不是很好的一個方法,因爲這些方法很多都被瀏覽器禁用的,會降低安全性。最簡單的方法就是直接在瀏覽器中文件---打印---打印預覽,然後在打印預覽裏面把那些頁眉頁腳給去除,這樣打印的時候,就不會打印出頁眉和頁腳了。可是,我覺得很多用戶都不會知道瀏覽器有這種功能,悲催了!!!!
如果大家有什麼好的解決方案,歡迎和我討論。