Stimulsoft.Report.net报表简单实用
发布日期:2021-05-09 00:53:32 浏览次数:20 分类:博客文章

本文共 12278 字,大约阅读时间需要 40 分钟。

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 = 0, right = 0, top = 0, bottom = 20; 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[0].Components["FooterBand1"] as StiFooterBand; 75         StiText st = fb.Components["Text47"] as StiText; 76         st.Enabled = applicationStart.dthead.Rows[0]["looksampletype"].ToString() == "0" ? false : true; 77  78         StiPageHeaderBand head = stireport.Pages[0].Components["PageHeaderBand1"] as StiPageHeaderBand; 79         StiImage imglogo1 = head.Components["Image1"] as StiImage; 80         imglogo1.Enabled = applicationStart.isshowlogo; 81  82         StiPageFooterBand footer = stireport.Pages[0].Components["PageFooterBand1"] as StiPageFooterBand; 83         StiImage imglogo2 = footer.Components["Image2"] as StiImage; 84         imglogo2.Enabled = applicationStart.isshowlogo; 85  86         //设置页边距 87         stireport.Pages[0].Margins = new StiMargins(left, right, top, bottom); 88  89         stireport.Compile(); 90         //设置报表内的参数值 91         stireport["code"] = applicationStart.dthead.Rows[0]["code"].ToString(); 92         stireport["orderno"] = applicationStart.dthead.Rows[0]["orderno"].ToString(); 93         stireport["price"] = applicationStart.dthead.Rows[0]["price"].ToString(); 94         stireport["discountprice"] = applicationStart.dthead.Rows[0]["discountprice"].ToString(); 95         stireport["tobefinishstr"] = applicationStart.dthead.Rows[0]["tobefinishstr"].ToString(); 96         stireport["createdate"] = applicationStart.dthead.Rows[0]["createdate"].ToString(); 97         stireport["contact"] = applicationStart.dthead.Rows[0]["contact"].ToString(); 98         stireport["companyname"] = applicationStart.dthead.Rows[0]["companyname"].ToString(); 99         stireport["tel"] = applicationStart.dthead.Rows[0]["tel"].ToString();100         stireport["fax"] = applicationStart.dthead.Rows[0]["fax"].ToString();101         stireport["mobile"] = applicationStart.dthead.Rows[0]["mobile"].ToString();102         stireport["address"] = applicationStart.dthead.Rows[0]["address"].ToString();103         stireport["email"] = applicationStart.dthead.Rows[0]["email"].ToString();104         stireport["deliverytypeenname"] = applicationStart.dthead.Rows[0]["deliverytypeenname"].ToString();105         stireport["name"] = applicationStart.dthead.Rows[0]["name"].ToString();106         stireport["customermemo"] = applicationStart.dthead.Rows[0]["customermemo"].ToString();107         stireport["looksampletypestr"] = applicationStart.dthead.Rows[0]["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 > 0)149         {150             if (applicationStart.dthead.Rows[0][2].ToString() == applicationStart.dthead.Rows[0][3].ToString())151             {152                 applicationStart.dthead.Rows[0]["isshowdiscountprice"] = 0;//false153             }154             else155             {156                 applicationStart.dthead.Rows[0]["isshowdiscountprice"] = 1;//true157             }158         }159 160         foreach (DataRow dr in applicationStart.dthead.Rows)161         {162             if (dr["looksampletype"].ToString() == "0")163             {164                 dr["looksampletypestr"] = "不打稿";165             }166             else if (dr["looksampletype"].ToString() == "1")167             {168                 dr["looksampletypestr"] = "打稿";169             }170             else171             {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", 25, "aaa@163.com", "123456");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(0, 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(), "", "");220     }221     protected void Button2_Click(object sender, EventArgs e)222     {223         applicationStart.isshowlogo = !applicationStart.isshowlogo;224         ShowReport(applicationStart.isshowlogo);225     }226 }
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="StimulReport.aspx.cs" Inherits="StimulReport" %><%@ Register Assembly="Stimulsoft.Report.Web, Version=2013.3.1800.0, Culture=neutral, PublicKeyToken=ebe6666cba19647a"    Namespace="Stimulsoft.Report.Web" TagPrefix="cc1" %>                 
Email:
huang_198906@163.com
pdf
jpeg
gif
excel
word2007

 

上一篇:asp.net打印网页后自动关闭网页【无需插件】
下一篇:RDLC(Reportview)报表直接打印,支持所有浏览器,客户可在linux下浏览使用

发表评论

最新留言

感谢大佬
[***.8.128.20]2025年05月08日 06时29分42秒