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