最近开发电子商务系统,里边用到报表打印,批量打出订单,以前没有接触过报表,更别说打印了,今天搞定后,那来与大家交流。
源代码如下:
aspx:
cs:
源代码如下:
aspx:
  1![]() <%@ Page Language="C#" AutoEventWireup="true" CodeFile="ReceiptViewer.aspx.cs" Inherits="ReceiptViewer" MasterPageFile="~/themes/default/layout/Simple.master" %>
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ReceiptViewer.aspx.cs" Inherits="ReceiptViewer" MasterPageFile="~/themes/default/layout/Simple.master" %>
2![]()
3![]() <%@ Register Assembly="CrystalDecisions.Web, Version=10.2.3600.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"
<%@ Register Assembly="CrystalDecisions.Web, Version=10.2.3600.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"
4![]() Namespace="CrystalDecisions.Web" TagPrefix="CR" %>
    Namespace="CrystalDecisions.Web" TagPrefix="CR" %>
5![]() <asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
6![]() <script language="javascript">
 <script language="javascript">
7![]() function checkAll(oEle)
 function checkAll(oEle)
8![]() {
{
9![]() var checked = oEle.checked;
    var checked = oEle.checked;
10![]() while(oEle.tagName!="TABLE")
    while(oEle.tagName!="TABLE")
11![]() {
    {
12![]() // oEle = oEle.parentElement;
       // oEle = oEle.parentElement;
13![]() oEle = oEle.parentNode;
        oEle = oEle.parentNode;
14![]() }
    }
15![]() 
    
16![]() var checkBoxs  = oEle.getElementsByTagName("INPUT");
    var checkBoxs  = oEle.getElementsByTagName("INPUT");
17![]() for(var i=0;i<checkBoxs.length;i++)
    for(var i=0;i<checkBoxs.length;i++)
18![]() {
    {
19![]() if(checkBoxs[i].type=="checkbox")
        if(checkBoxs[i].type=="checkbox")
20![]() {
        {
21![]() checkBoxs[i].checked = checked;
            checkBoxs[i].checked = checked;
22![]() }
        }
23![]() }
    }
24![]() }
}
25![]()
26![]() function checkSelectList()
function checkSelectList()
27![]() {
{
28![]() var selectList="";
    var selectList="";
29![]() var tbList=document.getElementsByName("tbOrderList");
    var tbList=document.getElementsByName("tbOrderList");
30![]() var chkList=document.getElementsByTagName("INPUT");
    var chkList=document.getElementsByTagName("INPUT");
31![]() if(chkList==null) return false;
    if(chkList==null) return false;
32![]() var length=chkList.length;
    var length=chkList.length;
33![]() 
   
34![]() for(i=0;i<length-2;i++)
    for(i=0;i<length-2;i++)
35![]() {
    {
36![]() if(chkList[i].type=="checkbox" && chkList[i].checked)
        if(chkList[i].type=="checkbox" && chkList[i].checked)
37![]() {
        {
38![]() var objOrderId=chkList[i].nextSibling;
            var objOrderId=chkList[i].nextSibling;
39![]() if(objOrderId.type!="hidden") continue;
            if(objOrderId.type!="hidden") continue;
40![]() //            var objOrderId=objReference.nextSibling;
//            var objOrderId=objReference.nextSibling;
41![]() //            if(objOrderId.type!="hidden") continue;
//            if(objOrderId.type!="hidden") continue;
42![]() 
            
43![]() //            if(objReference.type=="hidden" && objReference.value!="")
//            if(objReference.type=="hidden" && objReference.value!="")
44![]() //            {
//            {
45![]() //                failed = true;
//                failed = true;
46![]() //            }
//            }
47![]() if(objOrderId.type="hidden")
            if(objOrderId.type="hidden")
48![]() {
            {
49![]() if (selectList != "")
                if (selectList != "") 
50![]() {
                {
51![]() selectList=selectList+",";
                    selectList=selectList+",";            
52![]() }
                }
53![]() 
                
54![]() selectList = selectList+objOrderId.value;
                 selectList = selectList+objOrderId.value;
55![]() }
            }
56![]() }
        }
57![]() }
    }
58![]() if(selectList=="")
    if(selectList=="")
59![]() {
    {
60![]() alert("Please select order to print.");
        alert("Please select order to print.");
61![]() return false;
        return false;
62![]() }
    }
63![]() else
    else
64![]() {
    {
65![]() var hidList=document.getElementById("ctl00_ContentPlaceHolder1_hidOrderList");
        var hidList=document.getElementById("ctl00_ContentPlaceHolder1_hidOrderList");
66![]() hidList.value=selectList;
        hidList.value=selectList;
67![]() return true;
        return true;
68![]() }
    }
69![]() }
}
70![]() </script>
 </script>
71![]() 
 
72![]() <asp:panel id="panToolBar" runat="server" Wrap="False" Height="5px">
   <asp:panel id="panToolBar" runat="server" Wrap="False" Height="5px">
73![]() <asp:LinkButton id="LinkButbtnRefresh" runat="server" OnClick="LinkButbtnRefresh_Click">[Refresh]</asp:LinkButton> 
<asp:LinkButton id="LinkButbtnRefresh" runat="server" OnClick="LinkButbtnRefresh_Click">[Refresh]</asp:LinkButton>  
74![]() <asp:HyperLink id="hlBack" runat="server">[Back]</asp:HyperLink>
<asp:HyperLink id="hlBack" runat="server">[Back]</asp:HyperLink>
75![]() <asp:Button ID="btShowPrint" CssClass="buttondark" runat="server" OnClick="btShowPrint_Click" Text="[Show Print Option]" />
       <asp:Button ID="btShowPrint" CssClass="buttondark" runat="server" OnClick="btShowPrint_Click" Text="[Show Print Option]" />
76![]() <asp:Button ID="btPrint"  CssClass="buttondark" runat="server" Text="Print" OnClientClick="return checkSelectList();" OnCommand="btPrint_Command" />
       <asp:Button ID="btPrint"  CssClass="buttondark" runat="server" Text="Print" OnClientClick="return checkSelectList();" OnCommand="btPrint_Command" />
77![]() <asp:HiddenField ID="hidOrderList" runat="server" />
  <asp:HiddenField ID="hidOrderList" runat="server" />
78![]() <asp:HiddenField ID="hidPrinterName" runat="server" />
       <asp:HiddenField ID="hidPrinterName" runat="server" />  
79![]() <asp:HiddenField ID="hidPrintCopies" runat="server" />
       <asp:HiddenField ID="hidPrintCopies" runat="server" />  
80![]() </asp:panel>
  </asp:panel>
81![]() <asp:Panel ID="panPrint" Visible="false" runat="server" Height="50px" Width="50%">
    <asp:Panel ID="panPrint" Visible="false" runat="server" Height="50px" Width="50%">
82![]() <asp:DropDownList ID="ddlPrinter" runat="server">
        <asp:DropDownList ID="ddlPrinter" runat="server">
83![]() </asp:DropDownList>
        </asp:DropDownList>
84![]() <br />
        <br />
