前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Stimulsoft.Report.net报表简单实用

Stimulsoft.Report.net报表简单实用

作者头像
冰封一夏
发布2019-09-11 15:28:30
9330
发布2019-09-11 15:28:30
举报
文章被收录于专栏:c#Winform自定义控件系列
代码语言:javascript
复制

  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;//false
153             }
154             else
155             {
156                 applicationStart.dthead.Rows[0]["isshowdiscountprice"] = 1;//true
157             }
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             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", 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(), "", "<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 }
代码语言:javascript
复制
<%@ 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" %>
<!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>
    <style type="text/css">
        .style1
        {
            width: 498px;
        }
    </style>
    <script language="javascript" type="text/javascript">
        function showmessage() {
            document.getElementById("divmessage").style.display = "block";
            setTimeout("document.getElementById('divmessage').style.display ='none';", 2000);
        }       
    </script>
</head> 
<body>
    <form id="form1" runat="server">
    <table style="width: 100%">
        <tr>
            <td class="style1">
                <asp:Button ID="Button2" runat="server" onclick="Button2_Click" 
                    Text="ShowLogo" />
                Email:<asp:TextBox ID="TextBox1" runat="server">huang_198906@163.com</asp:TextBox>
                <asp:DropDownList ID="DropDownList1" runat="server">
                    <asp:ListItem Selected="True">pdf</asp:ListItem>
                    <asp:ListItem>jpeg</asp:ListItem>
                    <asp:ListItem>gif</asp:ListItem>
                    <asp:ListItem>excel</asp:ListItem>
                    <asp:ListItem>word2007</asp:ListItem>
                </asp:DropDownList>
                <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Send Email" />
            </td>
            <td>
                <div id="divmessage" style="width: 69px; background-color: #BDB8FA; display: none">
                    發送成功
                </div>
            </td>
        </tr>
    </table>
    <cc1:StiWebViewer ID="viewer1" runat="server" ShowBookmarksButton="False" ShowParametersButton="False" />
    <cc1:StiWebReport ID="report1" runat="server" />
    </form>
</body>
</html>
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2014-02-25 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
腾讯云 BI
腾讯云 BI(Business Intelligence,BI)提供从数据源接入、数据建模到数据可视化分析全流程的BI能力,帮助经营者快速获取决策数据依据。系统采用敏捷自助式设计,使用者仅需通过简单拖拽即可完成原本复杂的报表开发过程,并支持报表的分享、推送等企业协作场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档