仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 559|回复: 10
打印 上一主题 下一主题

[学习教程] ASP网页编程之会商创立基于WSE的报表打印服务及实在现...

[复制链接]
跳转到指定楼层
楼主
发表于 2015-1-16 23:41:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
帮助用户快速实现各种应用服务,ASP商有整合各方面资源的能力,可在短期内为用户提供所需的解决方案。例如,典型的ERP安装,如果要在客户端安装的话需要半年到二年的时间,但是美国的一些ASP商如USI和CORIO能在90—120天内提供ERP应用方案。报表打印|创立|报表打印择要:
看过卢彦师长教师的关于WEB报表打印完成文章的人,必定会为内里所供应的办理计划击节喝采,本文试图给人人展示一个更天真的打印功课流水,并具有必定的有用性。倡议人人在浏览本文之前先浏览卢彦师长教师的两篇文章,同时本文彩用了微软的WSE(1.0)作为帮助工具,对此感应生疏的伴侣,倡议先参考一些观点性的文章,我在文章的最初列了一些参考材料和所需工具,人人可自行体味。

--------------------------------------------------------------------------------

目次
弁言
软件道理
程序完成
注重事项
总结
参考材料

--------------------------------------------------------------------------------

弁言:
WSE供应了一个十分便利的功效,就是撑持附件的传输,只管我们能够接纳其余体例来到达这个目标,好比间接的前往byte型的数据,可是关于年夜多半使用而言,间接前往一个附件,如一张图片更加其实些,请人人不要误解我文章的题目,觉得创立一个WEBSERVICE就能够便利地完成了打印了,我们的软件道理和终极打印的体例跟卢彦师长教师里提到的并没有多年夜区分,我们只是使用了WebService的壮大的穿透性,来使这个体例更加天真,更容易于使用和拓展,本文所接纳的代码全体用C#编写。

--------------------------------------------------------------------------------

软件道理:
本文彩用了XML情势的数据,客户端将必要打印的数据和一些基础的参数,如图像巨细,图像情势等传送给服务器端,而服务器端则依据客户真个请求天生特定的一张或多张图片前往给客户端,由客户真个打印程序一致处置,看了这个逻辑我们就能够发明:一切的营业划定规矩完整在服务器端运做,而客户端只必要大批的代码就能够完成报表的打印。如许就制止了各类晋级所带来的懊恼,当实践使用中请求增添一种或多种图表的时分,我们所必要做的只是增添大概修正服务器真个营业划定规矩,而客户所要做的只是告知我们要打印这类图表就能够了。
本文彩用了一些复杂的XML数据,仅供树模用,客户真个Demo数据以下:
<?xmlversion="1.0"encoding="utf-8"?>
<RootPrintType="line"Width="450"Height="500"Title="PrintDemo">
<ChildText="1"Value="100"Color="Black">
</Child>
<ChildText="2"Value="60"Color="Orange">
</Child>
<ChildText="3"Value="30"Color="Red">
</Child>
<ChildText="4"Value="40"Color="Gray">
</Child>
<ChildText="5"Value="90"Color="Blue">
</Child>
<ChildText="6"Value="60"Color="Green">
</Child>
</Root>

个中PrintType就是客户端请求的打印范例。
程序完成:
服务器端代码
本体系也一样接纳了AbstractFactory的计划形式,以利于服务器端便利的扩大,此处就不再赘述。
新建一个Web服务项目,增加笼统基类,完成类,剖析类,建成后的界面以下所示:
必要到场对Microsoft.Web.Services定名空间的援用


个中
PrintBase.cs是基类
Parser.cs是剖析类
LinePrint.cs是完成详细图像的类
基类代码:
publicclassPrintBase
{
publicPrintBase()
{
//
//TODO:在此处增加机关函数逻辑
//
}

publicvirtualStreamDrawImage()
{
returnnull;
}
}

剖析类代码:
publicclassParser
{
publicParser()
{
//
//TODO:在此处增加机关函数逻辑
//
}

publicstaticPrintBaseCreateElement(DataSetds)
{
PrintBasepb=null;

stringl_strPrintType=ds.Tables["Root"].Rows[0]["PrintType"].ToString();

switch(l_strPrintType)
{
case"line":
pb=newLinePrint(ds);
break;
default:
pb=newPrintBase();
break;
}
returnpb;
}

}

