在用户单击“确认”按钮开始打印时,控件向服务端发送一个HTTP
的POST
消息,这样服务端收到此消息后就可以记录在什么时候打印了报表,对于打印了什么报表,是何人打印的,我们可以在POST
消息中加上这两个参数或者用Session
就可以解决这个问题。
下面我详细的讲解一下怎样利用我设计的Web
打印控件实现获取Web
打印的实际打印次数。讲解以ASP.NET
为例,当然其它语言也可以举一反三,很容易实现。因为调用打印控件统一是JavaScirpt
,提交服务器的数据是Http
协议的Post
方式,这些都是通用的。
获取Web
打印的实际打印次数的部分代码如下:
string FileValue, PrintValue, ParaName, ParaValue;
FileValue = FileToString(".\\Frp\\DepositAmt.fr3");
ParaName = "ShopName`~PrintDepositAdd`~PrintPaperNo`~Title"; //`~为各参数的分隔符
ParaValue = "测试酒楼"
+ "`~说明:本单据为贵客押金收取凭证,盖章有效。退房时请出示,遗失者自负,请妥善保存。退房时间为12:00时,延时退房18:00时以前按半天房费收取,18:00时以后算全天房价。押金单有效期为一个月,过期作废。 贵重物品请交前台寄存,未寄存丢失自负。 谢谢!"
+ "`~身份证:4325011980639512"
+ "`~押金单";
SqlConnection ConPrintTest = new SqlConnection(ConfigurationManager.ConnectionStrings["PrintTestConnectionString"].ToString());
ConPrintTest.Open();
DataSet DsCashLog = new DataSet();
SqlDataAdapter DaCashLog = new SqlDataAdapter("Select top 1 CashNo, CashDate, CashAmt, PayName, GuestName, RoomNo, ItemRemark, CashUserName, Remark From CashLog", ConPrintTest);
DaCashLog.FillSchema(DsCashLog, SchemaType.Source, "CashLog");
DaCashLog.Fill(DsCashLog, "CashLog");
PrintValue = TableToXml(DsCashLog.Tables["CashLog"]);
DsCashLog.Dispose();
ConPrintTest.Close();Ext.grid.EditorGridPanel 中combo的显示异常
string ScriptStr;
ScriptStr = "<script language='javascript'>window.onload = function() { try { var ObjPrintMange = new ActiveXObject('WebPrint.WebPrintUnit'); } catch(e) { if( confirm('打印控件未安装,现在下载吗?') ) { window.location='./PrintActivex.exe'; } return; } var OldVersion=ObjPrintMange.Version; NewVerion='5.0(2011-08-01)'; if(OldVersion < NewVerion) { ObjPrintMange = null; alert('打印控件需升级。请先进行下载,下载后关闭IE,然后安装升级版。'); window.location='./PrintActivex.exe'; return; } "
+ " ObjPrintMange.CheckReg('公司名称', '3B8E5B998A3125EE89983EA940BB2AEE'); " //注册码
+ " ObjPrintMange.PrintURL='http://www.xinyuerj.com/ASPPost/PrintNum.asp?FileName=DepsitAmt.fr3'; "
+ "ObjPrintMange.ShowReport('"
+ FileValue + "' , '"
+ ParaName + "', '"
+ ParaValue + "', '"
+ PrintValue + "', '', '', '', '', '');"
+ "ObjPrintMange = null; } </script>";
ScriptStr = ScriptStr.Replace(System.Environment.NewLine, string.Empty);
Response.Write(ScriptStr);
PrintURL
属性,设置此属性,则在报表打印时,在弹出的选择打印机的窗口后点击“确定”按钮时,通过Http
的Post
方式直接提交到所设置的URL
页面,用户可以在URL
处理用户已打印的份数。Post
的字段名指定为PrintCopy
,此参数为用户打印时所选择的份数,默认为1
。
接收实际打印的消息的代码如下:手与iPad2
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.IO;
using System.Text;
namespace Upload
{
public partial class Show : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string FileName, PrintCopy;
FileName = Request.QueryString["FileName"];
PrintCopy = Request.Form["PrintCopy"];
WriteReportFile(FileName, PrintCopy);
Response.Write("File Name" + FileName);
Response.Write("Print Copy" + PrintCopy);
}
private void WriteReportFile(string FileName, string PrintCopy)
{
if ( FileName == null || FileName == "" || FileValue == null ||FileValue == "")
return;
File.WriteAllText(Server.MapPath(FileName), PrintCopy);
}
}
}
分享到:
相关推荐
总之,ASP.NET提供了强大的工具和库,使得在Web环境中实现证书打印功能变得相对容易。开发者可以结合前端设计和后端逻辑,创建出满足各种需求的电子证书打印系统。通过理解上述步骤和技巧,你可以成功地在自己的项目...
本文将深入探讨如何使用C#在ASP.NET Web API中通过文件流下载文件的实例。 首先,让我们分析给出的`DownloadController`代码片段。该控制器包含一个名为`GetFileFromWebApi`的方法,它响应HTTP GET请求,并返回一个...
3. **与Web控件无缝集成**:可以在ASP.NET WebForm中直接使用水晶报表控件。 4. **多格式导出**:支持将报表导出为PDF、Word、Excel、HTML、RTF等多种格式,满足不同场景的需求。 #### 三、水晶报表的结构 水晶...
Asp.Net中使用水晶报表是一项常见的技术实践,尤其对于需要展示复杂数据和报表的Web应用程序。水晶报表是一种强大的报表工具,允许开发者创建丰富的、交互式的报表,并且可以方便地导出为多种格式。以下是对这一主题...
### 使用ASP.NET设计新闻发布系统的关键知识点 #### 一、系统概述 新闻发布系统是一种常见的Web应用程序,主要用于管理和发布新闻内容。这种系统通常包括新闻的增删改查等功能,并且支持分类管理、用户评论等功能。...
第2章 ASP.NET运行模型 12.如何定义变量和判定变量类型 13.什么是变量的作用域 14.如何强制要求显式声明变量 15.如何保留或消除过程调用对变量的影响 16.如何创建和调整动态数组 18.如何计算中英文混合字符串的...
在传统的ASP.NET中,服务器控件如TextBox、Button等会触发回发,使得服务器端能够处理用户的输入。然而,我们可以使用纯HTML元素(如、)和AJAX技术来实现实时的数据操作。例如,创建一个表单,用户可以直接编辑表格...
本教程将引导你了解如何在Asp.Net中使用水晶报表,帮助你快速入门。 首先,我们需要知道水晶报表的核心组件。在服务器端,水晶报表引擎(CREngine.dll)负责处理报表数据的合并、格式转换等功能,确保报表能够以HTML...
- **Microsoft技术栈**:主要包括ASP.NET等技术,适用于Windows平台。 - **PHP**:一种广泛使用的开源脚本语言,易于学习且部署灵活。 - **Servlet/JSP**:Java平台下的核心技术之一,用于构建动态网页。 #### ...
这些题目涉及了计算机基础知识、编程语言概念、...25. ASP.NET共享对象:在ASP.NET中,使用`Session`对象可以在不同项目之间共享数据,但`Res`不是标准的共享对象。 以上是各个问题涉及的计算机相关知识点的详细解释。
9. Page指令属性:在ASP.NET中,Page指令用于设置页面的特性,如CodePage用于指定代码页,Debug用于开启或关闭调试,Language用于指定编程语言,但namespace不是Page指令的属性。 10. 页面视图:在Word中,页面视图...
- **知识点**:ASP.NET 是基于.NET框架的一种服务器端脚本环境,在这种环境中可以使用多种编程语言编写代码,但并不是JavaScript。ASP.NET 使用的语言主要包括 C# 和 Visual Basic.NET。 ### 9. WPS与Word - **...
111 <br>0184 如何在ASP.NET中获取文件的扩展名 111 <br>0185 如何在ASP.NET中用URL在页面之间传值 112 <br>0186 如何使用IsPostBack实现ASP.NET页面加载 112 <br>0187 如何利用输出缓存技术缓存...
- **知识点**: 使用ASP.NET开发的网页,其文件扩展名通常被命名为`.aspx`。 - **解释**: ASP.NET是一种由微软开发的用于创建动态网页的应用框架。在ASP.NET中,网页文件通常以`.aspx`作为扩展名,这有助于服务器识别...
29. ASP.NET页面间传递值的方法包括URL参数、Session、ViewState、QueryStrings、Cookies、隐藏字段、服务器控件的ViewState以及自定义对象等。 以上是计算机二级等级考试的部分试题解析和相关知识点,涵盖了程序...
19. **定制开发**:系统需通过Web定制开发,建议采用Asp.net技术,确保软件的独立性和适应性。 20. **报表导出**:所有的统计报表应支持导出为Excel格式,便于数据分析和打印。 以上是职工考勤管理系统的核心需求...
21. 内容页通过MasterPageFile属性与母版页建立联系,这是ASP.NET中创建页面布局的方式。 22. 双重循环中,内层循环体S语句的执行次数是n(n+1)/2,这是一个组合数问题。 23. Int(-3.1) + round(-4.6) 的结果是-7 -...
5. ASP.NET的验证控件用于确保用户输入的数据符合预期格式。D选项SubmitValidator不是验证控件,而是用于触发验证的控件。 6. 方法重写通常发生在子类继承父类的情况下,但在没有继承关系的类之间无法实现方法重写...