1. 1 using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Web;
  5. using System.Web.UI;
  6. using System.Web.UI.WebControls;
  7. using System.Data;
  8. using Stimulsoft.Report;
  9. using Stimulsoft.Report.Components;
  10. using Stimulsoft.Report.Print;
  11. using Stimulsoft.Report.Export;
  12. using System.IO;
  13. using System.Net.Mail;
  14. using System.Text;
  15. using System.Net;
  16.  
  17. public class applicationStart
  18. {
  19. public static bool isshowlogo = false;
  20. public static string orderid = "";
  21. public static DataTable dthead;
  22. public static DataTable dtmessage;
  23. }
  24.  
  25. public partial class StimulReport : System.Web.UI.Page
  26. {
  27. double left = , right = , top = , bottom = ;
  28.  
  29. protected void Page_Load(object sender, EventArgs e)
  30. {
  31. if (!Page.IsPostBack)
  32. {
  33. try
  34. {
  35. string aa = Request.QueryString["printno"];
  36. if (aa == null || aa == "")
  37. throw new Exception();
  38. applicationStart.orderid = aa;
  39. }
  40. catch
  41. {
  42. return;
  43. }
  44. try
  45. {
  46. applicationStart.isshowlogo = Convert.ToBoolean(Request.QueryString["isshowlogo"]);
  47.  
  48. }
  49. catch
  50. {
  51. }
  52. GetSource();
  53. }
  54. ShowReport(applicationStart.isshowlogo);
  55. }
  56.  
  57. private void ShowReport(bool isshowlogo)
  58. {
  59. if (applicationStart.isshowlogo)
  60. {
  61. this.Button2.Text = "HideLogo";
  62. }
  63. else
  64. {
  65. this.Button2.Text = "ShowLogo";
  66. }
  67.  
  68. string filepath = Server.MapPath("~/Report_1.mrt");
  69. StiReport stireport = new StiReport();
  70. stireport.Load(filepath);
  71.  
  72. stireport.RegData("datasource", applicationStart.dtmessage);
  73. //设置报表内控件状态
  74. StiFooterBand fb = stireport.Pages[].Components["FooterBand1"] as StiFooterBand;
  75. StiText st = fb.Components["Text47"] as StiText;
  76. st.Enabled = applicationStart.dthead.Rows[]["looksampletype"].ToString() == "" ? false : true;
  77.  
  78. StiPageHeaderBand head = stireport.Pages[].Components["PageHeaderBand1"] as StiPageHeaderBand;
  79. StiImage imglogo1 = head.Components["Image1"] as StiImage;
  80. imglogo1.Enabled = applicationStart.isshowlogo;
  81.  
  82. StiPageFooterBand footer = stireport.Pages[].Components["PageFooterBand1"] as StiPageFooterBand;
  83. StiImage imglogo2 = footer.Components["Image2"] as StiImage;
  84. imglogo2.Enabled = applicationStart.isshowlogo;
  85.  
  86. //设置页边距
  87. stireport.Pages[].Margins = new StiMargins(left, right, top, bottom);
  88.  
  89. stireport.Compile();
  90. //设置报表内的参数值
  91. stireport["code"] = applicationStart.dthead.Rows[]["code"].ToString();
  92. stireport["orderno"] = applicationStart.dthead.Rows[]["orderno"].ToString();
  93. stireport["price"] = applicationStart.dthead.Rows[]["price"].ToString();
  94. stireport["discountprice"] = applicationStart.dthead.Rows[]["discountprice"].ToString();
  95. stireport["tobefinishstr"] = applicationStart.dthead.Rows[]["tobefinishstr"].ToString();
  96. stireport["createdate"] = applicationStart.dthead.Rows[]["createdate"].ToString();
  97. stireport["contact"] = applicationStart.dthead.Rows[]["contact"].ToString();
  98. stireport["companyname"] = applicationStart.dthead.Rows[]["companyname"].ToString();
  99. stireport["tel"] = applicationStart.dthead.Rows[]["tel"].ToString();
  100. stireport["fax"] = applicationStart.dthead.Rows[]["fax"].ToString();
  101. stireport["mobile"] = applicationStart.dthead.Rows[]["mobile"].ToString();
  102. stireport["address"] = applicationStart.dthead.Rows[]["address"].ToString();
  103. stireport["email"] = applicationStart.dthead.Rows[]["email"].ToString();
  104. stireport["deliverytypeenname"] = applicationStart.dthead.Rows[]["deliverytypeenname"].ToString();
  105. stireport["name"] = applicationStart.dthead.Rows[]["name"].ToString();
  106. stireport["customermemo"] = applicationStart.dthead.Rows[]["customermemo"].ToString();
  107. stireport["looksampletypestr"] = applicationStart.dthead.Rows[]["looksampletypestr"].ToString();
  108.  
  109. viewer1.Report = stireport;
  110. }
  111.  
  112. private void GetSource()
  113. {
  114. string headsql = "select orderno, tobefinishdate, so.price,so.discountprice, tobefinishstr,so.deliverydate,createdate ,so.contact,so.companyname,so.tel,so.fax,so.mobile,so.address,so.looksampletype, " +
  115. "so.orderid, so.email,so.code, sales.username as salename ,openso.username as openname ,base_delivery_type.deliverytypeenname,base_delivery_type.shiptypename,user_position.positionname," + "name,so.discountoffflag,so.customermemo from so ,user as sales,user as openso ,base_delivery_type,user_position ,customer,customer_discount " +
  116. "where so.userid=sales.userid and so.opuserid=openso.userid and base_delivery_type.deliverytypeid=so.deliverytypeid " +
  117. "and so.positionid=user_position.positionid and customer.discountid=customer_discount.discountid " +
  118. "and so.customerid=customer.customerid and so.orderid=" + applicationStart.orderid;
  119.  
  120. string messagesql = "SELECT *from (" +
  121. "select jobno,product.productname,enproductname,so_detail.printnum,sampleflag,socontent as jobcontent , printprice , " +
  122. "sodetailid as sortno,so.customermemo as memo " +
  123. "From so_detail ,so,product where so_detail.deleteflag=0 and so.orderid=so_detail.orderid and " +
  124. "product.productid=so_detail.productid and so.orderid= " + applicationStart.orderid +
  125. " union all " +
  126. "select '' as jobno , 'Delivery' as productname ,'Delivery' as enproductname , ' ' as printnum ,' ' as sampleflag , '' as jobcontent ,price ," +
  127. "'1' as sortno ,address as memo from so_delivery where orderid= " + applicationStart.orderid +
  128. " union all " +
  129. "select '' as jobno , 'PostProcess' as productname ,'PostProcess' as enproductname, outsidenum as printnum ,' ' as sampleflag , postprocessname, costamount " +
  130. ", so_detail.sodetailid as sortno ,concat(memo,memostr) as memo From so_detail_outside,so ,so_detail where so.orderid=so_detail.orderid and so_detail.deleteflag=0 " +
  131. "and so_detail.sodetailid=so_detail_outside.sodetailid and so.orderid= " + applicationStart.orderid +
  132. " union all " +
  133. "select '' as jobno , 'OtherItem' as productname ,'OtherItem' as enproductname , ' ' as printnum ,' ' as sampleflag , pricenamecn, so_detail_price.price " +
  134. ", so_detail.sodetailid as sortno ,'' as memo From so_detail_price,so ,so_detail where so.orderid=so_detail.orderid and so_detail.deleteflag=0 " +
  135. "and so_detail.sodetailid=so_detail_price.sodetailid and so.orderid= " + applicationStart.orderid +
  136. " union all " +
  137. "select '' as jobno , offername as productname ," +
  138. "'Discountinfo' as enproductname , ' ' as printnum ,' ' as sampleflag , offer_so_history.offermemo as discountmemo, -offer_so_history.discountprice as price , " +
  139. "'0' as sortno , offer_so_history.offername as memo From offer_so_history,so where so.orderid=offer_so_history.orderid and so.deleteflag=0 " +
  140. "and so.orderid=" + applicationStart.orderid + " ) as itemlist order by sortno desc";
  141. DataModule dm = DataModule.GetDataModule();
  142. applicationStart.dthead = dm.QuerySql(headsql);
  143. applicationStart.dtmessage = dm.QuerySql(messagesql);
  144. DataTable dt = applicationStart.dtmessage;
  145.  
  146. applicationStart.dthead.Columns.Add(new DataColumn("looksampletypestr", typeof(string)));
  147. applicationStart.dthead.Columns.Add(new DataColumn("isshowdiscountprice", typeof(string)));
  148. if (applicationStart.dthead.Rows.Count > )
  149. {
  150. if (applicationStart.dthead.Rows[][].ToString() == applicationStart.dthead.Rows[][].ToString())
  151. {
  152. applicationStart.dthead.Rows[]["isshowdiscountprice"] = ;//false
  153. }
  154. else
  155. {
  156. applicationStart.dthead.Rows[]["isshowdiscountprice"] = ;//true
  157. }
  158. }
  159.  
  160. foreach (DataRow dr in applicationStart.dthead.Rows)
  161. {
  162. if (dr["looksampletype"].ToString() == "")
  163. {
  164. dr["looksampletypestr"] = "不打稿";
  165. }
  166. else if (dr["looksampletype"].ToString() == "")
  167. {
  168. dr["looksampletypestr"] = "打稿";
  169. }
  170. else
  171. {
  172. dr["looksampletypestr"] = "";
  173. }
  174. }
  175. }
  176.  
  177. protected void Button1_Click(object sender, EventArgs e)
  178. {
  179. SendEmail(this.DropDownList1.SelectedValue, this.viewer1.Report, "aaa@163.com", this.TextBox1.Text, "Report[" + this.DropDownList1.SelectedValue + "]" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), "", "smtp.163.com", , "aaa@163.com", "");
  180. }
  181.  
  182. private void GetFormat(string filetype, ref StiExportFormat sf, ref string filename)
  183. {
  184. switch (filetype)
  185. {
  186. case "pdf": sf = StiExportFormat.Pdf; filename = "report.pdf"; break;
  187. case "jpeg": sf = StiExportFormat.ImageJpeg; filename = "report.jpeg"; break;
  188. case "gif": sf = StiExportFormat.ImageGif; filename = "report.gif"; break;
  189. case "excel": sf = StiExportFormat.Excel; filename = "report.xls"; break;
  190. case "word2007": sf = StiExportFormat.Word2007; filename = "report.docx"; break;
  191. }
  192. }
  193.  
  194. public void SendEmail(string filetype, StiReport report, string fromaddress, string toaddress, string subject, string messageBody, string host, int port, string username, string password)
  195. {
  196. using (MemoryStream ms = new MemoryStream())
  197. {
  198. string filename = "";
  199. StiExportFormat sef = StiExportFormat.Pdf;
  200. GetFormat(filetype, ref sef, ref filename);
  201. report.ExportDocument(sef, ms);
  202. ms.Seek(, SeekOrigin.Begin);
  203.  
  204. //使用自己的邮件发送机制
  205. System.Net.Mail.Attachment attachment = new System.Net.Mail.Attachment(ms, filename);
  206.  
  207. MailMessage item = new MailMessage(fromaddress, toaddress);
  208. item.Subject = subject;
  209. item.Body = messageBody;
  210. item.Attachments.Add(attachment);
  211.  
  212. SmtpClient smtp = new SmtpClient(host, port);
  213. smtp.UseDefaultCredentials = false;
  214. smtp.Credentials = new System.Net.NetworkCredential(username, password);
  215. smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
  216. smtp.Send(item);
  217. ms.Close();
  218. }
  219. ClientScript.RegisterStartupScript(GetType(), "", "<script>showmessage();</script>");
  220. }
  221. protected void Button2_Click(object sender, EventArgs e)
  222. {
  223. applicationStart.isshowlogo = !applicationStart.isshowlogo;
  224. ShowReport(applicationStart.isshowlogo);
  225. }
  226. }
  1. <%@ Page Language="C#" AutoEventWireup="true" CodeFile="StimulReport.aspx.cs" Inherits="StimulReport" %>
  2.  
  3. <%@ Register Assembly="Stimulsoft.Report.Web, Version=2013.3.1800.0, Culture=neutral, PublicKeyToken=ebe6666cba19647a"
  4. Namespace="Stimulsoft.Report.Web" TagPrefix="cc1" %>
  5. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  6. <html xmlns="http://www.w3.org/1999/xhtml">
  7. <head runat="server">
  8. <title></title>
  9. <style type="text/css">
  10. .style1
  11. {
  12. width: 498px;
  13. }
  14. </style>
  15. <script language="javascript" type="text/javascript">
  16. function showmessage() {
  17. document.getElementById("divmessage").style.display = "block";
  18. setTimeout("document.getElementById('divmessage').style.display ='none';", 2000);
  19. }
  20. </script>
  21. </head>
  22. <body>
  23. <form id="form1" runat="server">
  24. <table style="width: 100%">
  25. <tr>
  26. <td class="style1">
  27. <asp:Button ID="Button2" runat="server" onclick="Button2_Click"
  28. Text="ShowLogo" />
  29. Email:<asp:TextBox ID="TextBox1" runat="server">huang_198906@163.com</asp:TextBox>
  30. <asp:DropDownList ID="DropDownList1" runat="server">
  31. <asp:ListItem Selected="True">pdf</asp:ListItem>
  32. <asp:ListItem>jpeg</asp:ListItem>
  33. <asp:ListItem>gif</asp:ListItem>
  34. <asp:ListItem>excel</asp:ListItem>
  35. <asp:ListItem>word2007</asp:ListItem>
  36. </asp:DropDownList>
  37. <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Send Email" />
  38. </td>
  39. <td>
  40. <div id="divmessage" style="width: 69px; background-color: #BDB8FA; display: none">
  41. 發送成功
  42. </div>
  43. </td>
  44. </tr>
  45. </table>
  46. <cc1:StiWebViewer ID="viewer1" runat="server" ShowBookmarksButton="False" ShowParametersButton="False" />
  47. <cc1:StiWebReport ID="report1" runat="server" />
  48. </form>
  49. </body>
  50. </html>

