最近开发电子商务系统,里边用到报表打印,批量打出订单,以前没有接触过报表,更别说打印了,今天搞定后,那来与大家交流。
源代码如下:
aspx:
cs:
源代码如下:
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![]()
26
function 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>
<%@ 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

26
function 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
else64
{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:
1
using System;
2
using System.Data;
3
using System.Configuration;
4
using System.Collections;
5
using System.Web;
6
using System.Web.Security;
7
using System.Web.UI;
8
using System.Web.UI.WebControls;
9
using System.Web.UI.WebControls.WebParts;
10
using System.Web.UI.HtmlControls;
11![]()
12
using System.Drawing;
13
using System.ComponentModel;
14
using EMCCommerce.Framework;
15
using CrystalDecisions.Shared;
16
using CrystalDecisions.CrystalReports.Engine;
17
using System.Drawing.Printing;
18![]()
19
public 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![]()
using System;2
using System.Data;3
using System.Configuration;4
using System.Collections;5
using System.Web;6
using System.Web.Security;7
using System.Web.UI;8
using System.Web.UI.WebControls;9
using System.Web.UI.WebControls.WebParts;10
using System.Web.UI.HtmlControls;11

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

19
public partial class ReceiptViewer : BasePage20
{21
public struct qsReceipt22
{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 referal37
if (null != Request.UrlReferrer && Request.UrlReferrer.Host == Request.Url.Host)38
{39
hlBack.NavigateUrl = Request.UrlReferrer.PathAndQuery;40
hlBack.Visible = true;41
}42
else43
{44
hlBack.Visible = false; //can't provide this feature.45
}46
//load report47
//InitLoadReport();48
LoadOrderList();49
//Print();50
//panPrint.Visible = false;51
}52
else53
{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
// else73
// {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
else95
{96
string val;97
val = "";98
rptDoc.SetParameterValue(i, val);99
}100
}101
}102

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

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

118
//fill up Parameters119

120
//cache this report121
Session[CACHED_RPT] = rptDoc;122
Session[CACHED_RPT_NAME] = Request[qsReceipt.Receipt];123
/*}124
else125
{//redirect to the default page126
//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
else147
{148
InitLoadReport();149
}150
}151

152

153
private void InitRptConnection(string conn)154
{155
//break the connection string156
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 one176
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
try215
{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
else244
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

![]()
![]()
![]()
![]()
![]()
![]()


浙公网安备 33010602011771号