85![]() Print <asp:TextBox ID="txtCopies" Width="50px" Text="1"  runat="server"></asp:TextBox>Copies.
        Print <asp:TextBox ID="txtCopies" Width="50px" Text="1"  runat="server"></asp:TextBox>Copies.
86![]() <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server"
        <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" 
87![]() ControlToValidate="txtCopies" ValidationGroup="vPrint"
         ControlToValidate="txtCopies" ValidationGroup="vPrint"
88![]() ErrorMessage="Please input a number of copies to print."></asp:RequiredFieldValidator>
        ErrorMessage="Please input a number of copies to print."></asp:RequiredFieldValidator>
89![]() <asp:RangeValidator ID="RangeValidator1" runat="server" MaximumValue="1000" MinimumValue="1"
        <asp:RangeValidator ID="RangeValidator1" runat="server" MaximumValue="1000" MinimumValue="1"
90![]() ControlToValidate="txtCopies"
         ControlToValidate="txtCopies"
91![]() ErrorMessage="Must be a number over 1" ValidationGroup="vPrint">.
        ErrorMessage="Must be a number over 1" ValidationGroup="vPrint">.
92![]() </asp:RangeValidator>
        </asp:RangeValidator> 
93![]() <br />
        <br />
94![]() <asp:Button ID="btConrirm"  CssClass="buttondark" runat="server" Text="Confirm" OnCommand="btConfirm_Command" /></asp:Panel>
<asp:Button ID="btConrirm"  CssClass="buttondark" runat="server" Text="Confirm" OnCommand="btConfirm_Command" /></asp:Panel>
95![]() <CR:CrystalReportViewer id="rptViewer" runat="server" Width="350px" Height="50px" PageToTreeRatio="5" EnableDatabaseLogonPrompt="False" EnableDrillDown="False" EnableParameterPrompt="False" AutoDataBind="True" PrintMode="ActiveX" DisplayGroupTree="False"/>
<CR:CrystalReportViewer id="rptViewer" runat="server" Width="350px" Height="50px" PageToTreeRatio="5" EnableDatabaseLogonPrompt="False" EnableDrillDown="False" EnableParameterPrompt="False" AutoDataBind="True" PrintMode="ActiveX" DisplayGroupTree="False"/>
96![]() <br />
    <br />
97![]() <table cellspacing="1" id="tbOrderList" class="listtable" cellpadding="0">
    <table cellspacing="1" id="tbOrderList" class="listtable" cellpadding="0">
98![]() <asp:Repeater ID="rpOrderList" runat="server" OnItemDataBound="rpOrderListItemBound">
    <asp:Repeater ID="rpOrderList" runat="server" OnItemDataBound="rpOrderListItemBound">
99![]() <HeaderTemplate>
    <HeaderTemplate>
100![]() <tr>
    <tr>
101![]() <th>
    <th>
102![]() <input type="checkbox" id="chkAll" onclick="checkAll(this);" title="Select All"/><label style="display:inline;" for="chkAll">Select All</label>
        <input type="checkbox" id="chkAll" onclick="checkAll(this);" title="Select All"/><label style="display:inline;" for="chkAll">Select All</label>
103![]() </th>
        </th>
104![]() <th>Header1</th>
    <th>Header1</th>
105![]() <th>Header2</th>
    <th>Header2</th>
106![]() <th>Header3</th>
    <th>Header3</th>
107![]() <th>Header4</th>
    <th>Header4</th>
108![]() <th>Header5</th>
    <th>Header5</th>
109![]() <th>Header6</th>
    <th>Header6</th>
110![]() <th>Header7</th>
    <th>Header7</th>
111![]() <th>Header8</th>
    <th>Header8</th>
112![]() </tr>
    </tr>
113![]() </HeaderTemplate>
    </HeaderTemplate>
114![]() <ItemTemplate>
    <ItemTemplate>
115![]() 
    
116![]() <!-- 这里牵涉到公司机密,就不show了,内容只是为了显示一个列表,让用户选择打印那些订单-->
<!-- 这里牵涉到公司机密,就不show了,内容只是为了显示一个列表,让用户选择打印那些订单-->
117![]() </ItemTemplate>
    </ItemTemplate>
118![]() </asp:Repeater>
    </asp:Repeater>
119![]() </table>
</table>
120![]() </asp:Content>
</asp:Content>
 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="ReceiptViewer.aspx.cs" Inherits="ReceiptViewer" MasterPageFile="~/themes/default/layout/Simple.master" %>
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ReceiptViewer.aspx.cs" Inherits="ReceiptViewer" MasterPageFile="~/themes/default/layout/Simple.master" %>2

3
 <%@ Register Assembly="CrystalDecisions.Web, Version=10.2.3600.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"
<%@ Register Assembly="CrystalDecisions.Web, Version=10.2.3600.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"4
 Namespace="CrystalDecisions.Web" TagPrefix="CR" %>
    Namespace="CrystalDecisions.Web" TagPrefix="CR" %>5
 <asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">6
 <script language="javascript">
 <script language="javascript">7
 function checkAll(oEle)
 function checkAll(oEle)8
 {
{9
 var checked = oEle.checked;
    var checked = oEle.checked;10
 while(oEle.tagName!="TABLE")
    while(oEle.tagName!="TABLE")11
 {
    {12
 // oEle = oEle.parentElement;
       // oEle = oEle.parentElement;13
 oEle = oEle.parentNode;
        oEle = oEle.parentNode;14
 }
    }15
 
    16
 var checkBoxs  = oEle.getElementsByTagName("INPUT");
    var checkBoxs  = oEle.getElementsByTagName("INPUT");17
 for(var i=0;i<checkBoxs.length;i++)
    for(var i=0;i<checkBoxs.length;i++)18
 {
    {19
 if(checkBoxs[i].type=="checkbox")
        if(checkBoxs[i].type=="checkbox")20
 {
        {21
 checkBoxs[i].checked = checked;
            checkBoxs[i].checked = checked;22
 }
        }23
 }
    }24
 }
}25

26
 function checkSelectList()