Stimulsoft.Report.net报表简单实用的更多相关文章

  1. stimulsoft report工具—— 简单的多表连接打印报表例子

    一.用报表工具打印多个表格信息(包括学生表.教师表.班级表) 1.准备打印的数据(用sqlserver) 1)班级表

  2. stimulsoft Report报表使用笔记

    1.使用设计器设计mrt报表模板,或者从其他文件复制修改 2.删除business object 数据源 3.使用代码添加数据源 ParcelChangeItem change = new Parce ...

  3. Stimulsoft.Report.web viewer控件添加按钮

    当你购买了带源码的时候,你可以对源码进行修改以达到自己想要的效果,比较这里讲到的,向viewer控件工具栏添加按钮. 通过源码目录可以看出我们需要修改的有两部分代码 红色方块圈中的部分,[StiWeb ...

  4. Visual Studio 2010 RDLC 报表简单使用

    原文:Visual Studio 2010 RDLC 报表简单使用 RDLC(Report Definition Language Client-side Processing)是Visual Stu ...

  5. jQuery + Stimulsoft.Report 选择gridview多行打印

    jQuery + Stimulsoft.Report 报表空间打印多个ID split函数,多行ID 1. 获取选择多行ID(前台) //按钮-打印 function PrinterWorkQuali ...

  6. jQuery的几种简单实用效果

    许久未分享博客,或许已生疏. 闲来无事, 分享几个jQuery简单实用的效果案例 不喜勿喷... 1.页面常用的返回顶部 <!DOCTYPE html> <html lang=&qu ...

  7. PowerDesigner导出Report通用报表

    PowerDesigner导出Report通用报表 通用模板下载地址:http://pan.baidu.com/s/1c0NDphm

  8. 经验分享:10个简单实用的 jQuery 代码片段

    尽管各种 JavaScirpt 框架和库层出不穷,jQuery 仍然是 Web 前端开发中最常用的工具库.今天,向大家分享我觉得在网站开发中10个简单实用的 jQuery 代码片段. 您可能感兴趣的相 ...

  9. 简单实用的PHP防注入类实例

    这篇文章主要介绍了简单实用的PHP防注入类实例,以两个简单的防注入类为例介绍了PHP防注入的原理与技巧,对网站安全建设来说非常具有实用价值,需要的朋友可以参考下   本文实例讲述了简单实用的PHP防注 ...

随机推荐

  1. cocos2d-x-2.2的SimpleAudioEngine::sharedEngine()-&gt;playEffect()计划中断bug

    在该计划已经正常,但现在突然发iphone播放声音上就挂了.播放音乐是没有问题的. android没问题. xcode给定的位置,如下面的附图: 网上搜了一下,说是有全局断点造成的.于是command ...

  2. 获取调用者Class和method、反射获取get方法、获取注解信息

    调用者Class 及 method StackTraceElement stacks[] = Thread.currentThread().getStackTrace(); for (StackTra ...

  3. 网络资源(10) - Eclipse开发项目

    2014_08_26 http://www.360doc.com/content/13/0403/14/11843499_275730704.shtml Eclipse 下搭建struts2开发环境

  4. POJ 3013 Big Christmas Tree(最短Dijkstra+优先级队列优化,SPFA)

    POJ 3013 Big Christmas Tree(最短路Dijkstra+优先队列优化,SPFA) ACM 题目地址:POJ 3013 题意:  圣诞树是由n个节点和e个边构成的,点编号1-n. ...

  5. React.js终探(六)

    在React中,我们怎么样使用它跟CSS 3 动画结合在一起使用呢? CSS3 Transitoin CSS3动画要求DOM属性变化的时候才能够被触发.所以这就需要我们把属性变化后的React元素渲染 ...

  6. sql server 更新表,每天的数据分固定批次设置批次号sql

    按表中的字段 UpdateTime 按每天进行编号,每天的编号都从1开始编号,并附带表的主键 cid,把数据存入临时表中 WITH temp AS (SELECT cid,updatetime, RO ...

  7. css+html简单的布局demo

    于html介绍css作风.可以改变html块状布局,局更加美观.接下来看一个基础布局的小样例: <html> <head> <meta http-equiv=" ...

  8. Net平台下的消息队列介绍

    Net平台下的消息队列介绍   本系列主要记录最近学习消息队列的一些心得体会,打算形成一个系列文档.开篇主要介绍一下.Net平台下一些主流的消息队列框架.       RabbitMQ:http:// ...

  9. Ubuntu下的用户和权限(二)

    五.chown.chgrp命令 从名字就能够猜測他们是干嘛的,可是这两个命令须要root权限. chown命令的格式为:chown user:group file  中间的user : group三项 ...

  10. [Unity3D]Unity3D游戏开发Android内嵌视图Unity查看

    ---------------------------------------------------------------------------------------------------- ...