完成类的代码:
因为此处代码较长,我只贴出部分代码供参考,人人能够依据本人的实践情形举行图形的绘制。
///<summary>
///重载画的划定规矩
///</summary>
///<returns>图像Stream</returns>
publicoverrideStreamDrawImage()
{
_ChartSize=newSizeF(float.Parse(ds.Tables["Root"].Rows[0]["Width"].ToString()),
float.Parse(ds.Tables["Root"].Rows[0]["Height"].ToString()));

Bitmapb=newBitmap((int)_ChartSize.Width,(int)_ChartSize.Height,
PixelFormat.Format32bppArgb);

//初始化
_Graphics=Graphics.FromImage(b);

//以下省略,请自行绘制

//存储前往
MemoryStreams=newMemoryStream();
b.Save(s,ImageFormat.Png);
returns;
}

我团体一向对照喜好用DataSet操纵小型的XML数据,人人请按本人喜欢调剂,此处展现的办法将间接供Web服务类挪用。
Web服务类的代码:
[WebMethod]
publicboolCreateImage(DataSetds)
{
booll_bStatus=true;

try
{
PrintBasepb=null;

pb=Parser.CreateElement(ds);

Streams=pb.DrawImage();

SoapContextsc=HttpSoapContext.ResponseContext;

sc.Attachments.Add(newDimeAttachment("image/png",TypeFormatEnum.MediaType,s));

}
catch
{
l_bStatus=false;
}

returnl_bStatus;
}

至此,我们服务器真个代码就基础完成了,上面我们来看客户端所必要做的事情,我在此处创建了一个WinForm工程来做演示用,实践使用中,则接纳卢彦文章里提到的usercontrol就能够了。
客户端代码:
privatevoidbutto</p>减少客户内IT专业人才缺乏带来的影响。ASP的客户员工利用浏览器进入相关的应用软件,简单易用,无需专业技术支持。
灵魂腐蚀 该用户已被删除
沙发
发表于 2015-1-20 11:07:24 | 只看该作者
先学习用frontpage熟悉html编辑然后学习asp和vbscript建议买书进行系统学习
活着的死人 该用户已被删除
板凳
发表于 2015-1-20 19:21:33 | 只看该作者
从事这个行业,那么你可以学ASP语言,简单快速上手,熟练dreamweav排版,写asp代码,熟练photoshop处理图片,打好基础就行了
冷月葬花魂 该用户已被删除
地板
发表于 2015-1-24 09:52:33 | 只看该作者
Session:这个存储跟客户端会话过程的数据,默认20分钟失效
谁可相欹 该用户已被删除
5#
发表于 2015-1-27 19:55:03 | 只看该作者
尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性,比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。
莫相离 该用户已被删除
6#
发表于 2015-2-5 08:55:19 | 只看该作者
多看多学多思。多看一些关于ASP的书籍,一方面可以扩展知识面一方面可以鉴借别人是如何掌握、运用ASP的;多学善于关注别人,向同学老师多多学习,不论知识的大小;多思则是要将学到的知识灵活运用。
只想知道 该用户已被删除
7#
发表于 2015-2-11 08:19:02 | 只看该作者
尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性,比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。
金色的骷髅 该用户已被删除
8#
发表于 2015-3-2 01:33:14 | 只看该作者
下载一个源代码,然后再下载一个VBScript帮助,在源代码中遇到不认识的函数或是其他什么程序,都可以查帮助进行解决,这样学习效率很高。
不帅 该用户已被删除
9#
发表于 2015-3-11 01:38:26 | 只看该作者
虽然ASP也有很多网络教程。但是这些都不系统。都是半路出家,只是从一个例子告诉你怎么用。不会深入讨论,更不会将没有出现在例子里的方法都一一列举出来。
简单生活 该用户已被删除
10#
发表于 2015-3-17 18:09:25 | 只看该作者
ASP的语言不仅仅只是命令格式差不多,而是包含在<%%>之内的命令完全就是VB语法。虽然ASP也是做为单独的一个技术来提出的,但他就是完全继承了VB所有的功能。
若相依 该用户已被删除
11#
发表于 2015-3-24 17:45:23 | 只看该作者
虽然ASP也有很多网络教程。但是这些都不系统。都是半路出家,只是从一个例子告诉你怎么用。不会深入讨论,更不会将没有出现在例子里的方法都一一列举出来。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2025-1-1 22:40

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表