function checkSelectList()27
 {
{28
 var selectList="";
    var selectList="";29
 var tbList=document.getElementsByName("tbOrderList");
    var tbList=document.getElementsByName("tbOrderList");30
 var chkList=document.getElementsByTagName("INPUT");
    var chkList=document.getElementsByTagName("INPUT");31
 if(chkList==null) return false;
    if(chkList==null) return false;32
 var length=chkList.length;
    var length=chkList.length;33
 
   34
 for(i=0;i<length-2;i++)
    for(i=0;i<length-2;i++)35
 {
    {36
 if(chkList[i].type=="checkbox" && chkList[i].checked)
        if(chkList[i].type=="checkbox" && chkList[i].checked)37
 {
        {38
 var objOrderId=chkList[i].nextSibling;
            var objOrderId=chkList[i].nextSibling;39
 if(objOrderId.type!="hidden") continue;
            if(objOrderId.type!="hidden") continue;40
 //            var objOrderId=objReference.nextSibling;
//            var objOrderId=objReference.nextSibling;41
 //            if(objOrderId.type!="hidden") continue;
//            if(objOrderId.type!="hidden") continue;42
 
            43
 //            if(objReference.type=="hidden" && objReference.value!="")
//            if(objReference.type=="hidden" && objReference.value!="")44
 //            {
//            {45
 //                failed = true;
//                failed = true;46
 //            }
//            }47
 if(objOrderId.type="hidden")
            if(objOrderId.type="hidden")48
 {
            {49
 if (selectList != "")
                if (selectList != "") 50
 {
                {51
 selectList=selectList+",";
                    selectList=selectList+",";            52
 }
                }53
 
                54
 selectList = selectList+objOrderId.value;
                 selectList = selectList+objOrderId.value;55
 }
            }56
 }
        }57
 }
    }58
 if(selectList=="")
    if(selectList=="")59
 {
    {60
 alert("Please select order to print.");
        alert("Please select order to print.");61
 return false;
        return false;62
 }
    }63
 else
    else64
 {
    {65
 var hidList=document.getElementById("ctl00_ContentPlaceHolder1_hidOrderList");
        var hidList=document.getElementById("ctl00_ContentPlaceHolder1_hidOrderList");66
 hidList.value=selectList;
        hidList.value=selectList;67
 return true;
        return true;68
 }
    }69
 }
}70
 </script>
 </script>71
 
 72
 <asp:panel id="panToolBar" runat="server" Wrap="False" Height="5px">
   <asp:panel id="panToolBar" runat="server" Wrap="False" Height="5px">73
 <asp:LinkButton id="LinkButbtnRefresh" runat="server" OnClick="LinkButbtnRefresh_Click">[Refresh]</asp:LinkButton> 
<asp:LinkButton id="LinkButbtnRefresh" runat="server" OnClick="LinkButbtnRefresh_Click">[Refresh]</asp:LinkButton>  74
 <asp:HyperLink id="hlBack" runat="server">[Back]</asp:HyperLink>
<asp:HyperLink id="hlBack" runat="server">[Back]</asp:HyperLink>75
 <asp:Button ID="btShowPrint" CssClass="buttondark" runat="server" OnClick="btShowPrint_Click" Text="[Show Print Option]" />
       <asp:Button ID="btShowPrint" CssClass="buttondark" runat="server" OnClick="btShowPrint_Click" Text="[Show Print Option]" />76
 <asp:Button ID="btPrint"  CssClass="buttondark" runat="server" Text="Print" OnClientClick="return checkSelectList();" OnCommand="btPrint_Command" />
       <asp:Button ID="btPrint"  CssClass="buttondark" runat="server" Text="Print" OnClientClick="return checkSelectList();" OnCommand="btPrint_Command" />77
 <asp:HiddenField ID="hidOrderList" runat="server" />
  <asp:HiddenField ID="hidOrderList" runat="server" />78
 <asp:HiddenField ID="hidPrinterName" runat="server" />
       <asp:HiddenField ID="hidPrinterName" runat="server" />  79
 <asp:HiddenField ID="hidPrintCopies" runat="server" />
       <asp:HiddenField ID="hidPrintCopies" runat="server" />  80
 </asp:panel>
  </asp:panel>81
 <asp:Panel ID="panPrint" Visible="false" runat="server" Height="50px" Width="50%">
    <asp:Panel ID="panPrint" Visible="false" runat="server" Height="50px" Width="50%">82
 <asp:DropDownList ID="ddlPrinter" runat="server">
        <asp:DropDownList ID="ddlPrinter" runat="server">83
 </asp:DropDownList>
        </asp:DropDownList>84
 <br />
        <br />85
 Print <asp:TextBox ID="txtCopies" Width="50px" Text="1"  runat="server"></asp:TextBox>Copies.
        Print <asp:TextBox ID="txtCopies" Width="50px" Text="1"  runat="server"></asp:TextBox>Copies.86
 <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server"
        <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" 87
 ControlToValidate="txtCopies" ValidationGroup="vPrint"
         ControlToValidate="txtCopies" ValidationGroup="vPrint"88
 ErrorMessage="Please input a number of copies to print."></asp:RequiredFieldValidator>
        ErrorMessage="Please input a number of copies to print."></asp:RequiredFieldValidator>89
 <asp:RangeValidator ID="RangeValidator1" runat="server" MaximumValue="1000" MinimumValue="1"
        <asp:RangeValidator ID="RangeValidator1" runat="server" MaximumValue="1000" MinimumValue="1"90
 ControlToValidate="txtCopies"
         ControlToValidate="txtCopies"91
 ErrorMessage="Must be a number over 1" ValidationGroup="vPrint">.
        ErrorMessage="Must be a number over 1" ValidationGroup="vPrint">.92
 </asp:RangeValidator>
        </asp:RangeValidator> 93
 <br />
        <br />94
 <asp:Button ID="btConrirm"  CssClass="buttondark" runat="server" Text="Confirm" OnCommand="btConfirm_Command" /></asp:Panel>
<asp:Button ID="btConrirm"  CssClass="buttondark" runat="server" Text="Confirm" OnCommand="btConfirm_Command" /></asp:Panel>95
 <CR:CrystalReportViewer id="rptViewer" runat="server" Width="350px" Height="50px" PageToTreeRatio="5" EnableDatabaseLogonPrompt="False" EnableDrillDown="False" EnableParameterPrompt="False" AutoDataBind="True" PrintMode="ActiveX" DisplayGroupTree="False"/>
<CR:CrystalReportViewer id="rptViewer" runat="server" Width="350px" Height="50px" PageToTreeRatio="5" EnableDatabaseLogonPrompt="False" EnableDrillDown="False" EnableParameterPrompt="False" AutoDataBind="True" PrintMode="ActiveX" DisplayGroupTree="False"/>96
 <br />
    <br />97
 <table cellspacing="1" id="tbOrderList" class="listtable" cellpadding="0">
    <table cellspacing="1" id="tbOrderList" class="listtable" cellpadding="0">98
 <asp:Repeater ID="rpOrderList" runat="server" OnItemDataBound="rpOrderListItemBound">
    <asp:Repeater ID="rpOrderList" runat="server" OnItemDataBound="rpOrderListItemBound">99
 <HeaderTemplate>
    <HeaderTemplate>100
 <tr>
    <tr>101
 <th>
    <th>102
 <input type="checkbox" id="chkAll" onclick="checkAll(this);" title="Select All"/><label style="display:inline;" for="chkAll">Select All</label>
        <input type="checkbox" id="chkAll" onclick="checkAll(this);" title="Select All"/><label style="display:inline;" for="chkAll">Select All</label>103
 </th>
        </th>104
 <th>Header1</th>
    <th>Header1</th>105
 <th>Header2</th>
    <th>Header2</th>106
 <th>Header3</th>
    <th>Header3</th>107
 <th>Header4</th>
    <th>Header4</th>108
 <th>Header5</th>
    <th>Header5</th>109
 <th>Header6</th>
    <th>Header6</th>110
 <th>Header7</th>
    <th>Header7</th>111
 <th>Header8</th>
    <th>Header8</th>112
 </tr>
    </tr>113
 </HeaderTemplate>
    </HeaderTemplate>114
 <ItemTemplate>
    <ItemTemplate>115
 
    116
 <!-- 这里牵涉到公司机密,就不show了,内容只是为了显示一个列表,让用户选择打印那些订单-->
