// ========= FrmPrint.aspx ================= //
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="FrmPrint.aspx.cs" Inherits="FrmPrint" %>
<%@ Register Assembly="CrystalDecisions.Web, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"
Namespace="CrystalDecisions.Web" TagPrefix="CR" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>小票打印</title>
<script type="text/javascript">
// 打印完成
function Done()
{
window.returnValue = sRetValue;
close();
}
// 小票打印
function Print(accNum)
{
// 0:不打印 1:打印 2:询问
var nPrintStatus = GetPublicParameter("PrintStatus");
nPrintStatus = parseInt(nPrintStatus);
if ((1 === nPrintStatus) || (2 === nPrintStatus))
{
var IsNeedPrint = false;
if (1 === nPrintStatus)
{
IsNeedPrint = true;
}
else if (2 === nPrintStatus)
{
var returnVal = ShowMsg("请确认", "是否要打印小票?", 2);
if ((true === !returnVal) || (returnVal === "false"))
{
IsNeedPrint = false;
}
else
{
IsNeedPrint = true;
}
}
if (true === IsNeedPrint)
{
// 设置打印参数
FrmOpen.SetPrintParm("开户配卡", accNum.toString()).value;
// 打印
var sRetValue = OpenQuery("../CardholderManager/FrmPrint.aspx", "小票打印", 100, 300);
return sRetValue;
}
}
}
</script>
<style type="text/css">
html, body
{
width: 300px;
height: 100px;
font-size: 20px;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<div style="text-align: center; line-height: 100px;">
<span>正在打印,请稍后 ....</span>
</div>
<div style="display: none;">
<%--<CR:CrystalReportViewer ID="CryView" runat="server" AutoDataBind="true" ReportSourceID="CryRptSource"
EnableDatabaseLogonPrompt="False" HasToggleGroupTreeButton="False" HasToggleParameterPanelButton="False"
Height="50px" PrintMode="ActiveX" ToolPanelView="None" Width="350px" />--%>
<CR:CrystalReportSource ID="CryRptSource" runat="server">
<Report FileName="rpt\CardHolderInforRpt.rpt">
</Report>
</CR:CrystalReportSource>
</div>
</form>
</body>
</html>
// ====================== FrmPrint.aspx.cs ============================= //
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
// ------------------------------------------------------------- //
// 版权所有:CopyRight (C)
// 项目名称:
// 文件名称:FrmPrint.aspx.cs
// 创 建 者:
// 创建日期:2014-06-26
// 功能描述:小票打印;
// 调用依赖:
// -------------------------------------------------------------
// 修 改 者:
// 修改时间:
// 修改原因:
// 修改描述:
// ------------------------------------------------------------- //
using CrystalDecisions.CrystalReports.Engine;
using System.Collections;
using System.Data;
using System.Drawing.Printing;
public partial class FrmPrint : System.Web.UI.Page
{
/// <summary>
/// Remoting配置信息
/// </summary>
protected Config config = new Config();
/// <summary>
/// 页面加载
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
string sRet = string.Empty;
DataSet dsParm = (DataSet)Session["rptDataSet"];
if (null == dsParm || 0 == dsParm.Tables.Count || 1 != dsParm.Tables[0].Rows.Count)
{
sRet = "无小票打印参数!";
}
else
{
DataRow dr = dsParm.Tables[0].Rows[0];
string sOptName = dr["OptName"].ToString();
string sAccNum = dr["AccNum"].ToString();
if ((false == string.IsNullOrEmpty(sOptName)) && (false == string.IsNullOrEmpty(sAccNum)))
{
sRet = this.Print(sOptName, sAccNum);//\\192.168.1.179\HP LaserJet 1020
}
else
{
sRet = "小票打印参数为空!";
}
}
ClientScriptManager ScriptManager = ((Page)System.Web.HttpContext.Current.Handler).ClientScript;
ScriptManager.RegisterStartupScript(typeof(string), "", "var sRetValue = '" + sRet + "';Done();", true); // FrmPrint.aspx中获取了sRetValue的值,并执行了Done();函数
//if ("1" != sRet)
//{
// ScriptManager.RegisterStartupScript(typeof(string), "", "alert('" + sRet + "');close();", true);
//}
//else
//{
// // 关闭页面
// ScriptManager.RegisterStartupScript(typeof(string), "", "close();", true);
//}
}
/// <summary>
/// 小票打印
/// </summary>
/// <param name="optName">操作名称(输入参数)</param>
/// <param name="accNum">账号(输入参数)</param>
/// <returns></returns>
public string Print(string optName, string accNum)
{
string sRet = string.Empty;
string sOptName = "", sTime = "", sStation = "", sAccNum = "", sCardCode = "", sOperate = "",
sMoney = "", sWallet = "", sUnit = "", sHelp = "", sWalletMoney = "N/A", sMoneyCharge = "N/A";
string path = "";
try
{
Hashtable PrintParm = new Hashtable();
PrintParm.Add("sOptName", optName);
PrintParm.Add("sAccNum", accNum);
PrintParm.Add("sCardCode", "0");
PrintParm.Add("sMoney", "0");
PrintParm.Add("sWallet", "0");
foreach (string sTmp in PrintParm.Keys)
{
switch (sTmp)
{
case "sOptName":
sOptName = PrintParm[sTmp].ToString().Trim();
break;
// case "sTime":
// sTime = hshtbl[sTmp].ToString().Trim();
// break;
// case "sStation":
// sStation = hshtbl[sTmp].ToString().Trim();
// break;
case "sAccNum":
if (PrintParm[sTmp].ToString().Trim().Length < 10)
{
sAccNum = "0000000000" + PrintParm[sTmp].ToString().Trim();
sAccNum = sAccNum.Substring(sAccNum.Length - 10);
}
else
{
sAccNum = PrintParm[sTmp].ToString().Trim();
}
break;
case "sCardCode":
sCardCode = "00000000" + PrintParm[sTmp].ToString().Trim();
sCardCode = sCardCode.Substring(sCardCode.Length - 8);
break;
// case "sOperate":
// sOperate = "000000" + hshtbl[sTmp].ToString().Trim();
// sOperate = sOperate.Substring(sOperate.Length - 6);
// break;
case "sMoney":
sMoney = Convert.ToDouble(PrintParm[sTmp].ToString()).ToString("0.00") + "元";
break;
case "sWallet":
sWallet = PrintParm[sTmp].ToString().Trim();
break;
// case "sUnit":
// sUnit = hshtbl[sTmp].ToString().Trim();
// break;
// case "sHelp":
// sHelp = hshtbl[sTmp].ToString().Trim();
// break;
case "dMoneWallet":
sWalletMoney = Convert.ToDouble(PrintParm[sTmp].ToString()).ToString("0.00") + "元";
break;
case "dMonCharge":
sMoneyCharge = Convert.ToDouble(PrintParm[sTmp].ToString()).ToString("0.00") + "元";
break;
}
}
//sTime =
//ICustomException _ICustomException = (ICustomException)RemotingHelper.GetObject(typeof(ICustomException));
config.iInterfaceByNo(typeof(Zytk.Client.Common.ICustomException));
sTime = this.config._ICustEx.ServerTime.ToString("yyyy-MM-dd HH:mm:ss");
sStation = PublicParameter.GetStaCode().ToString();
sOperate = "000000" + PublicParameter.GetOptCode().ToString();
sOperate = sOperate.Substring(sOperate.Length - 6);
//IAppParameter _IAppParameter = (IAppParameter)RemotingHelper.GetObject(typeof(IAppParameter));
sUnit = PublicParameter.OPUnitNum.ToString();//_IAppParameter.ClientSerialNo.Trim();
//sHelp = _IAppParameter.OfferName.Trim().Substring(0, 6);
//
//PosPrintRpt posprintRpt = new PosPrintRpt();
ReportDocument rpt = CryRptSource.ReportDocument;
path = Server.MapPath("rpt\\PosPrintRpt.rpt");
rpt.Load(path);
//标题
config.iInterfaceByNo(typeof(IOperatingUnit));
DataSet dsUnit;
sRet = this.config._IOperatingUnit.GetByUnitNum(PublicParameter.OPUnitNum, out dsUnit);
if (sRet != "1")
{
return "error:" + PublicFunctions.GetErrMsg(PublicParameter.GetStaCode(), PublicParameter.GetOptCode(), sRet);
}
TextObject txtTitle = (TextObject)rpt.ReportDefinition.ReportObjects["txtHeadText1"];
txtTitle.Text = dsUnit.Tables[0].Rows[0]["Remark"].ToString();//_IAppParameter.AgentName;
//操作类型
TextObject txtOptName = (TextObject)rpt.ReportDefinition.ReportObjects["txtOptName"];
txtOptName.Text = "操作类型:" + sOptName;
//操作时间
TextObject txtTime = (TextObject)rpt.ReportDefinition.ReportObjects["txtTime"];
txtTime.Text = "操作时间:" + sTime;
//站点编号
TextObject txtStation = (TextObject)rpt.ReportDefinition.ReportObjects["txtStation"];
txtStation.Text = "站点编号:" + sStation;
//使用单位
TextObject txtErpName = (TextObject)rpt.ReportDefinition.ReportObjects["txtErpName"];
txtErpName.Text = "使用单位:" + PublicParameter.ErpName;
//卡户帐号
TextObject txtAccNum = (TextObject)rpt.ReportDefinition.ReportObjects["txtAccNum"];
txtAccNum.Text = "卡户帐号:" + sAccNum;
卡内编号
//TextObject txtCardCode = (TextObject)posprintRpt.ReportDefinition.ReportObjects["txtCardCode"];
//txtCardCode.Text = "卡内编号:"+sCardCode;
//操作员号
TextObject txtOperate = (TextObject)rpt.ReportDefinition.ReportObjects["txtOperate"];
txtOperate.Text = "操作员号:" + sOperate;
if (sWallet == "现金")
{
//交易金额
TextObject txtMoney = (TextObject)rpt.ReportDefinition.ReportObjects["txtMoney"];
txtMoney.Text = "手 续 费:" + sMoney;
//交易钱包
TextObject txtWallet = (TextObject)rpt.ReportDefinition.ReportObjects["txtWallet"];
txtWallet.Text = "";
}
else if (sWallet == "0")
{
//交易金额
TextObject txtMoney = (TextObject)rpt.ReportDefinition.ReportObjects["txtMoney"];
txtMoney.Text = "";
//交易钱包
TextObject txtWallet = (TextObject)rpt.ReportDefinition.ReportObjects["txtWallet"];
txtWallet.Text = "";
}
else
{
//交易金额
TextObject txtMoney = (TextObject)rpt.ReportDefinition.ReportObjects["txtMoney"];
txtMoney.Text = "交易金额:" + sMoney;
//交易钱包
TextObject txtWallet = (TextObject)rpt.ReportDefinition.ReportObjects["txtWallet"];
txtWallet.Text = "交易钱包:" + sWallet;
}
单位编号
//TextObject txtUnit = (TextObject)posprintRpt.ReportDefinition.ReportObjects["txtUnit"];
//txtUnit.Text = "单位编号:"+sUnit;
技术支持
//TextObject txtHelp = (TextObject)posprintRpt.ReportDefinition.ReportObjects["txtHelp"];
//txtHelp.Text = "技术支持:"+sHelp;
//钱包余额
TextObject txtWalletMoney = (TextObject)rpt.ReportDefinition.ReportObjects["txtWalletMoney"];
if (sWalletMoney != "N/A")
{
txtWalletMoney.Text = "钱包余额:" + sWalletMoney;
}
else
{
txtWalletMoney.Text = "";
}
//存款管理费
TextObject txtMoneyCharge = (TextObject)rpt.ReportDefinition.ReportObjects["txtMoneyCharge"];
if (sMoneyCharge != "N/A")
{
txtMoneyCharge.Text = "管 理 费:" + sMoneyCharge;
}
else
{
txtMoneyCharge.Text = "";
}
//直接打印
//rpt.PrintOptions.PrinterName = "打印机";
//rpt.PrintOptions.PrinterName = printerName;
rpt.PrintToPrinter(1, false, 0, 0);
return "1";
}
catch (Exception ex)
{
string sMsg = ex.Message;
sMsg = sMsg.Replace("\r", "");
sMsg = sMsg.Replace("\n", "");
sMsg = sMsg.Replace("\r\n", "");
return sMsg;
}
}
}