<!-- 这里牵涉到公司机密,就不show了,内容只是为了显示一个列表,让用户选择打印那些订单-->117
 </ItemTemplate>
    </ItemTemplate>118
 </asp:Repeater>
    </asp:Repeater>119
 </table>
</table>120
 </asp:Content>
</asp:Content>cs:
  1![]() using System;
using System;
2![]() using System.Data;
using System.Data;
3![]() using System.Configuration;
using System.Configuration;
4![]() using System.Collections;
using System.Collections;
5![]() using System.Web;
using System.Web;
6![]() using System.Web.Security;
using System.Web.Security;
7![]() using System.Web.UI;
using System.Web.UI;
8![]() using System.Web.UI.WebControls;
using System.Web.UI.WebControls;
9![]() using System.Web.UI.WebControls.WebParts;
using System.Web.UI.WebControls.WebParts;
10![]() using System.Web.UI.HtmlControls;
using System.Web.UI.HtmlControls;
11![]()
12![]() using System.Drawing;
using System.Drawing;
13![]() using System.ComponentModel;
using System.ComponentModel;
14![]() using EMCCommerce.Framework;
using EMCCommerce.Framework;
15![]() using CrystalDecisions.Shared;
using CrystalDecisions.Shared;
16![]() using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.CrystalReports.Engine;
17![]() using System.Drawing.Printing;
using System.Drawing.Printing;
18![]()
19![]() public partial class ReceiptViewer : BasePage
public partial class ReceiptViewer : BasePage
20![]() {
{
21![]() public struct qsReceipt
    public struct qsReceipt
22![]() {
    {
23![]() public const string Receipt = "rpt";
        public const string Receipt = "rpt";
24![]() }
    }
25![]() private const string GROUP_TREEV_HIDE = "[Hide Tree View]";
         private const string GROUP_TREEV_HIDE = "[Hide Tree View]";
26![]() private const string GROUP_TREEV_SHOW = "[Show Tree View]";
    private const string GROUP_TREEV_SHOW = "[Show Tree View]";
27![]() private const string PRINT_SHOW = "[Show Print Option]";
    private const string PRINT_SHOW = "[Show Print Option]";
28![]() private const string PRINT_HIDE = "[Hide Printing Panel]";
    private const string PRINT_HIDE = "[Hide Printing Panel]";
29![]()
30![]() private CrystalDecisions.CrystalReports.Engine.ReportDocument rptDoc;
    private CrystalDecisions.CrystalReports.Engine.ReportDocument rptDoc;
31![]()
32![]() protected void Page_Load(object sender, EventArgs e)
    protected void Page_Load(object sender, EventArgs e)
33![]() {
    {
34![]() if (!IsPostBack)
        if (!IsPostBack)
35![]() {
        {
36![]() //remember the referal
            //remember the referal
37![]() if (null != Request.UrlReferrer && Request.UrlReferrer.Host == Request.Url.Host)
            if (null != Request.UrlReferrer && Request.UrlReferrer.Host == Request.Url.Host)
38![]() {
            {
39![]() hlBack.NavigateUrl = Request.UrlReferrer.PathAndQuery;
                hlBack.NavigateUrl = Request.UrlReferrer.PathAndQuery;
40![]() hlBack.Visible = true;
                hlBack.Visible = true;
41![]() }
            }
42![]() else
            else
43![]() {
            {
44![]() hlBack.Visible = false; //can't provide this feature.
                hlBack.Visible = false; //can't provide this feature.
45![]() }
            }
46![]() //load report
            //load report
47![]() //InitLoadReport();
            //InitLoadReport();
48![]() LoadOrderList();
            LoadOrderList();
49![]() //Print();
            //Print();
50![]() //panPrint.Visible = false;
//panPrint.Visible = false;
51![]() }
        }
52![]() else
        else
53![]() {
        {
54![]() LoadCachedReport();
            LoadCachedReport();
55![]() }
        }
56![]() //btnGroupTree.Text = (rptViewer.DisplayGroupTree ? GROUP_TREEV_HIDE : GROUP_TREEV_SHOW);
        //btnGroupTree.Text = (rptViewer.DisplayGroupTree ? GROUP_TREEV_HIDE : GROUP_TREEV_SHOW);            
57![]() }
    }
58![]()
59![]() //private void FillRptParamsFromReq()
    //private void FillRptParamsFromReq()
60![]() //{
    //{
61![]() //    ParameterFieldDefinitions Parms = rptDoc.DataDefinition.ParameterFields;
    //    ParameterFieldDefinitions Parms = rptDoc.DataDefinition.ParameterFields;
62![]() //    ParameterFieldDefinition paramField;
    //    ParameterFieldDefinition paramField; 
63![]() //    for (int i = 0; i < rptDoc.DataDefinition.ParameterFields.Count; i++)
    //    for (int i = 0; i < rptDoc.DataDefinition.ParameterFields.Count; i++)
64![]() //    {
    //    {
65![]() //        paramField = rptDoc.DataDefinition.ParameterFields[i];
    //        paramField = rptDoc.DataDefinition.ParameterFields[i];
66![]() //    //Response.Write(Utils.Cstr(Request[paramField.ParameterFieldName], ""));
    //    //Response.Write(Utils.Cstr(Request[paramField.ParameterFieldName], ""));
67![]() //    //Response.End();
    //    //Response.End();
68![]() //        if (Request.Params[paramField.ParameterFieldName] != null)
    //        if (Request.Params[paramField.ParameterFieldName] != null)
69![]() //        {
    //        {
70![]() //            rptDoc.SetParameterValue(i, Utils.Cstr(Request[paramField.ParameterFieldName], ""));
    //            rptDoc.SetParameterValue(i, Utils.Cstr(Request[paramField.ParameterFieldName], ""));
71![]() //        }
    //        }
72![]() //        else
    //        else
73![]() //        {
    //        {
74![]() //            string val;
    //            string val;
75![]() //            val = "";
    //            val = "";
76![]() //            rptDoc.SetParameterValue(i, val);
    //            rptDoc.SetParameterValue(i, val);
77![]() //        }
    //        }
78![]() //    }
    //    }
79![]() //}
    //}
80![]() private void FillRptParamsFromReq(params string[] paravalue)
    private void FillRptParamsFromReq(params string[] paravalue)
81![]() {
    {
82![]() ParameterFieldDefinitions Parms = rptDoc.DataDefinition.ParameterFields;
        ParameterFieldDefinitions Parms = rptDoc.DataDefinition.ParameterFields;
83![]() ParameterFieldDefinition paramField;
        ParameterFieldDefinition paramField;
84![]() for (int i = 0; i < rptDoc.DataDefinition.ParameterFields.Count; i++)
        for (int i = 0; i < rptDoc.DataDefinition.ParameterFields.Count; i++)
85![]() {
        {
86![]() paramField = rptDoc.DataDefinition.ParameterFields[i];
            paramField = rptDoc.DataDefinition.ParameterFields[i];
87![]() //Response.Write(Utils.Cstr(Request[paramField.ParameterFieldName], ""));
            //Response.Write(Utils.Cstr(Request[paramField.ParameterFieldName], ""));
88![]() //Response.End();
            //Response.End();
89![]() //if (Request.Params[paramField.ParameterFieldName] != null)
            //if (Request.Params[paramField.ParameterFieldName] != null)
90![]() if (paravalue[i] != null)
            if (paravalue[i] != null)
91![]() {
            {
92![]() rptDoc.SetParameterValue(i, Utils.Cstr(paravalue[i], ""));
                rptDoc.SetParameterValue(i, Utils.Cstr(paravalue[i], ""));
93![]() }
            }
94![]() else
            else
95![]() {
            {
96![]() string val;
                string val;
97![]() val = "";
                val = "";
98![]() rptDoc.SetParameterValue(i, val);
                rptDoc.SetParameterValue(i, val);
99![]() }
            }
100![]() }
        }
101![]() }
    }
102![]()
103![]() private void InitLoadReport()
    private void InitLoadReport()
104![]() {
    {
105![]() try
        try
106![]() {
        {
107![]() string reportFilePath = Server.MapPath(@"报表路径");
            string reportFilePath = Server.MapPath(@"报表路径");
108![]() rptDoc = new CrystalDecisions.CrystalReports.Engine.ReportDocument();
            rptDoc = new CrystalDecisions.CrystalReports.Engine.ReportDocument();
109![]() rptDoc.Load(reportFilePath);
            rptDoc.Load(reportFilePath);
110![]()
111![]() //init connection
            //init connection
112![]() InitRptConnection(连接字符串);
            InitRptConnection(连接字符串);
113![]() //FillRptParamsFromReq();
            //FillRptParamsFromReq();
114![]() //assign source
            //assign source
115![]() //rptViewer.ReportSource = rptDoc;
            //rptViewer.ReportSource = rptDoc;
116![]() //rptViewer.RefreshReport(); //remove it in VS2005 or error.
            //rptViewer.RefreshReport(); //remove it in VS2005 or error.
117![]()
118![]() //fill up Parameters
            //fill up Parameters
119![]()
120![]() //cache this report
            //cache this report
121![]() Session[CACHED_RPT] = rptDoc;
            Session[CACHED_RPT] = rptDoc;
122![]() Session[CACHED_RPT_NAME] = Request[qsReceipt.Receipt];
            Session[CACHED_RPT_NAME] = Request[qsReceipt.Receipt];
123![]() /*}
            /*}
124![]() else
            else
125![]() {//redirect to the default page
            {//redirect to the default page
126![]() //Response.Redirect( "default.aspx" );
                //Response.Redirect( "default.aspx" );
127![]() //Response.End();
                //Response.End();
128![]() }*/
            }*/
129![]() }
        }
130![]() catch (Exception e1)
        catch (Exception e1)
131![]() {
        {
132![]() Response.Write(e1.ToString());
            Response.Write(e1.ToString());
133![]() Response.End();
            Response.End();
134![]() }
        }
135![]() }
    }
136![]()
137![]() private void LoadCachedReport()
    private void LoadCachedReport()
138![]() {
    {
139![]() string cachedRpt = Utils.Cstr(Session[CACHED_RPT_NAME], string.Empty);
        string cachedRpt = Utils.Cstr(Session[CACHED_RPT_NAME], string.Empty);
140![]() string qRpt = Utils.Cstr(Request[qsReceipt.Receipt], string.Empty);
        string qRpt = Utils.Cstr(Request[qsReceipt.Receipt], string.Empty);
141![]() if (cachedRpt.Length > 0 && cachedRpt == qRpt)
        if (cachedRpt.Length > 0 && cachedRpt == qRpt)
142![]() {
        {
143![]() rptDoc = (CrystalDecisions.CrystalReports.Engine.ReportDocument)Session[CACHED_RPT];
            rptDoc = (CrystalDecisions.CrystalReports.Engine.ReportDocument)Session[CACHED_RPT];
144![]() //rptViewer.ReportSource = rptDoc;
            //rptViewer.ReportSource = rptDoc;
145![]() }
        }
146![]() else
        else
147![]() {
        {
148![]() InitLoadReport();
            InitLoadReport();
149![]() }
        }
150![]() }
    }
151![]()
152![]()
153![]() private void InitRptConnection(string conn)
    private void InitRptConnection(string conn)
154![]() {
    {
155![]() //break the connection string
        //break the connection string
156![]() string[] parms = conn.Split(new char[] { ';' });
        string[] parms = conn.Split(new char[] { ';' });
157![]() Dictionary connD = new Dictionary();
        Dictionary connD = new Dictionary();
158![]() for (int i = 0; i < parms.Length; i++)
        for (int i = 0; i < parms.Length; i++)
159![]() {
        {
160![]() if (parms[i].Trim().Length < 1) continue;
            if (parms[i].Trim().Length < 1) continue;
161![]() string[] pair = parms[i].Split(new char[] { '=' });
            string[] pair = parms[i].Split(new char[] { '=' });
162![]() if (pair.Length > 1)
            if (pair.Length > 1)
163![]() {
            {
164![]() connD[pair[0]] = pair[1];
                connD[pair[0]] = pair[1];
165![]() }
            }
166![]() }
        }
167![]()
168![]() string u, p, s, d;
        string u, p, s, d;
169![]() u = connD["UID"].ToString();
        u = connD["UID"].ToString();
170![]() p = connD["PWD"].ToString();
        p = connD["PWD"].ToString();
171![]() s = connD["Server"].ToString();
        s = connD["Server"].ToString();
172![]() d = connD["Database"].ToString();
        d = connD["Database"].ToString();
173![]() string constr = string.Format("UID={0};PWD={1};Server={2};DataBase={3}",u,p,s,d);
        string constr = string.Format("UID={0};PWD={1};Server={2};DataBase={3}",u,p,s,d);
174![]() rptDoc.SetDatabaseLogon(u, p);
        rptDoc.SetDatabaseLogon(u, p);
175![]() //rptDoc.SetDatabaseLogon(u, p, s, d);  //not working. login fail with this one
        //rptDoc.SetDatabaseLogon(u, p, s, d);  //not working. login fail with this one
176![]() return;
        return;
177![]()
178![]() 
        
179![]() }
            }
180![]() 
    
181![]()
182![]() protected void LinkButbtnRefresh_Click(object sender, System.EventArgs e)
       protected void LinkButbtnRefresh_Click(object sender, System.EventArgs e)
183![]() {
    {
184![]() InitLoadReport();
        InitLoadReport();
185![]() }
    }
186![]()
187![]() private void showPrint()
    private void showPrint()
188![]() {
    {
189![]() ddlPrinter.Items.Clear();
        ddlPrinter.Items.Clear();
190![]() foreach (string ptr in PrinterSettings.InstalledPrinters)
        foreach (string ptr in PrinterSettings.InstalledPrinters)
191![]() {
        {
192![]() ddlPrinter.Items.Add(ptr);
            ddlPrinter.Items.Add(ptr);
193![]() }
        }
194![]() panPrint.Visible = true;
        panPrint.Visible = true;
195![]() //lbPrintError.Visible = false;
        //lbPrintError.Visible = false;
196![]() //lbPrintResult.Visible = false;
        //lbPrintResult.Visible = false;
197![]() }
    }
198![]()
199![]() private void SetPrinter(string printerName)
    private void SetPrinter(string printerName)
200![]() {
    {
201![]() rptDoc.PrintOptions.PrinterName = printerName;
        rptDoc.PrintOptions.PrinterName = printerName;
202![]() }
    }
203![]()
204![]() protected void btPrint_Command(object sender, CommandEventArgs e)
    protected void btPrint_Command(object sender, CommandEventArgs e)
205![]() {
    {
206![]() string orderList = this.hidOrderList.Value.Trim();
        string orderList = this.hidOrderList.Value.Trim();
207![]() string message = "";
        string message = "";
208![]() int copies = Convert.ToInt32(string.IsNullOrEmpty(hidPrintCopies.Value)?"1":hidPrintCopies.Value);
        int copies = Convert.ToInt32(string.IsNullOrEmpty(hidPrintCopies.Value)?"1":hidPrintCopies.Value);
209![]() if (string.IsNullOrEmpty(orderList)) return;
        if (string.IsNullOrEmpty(orderList)) return;
210![]() string[] orderLists = orderList.Split(',');
        string[] orderLists = orderList.Split(',');
211![]() foreach (string order in orderLists)
        foreach (string order in orderLists)
212![]() {
        {
213![]() FillRptParamsFromReq(new string[] {order});
            FillRptParamsFromReq(new string[] {order});
214![]() try
            try
215![]() {
            {
216![]() if (string.IsNullOrEmpty(hidPrinterName.Value))
            if (string.IsNullOrEmpty(hidPrinterName.Value))
217![]() this.hidPrinterName.Value = PrinterSettings.InstalledPrinters[0];
                this.hidPrinterName.Value = PrinterSettings.InstalledPrinters[0];
218![]() SetPrinter(hidPrinterName.Value);
            SetPrinter(hidPrinterName.Value);
219![]() rptDoc.PrintToPrinter(copies, true, 0, 0);
            rptDoc.PrintToPrinter(copies, true, 0, 0);
220![]() }
            }
221![]() catch (Exception ex)
            catch (Exception ex)
222![]() {
            {
223![]() message = ex.Message;
                message = ex.Message;
224![]() }
            }
225![]() }
        }
226![]() if (string.IsNullOrEmpty(message))
        if (string.IsNullOrEmpty(message))
227![]() message = "Order: " + orderList + " Print Successfully.";
            message = "Order: " + orderList + " Print Successfully.";
228![]() Response.Write("<script>alert('" + message + "');</script>");
        Response.Write("<script>alert('" + message + "');</script>");
229![]() }
    }
230![]()
231![]() protected void btConfirm_Command(object sender,CommandEventArgs e)
    protected void btConfirm_Command(object sender,CommandEventArgs e)
232![]() {
    {
233![]() this.hidPrinterName.Value = this.ddlPrinter.SelectedValue;
        this.hidPrinterName.Value = this.ddlPrinter.SelectedValue;
234![]() this.hidPrintCopies.Value = this.txtCopies.Text;
        this.hidPrintCopies.Value = this.txtCopies.Text;
235![]() this.panPrint.Visible = false;
        this.panPrint.Visible = false;
236![]() this.btShowPrint.Text = (panPrint.Visible ? PRINT_HIDE : PRINT_SHOW);
        this.btShowPrint.Text = (panPrint.Visible ? PRINT_HIDE : PRINT_SHOW);
237![]() }
    }
238![]()
239![]() protected void btShowPrint_Click(object sender, EventArgs e)
    protected void btShowPrint_Click(object sender, EventArgs e)
240![]() {
    {
241![]() if (!panPrint.Visible)
        if (!panPrint.Visible)
242![]() showPrint();
            showPrint();
243![]() else
        else
244![]() hidePrint();
            hidePrint();
245![]()
246![]() this.btShowPrint.Text = (panPrint.Visible ? PRINT_HIDE : PRINT_SHOW);
        this.btShowPrint.Text = (panPrint.Visible ? PRINT_HIDE : PRINT_SHOW);
247![]() }
    }
248![]()
249![]() private void hidePrint()
    private void hidePrint()
250![]() {
    {
251![]() panPrint.Visible = false;
        panPrint.Visible = false;
252![]() }
    }
253![]()
254![]() private void LoadOrderList()
    private void LoadOrderList()
255![]() {
    {
256![]() //LoadReport show in the page
//LoadReport show in the page 
257![]() }
    }
258![]() 
     
259![]() }
}
260![]()
 using System;
using System;2
 using System.Data;
using System.Data;3
 using System.Configuration;
using System.Configuration;4
 using System.Collections;
using System.Collections;5
 using System.Web;
using System.Web;6
 using System.Web.Security;
using System.Web.Security;7
 using System.Web.UI;
using System.Web.UI;8
 using System.Web.UI.WebControls;
using System.Web.UI.WebControls;9
 using System.Web.UI.WebControls.WebParts;
using System.Web.UI.WebControls.WebParts;10
 using System.Web.UI.HtmlControls;
using System.Web.UI.HtmlControls;11

12
 using System.Drawing;
using System.Drawing;13
 using System.ComponentModel;
using System.ComponentModel;14
 using EMCCommerce.Framework;
using EMCCommerce.Framework;15
 using CrystalDecisions.Shared;
using CrystalDecisions.Shared;16
 using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.CrystalReports.Engine;17
 using System.Drawing.Printing;
using System.Drawing.Printing;18

19
 public partial class ReceiptViewer : BasePage
public partial class ReceiptViewer : BasePage20
 {
{21
 public struct qsReceipt
    public struct qsReceipt22
 {
    {23
 public const string Receipt = "rpt";
        public const string Receipt = "rpt";24
 }
    }25
 private const string GROUP_TREEV_HIDE = "[Hide Tree View]";
         private const string GROUP_TREEV_HIDE = "[Hide Tree View]";26
 private const string GROUP_TREEV_SHOW = "[Show Tree View]";
    private const string GROUP_TREEV_SHOW = "[Show Tree View]";27
 private const string PRINT_SHOW = "[Show Print Option]";
    private const string PRINT_SHOW = "[Show Print Option]";28
 private const string PRINT_HIDE = "[Hide Printing Panel]";
    private const string PRINT_HIDE = "[Hide Printing Panel]";29

30
 private CrystalDecisions.CrystalReports.Engine.ReportDocument rptDoc;
    private CrystalDecisions.CrystalReports.Engine.ReportDocument rptDoc;31

32
 protected void Page_Load(object sender, EventArgs e)
    protected void Page_Load(object sender, EventArgs e)33
 {
    {34
 if (!IsPostBack)
        if (!IsPostBack)35
 {
        {36
 //remember the referal
            //remember the referal37
 if (null != Request.UrlReferrer && Request.UrlReferrer.Host == Request.Url.Host)
            if (null != Request.UrlReferrer && Request.UrlReferrer.Host == Request.Url.Host)38
 {
            {39
 hlBack.NavigateUrl = Request.UrlReferrer.PathAndQuery;
                hlBack.NavigateUrl = Request.UrlReferrer.PathAndQuery;40
 hlBack.Visible = true;
                hlBack.Visible = true;41
 }
            }42
 else
            else43
 {
            {44
 hlBack.Visible = false; //can't provide this feature.
                hlBack.Visible = false; //can't provide this feature.45
 }
            }46
 //load report
            //load report47
 //InitLoadReport();
            //InitLoadReport();48
 LoadOrderList();
            LoadOrderList();49
 //Print();
            //Print();50
 //panPrint.Visible = false;
//panPrint.Visible = false;51
 }
        }52
 else
        else53
 {
        {54
 LoadCachedReport();
            LoadCachedReport();55
 }
        }56
 //btnGroupTree.Text = (rptViewer.DisplayGroupTree ? GROUP_TREEV_HIDE : GROUP_TREEV_SHOW);
        //btnGroupTree.Text = (rptViewer.DisplayGroupTree ? GROUP_TREEV_HIDE : GROUP_TREEV_SHOW);            57
 }
    }58

59
 //private void FillRptParamsFromReq()
    //private void FillRptParamsFromReq()60
 //{
    //{61
 //    ParameterFieldDefinitions Parms = rptDoc.DataDefinition.ParameterFields;
    //    ParameterFieldDefinitions Parms = rptDoc.DataDefinition.ParameterFields;62
 //    ParameterFieldDefinition paramField;
    //    ParameterFieldDefinition paramField; 63
 //    for (int i = 0; i < rptDoc.DataDefinition.ParameterFields.Count; i++)
    //    for (int i = 0; i < rptDoc.DataDefinition.ParameterFields.Count; i++)64
 //    {
    //    {65
 //        paramField = rptDoc.DataDefinition.ParameterFields[i];
    //        paramField = rptDoc.DataDefinition.ParameterFields[i];66
 //    //Response.Write(Utils.Cstr(Request[paramField.ParameterFieldName], ""));
    //    //Response.Write(Utils.Cstr(Request[paramField.ParameterFieldName], ""));67
 //    //Response.End();
    //    //Response.End();68
 //        if (Request.Params[paramField.ParameterFieldName] != null)
    //        if (Request.Params[paramField.ParameterFieldName] != null)69
 //        {
    //        {70
 //            rptDoc.SetParameterValue(i, Utils.Cstr(Request[paramField.ParameterFieldName], ""));
    //            rptDoc.SetParameterValue(i, Utils.Cstr(Request[paramField.ParameterFieldName], ""));71
 //        }
    //        }72
 //        else
    //        else73
 //        {
    //        {74
 //            string val;
    //            string val;75
 //            val = "";
    //            val = "";76
 //            rptDoc.SetParameterValue(i, val);
    //            rptDoc.SetParameterValue(i, val);77
 //        }
    //        }78
 //    }
    //    }79
 //}
    //}80
 private void FillRptParamsFromReq(params string[] paravalue)
    private void FillRptParamsFromReq(params string[] paravalue)81
 {
    {82
 ParameterFieldDefinitions Parms = rptDoc.DataDefinition.ParameterFields;
        ParameterFieldDefinitions Parms = rptDoc.DataDefinition.ParameterFields;83
 ParameterFieldDefinition paramField;
        ParameterFieldDefinition paramField;84
 for (int i = 0; i < rptDoc.DataDefinition.ParameterFields.Count; i++)
        for (int i = 0; i < rptDoc.DataDefinition.ParameterFields.Count; i++)85
 {
        {86
 paramField = rptDoc.DataDefinition.ParameterFields[i];
            paramField = rptDoc.DataDefinition.ParameterFields[i];87
 //Response.Write(Utils.Cstr(Request[paramField.ParameterFieldName], ""));
            //Response.Write(Utils.Cstr(Request[paramField.ParameterFieldName], ""));88
 //Response.End();
            //Response.End();89
 //if (Request.Params[paramField.ParameterFieldName] != null)
            //if (Request.Params[paramField.ParameterFieldName] != null)90
 if (paravalue[i] != null)
            if (paravalue[i] != null)91
 {
            {92
 rptDoc.SetParameterValue(i, Utils.Cstr(paravalue[i], ""));
                rptDoc.SetParameterValue(i, Utils.Cstr(paravalue[i], ""));93
 }
            }94
 else
            else95
 {
            {96
 string val;
                string val;97
 val = "";
                val = "";98
 rptDoc.SetParameterValue(i, val);
                rptDoc.SetParameterValue(i, val);99
 }
            }100
 }
        }101
 }
    }102

103
 private void InitLoadReport()
    private void InitLoadReport()104
 {
    {105
 try
        try106
 {
        {107
 string reportFilePath = Server.MapPath(@"报表路径");
            string reportFilePath = Server.MapPath(@"报表路径");108
 rptDoc = new CrystalDecisions.CrystalReports.Engine.ReportDocument();
            rptDoc = new CrystalDecisions.CrystalReports.Engine.ReportDocument();109
 rptDoc.Load(reportFilePath);
            rptDoc.Load(reportFilePath);110

111
 //init connection
            //init connection112
 InitRptConnection(连接字符串);
            InitRptConnection(连接字符串);113
 //FillRptParamsFromReq();
            //FillRptParamsFromReq();114
 //assign source
            //assign source115
 //rptViewer.ReportSource = rptDoc;
            //rptViewer.ReportSource = rptDoc;116
 //rptViewer.RefreshReport(); //remove it in VS2005 or error.
            //rptViewer.RefreshReport(); //remove it in VS2005 or error.117

118
 //fill up Parameters
            //fill up Parameters119

120
 //cache this report
            //cache this report121
 Session[CACHED_RPT] = rptDoc;
            Session[CACHED_RPT] = rptDoc;122
 Session[CACHED_RPT_NAME] = Request[qsReceipt.Receipt];
            Session[CACHED_RPT_NAME] = Request[qsReceipt.Receipt];123
 /*}
            /*}124
 else
            else125
 {//redirect to the default page
            {//redirect to the default page126
 //Response.Redirect( "default.aspx" );
                //Response.Redirect( "default.aspx" );127
 //Response.End();
                //Response.End();128
 }*/
            }*/129
 }
        }130
 catch (Exception e1)
        catch (Exception e1)131
 {
        {132
 Response.Write(e1.ToString());
            Response.Write(e1.ToString());133
 Response.End();
            Response.End();134
 }
        }135
 }
    }136

137
 private void LoadCachedReport()
    private void LoadCachedReport()138
 {
    {139
 string cachedRpt = Utils.Cstr(Session[CACHED_RPT_NAME], string.Empty);
        string cachedRpt = Utils.Cstr(Session[CACHED_RPT_NAME], string.Empty);140
 string qRpt = Utils.Cstr(Request[qsReceipt.Receipt], string.Empty);
        string qRpt = Utils.Cstr(Request[qsReceipt.Receipt], string.Empty);141
 if (cachedRpt.Length > 0 && cachedRpt == qRpt)
        if (cachedRpt.Length > 0 && cachedRpt == qRpt)142
 {
        {143
 rptDoc = (CrystalDecisions.CrystalReports.Engine.ReportDocument)Session[CACHED_RPT];
            rptDoc = (CrystalDecisions.CrystalReports.Engine.ReportDocument)Session[CACHED_RPT];144
 //rptViewer.ReportSource = rptDoc;
            //rptViewer.ReportSource = rptDoc;145
 }
        }146
 else
        else147
 {
        {148
 InitLoadReport();
            InitLoadReport();149
 }
        }150
 }
    }151

152

153
 private void InitRptConnection(string conn)
    private void InitRptConnection(string conn)154
 {
    {155
 //break the connection string
        //break the connection string156
 string[] parms = conn.Split(new char[] { ';' });
        string[] parms = conn.Split(new char[] { ';' });157
 Dictionary connD = new Dictionary();
        Dictionary connD = new Dictionary();158
 for (int i = 0; i < parms.Length; i++)
        for (int i = 0; i < parms.Length; i++)159
 {
        {160
 if (parms[i].Trim().Length < 1) continue;
            if (parms[i].Trim().Length < 1) continue;161
 string[] pair = parms[i].Split(new char[] { '=' });
            string[] pair = parms[i].Split(new char[] { '=' });162
 if (pair.Length > 1)
            if (pair.Length > 1)163
 {
            {164
 connD[pair[0]] = pair[1];
                connD[pair[0]] = pair[1];165
 }
            }166
 }
        }167

168
 string u, p, s, d;
        string u, p, s, d;169
 u = connD["UID"].ToString();
        u = connD["UID"].ToString();170
 p = connD["PWD"].ToString();
        p = connD["PWD"].ToString();171
 s = connD["Server"].ToString();
        s = connD["Server"].ToString();172
 d = connD["Database"].ToString();
        d = connD["Database"].ToString();173
 string constr = string.Format("UID={0};PWD={1};Server={2};DataBase={3}",u,p,s,d);
        string constr = string.Format("UID={0};PWD={1};Server={2};DataBase={3}",u,p,s,d);174
 rptDoc.SetDatabaseLogon(u, p);
        rptDoc.SetDatabaseLogon(u, p);175
 //rptDoc.SetDatabaseLogon(u, p, s, d);  //not working. login fail with this one
        //rptDoc.SetDatabaseLogon(u, p, s, d);  //not working. login fail with this one176
 return;
        return;177

178
 
        179
 }
            }180
 
    181

182
 protected void LinkButbtnRefresh_Click(object sender, System.EventArgs e)
       protected void LinkButbtnRefresh_Click(object sender, System.EventArgs e)183
 {
    {184
 InitLoadReport();
        InitLoadReport();185
 }
    }186

187
 private void showPrint()
    private void showPrint()188
 {
    {189
 ddlPrinter.Items.Clear();
        ddlPrinter.Items.Clear();190
 foreach (string ptr in PrinterSettings.InstalledPrinters)
        foreach (string ptr in PrinterSettings.InstalledPrinters)191
 {
        {192
 ddlPrinter.Items.Add(ptr);
            ddlPrinter.Items.Add(ptr);193
 }
        }194
 panPrint.Visible = true;
        panPrint.Visible = true;195
 //lbPrintError.Visible = false;
        //lbPrintError.Visible = false;196
 //lbPrintResult.Visible = false;
        //lbPrintResult.Visible = false;197
 }
    }198

199
 private void SetPrinter(string printerName)
    private void SetPrinter(string printerName)200
 {
    {201
 rptDoc.PrintOptions.PrinterName = printerName;
        rptDoc.PrintOptions.PrinterName = printerName;202
 }
    }203

204
 protected void btPrint_Command(object sender, CommandEventArgs e)
    protected void btPrint_Command(object sender, CommandEventArgs e)205
 {
    {206
 string orderList = this.hidOrderList.Value.Trim();
        string orderList = this.hidOrderList.Value.Trim();207
 string message = "";
        string message = "";208
 int copies = Convert.ToInt32(string.IsNullOrEmpty(hidPrintCopies.Value)?"1":hidPrintCopies.Value);
        int copies = Convert.ToInt32(string.IsNullOrEmpty(hidPrintCopies.Value)?"1":hidPrintCopies.Value);209
 if (string.IsNullOrEmpty(orderList)) return;
        if (string.IsNullOrEmpty(orderList)) return;210
 string[] orderLists = orderList.Split(',');
        string[] orderLists = orderList.Split(',');211
 foreach (string order in orderLists)
        foreach (string order in orderLists)212
 {
        {213
 FillRptParamsFromReq(new string[] {order});
            FillRptParamsFromReq(new string[] {order});214
 try
            try215
 {
            {216
 if (string.IsNullOrEmpty(hidPrinterName.Value))
            if (string.IsNullOrEmpty(hidPrinterName.Value))217
 this.hidPrinterName.Value = PrinterSettings.InstalledPrinters[0];
                this.hidPrinterName.Value = PrinterSettings.InstalledPrinters[0];218
 SetPrinter(hidPrinterName.Value);
            SetPrinter(hidPrinterName.Value);219
 rptDoc.PrintToPrinter(copies, true, 0, 0);
            rptDoc.PrintToPrinter(copies, true, 0, 0);220
 }
            }221
 catch (Exception ex)
            catch (Exception ex)222
 {
            {223
 message = ex.Message;
                message = ex.Message;224
 }
            }225
 }
        }226
 if (string.IsNullOrEmpty(message))
        if (string.IsNullOrEmpty(message))227
 message = "Order: " + orderList + " Print Successfully.";
            message = "Order: " + orderList + " Print Successfully.";228
 Response.Write("<script>alert('" + message + "');</script>");
        Response.Write("<script>alert('" + message + "');</script>");229
 }
    }230

231
 protected void btConfirm_Command(object sender,CommandEventArgs e)
    protected void btConfirm_Command(object sender,CommandEventArgs e)232
 {
    {233
 this.hidPrinterName.Value = this.ddlPrinter.SelectedValue;
        this.hidPrinterName.Value = this.ddlPrinter.SelectedValue;234
 this.hidPrintCopies.Value = this.txtCopies.Text;
        this.hidPrintCopies.Value = this.txtCopies.Text;235
 this.panPrint.Visible = false;
        this.panPrint.Visible = false;236
 this.btShowPrint.Text = (panPrint.Visible ? PRINT_HIDE : PRINT_SHOW);
        this.btShowPrint.Text = (panPrint.Visible ? PRINT_HIDE : PRINT_SHOW);237
 }
    }238

239
 protected void btShowPrint_Click(object sender, EventArgs e)
    protected void btShowPrint_Click(object sender, EventArgs e)240
 {
    {241
 if (!panPrint.Visible)
        if (!panPrint.Visible)242
 showPrint();
            showPrint();243
 else
        else244
 hidePrint();
            hidePrint();245

246
 this.btShowPrint.Text = (panPrint.Visible ? PRINT_HIDE : PRINT_SHOW);
        this.btShowPrint.Text = (panPrint.Visible ? PRINT_HIDE : PRINT_SHOW);247
 }
    }248

249
 private void hidePrint()
    private void hidePrint()250
 {
    {251
 panPrint.Visible = false;
        panPrint.Visible = false;252
 }
    }253

254
 private void LoadOrderList()
    private void LoadOrderList()255
 {
    {256
 //LoadReport show in the page
//LoadReport show in the page 257
 }
    }258
 
     259
 }
}260







 
 
 
                     
                    
                 
                    
                 


 
     
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号