zoukankan      html  css  js  c++  java
  • 微软报表

    using Microsoft.Reporting.WinForms;

    1 创建报表文件TagsReport.rdlc

    2 从工具箱拖一个table放在报表上,会自动配置数据源,建立dataset,可以选数据库,连接表,也可以选程序里的对象如ControlEase.AI.DataRecord.Record

    报表左侧的工具箱data source中就有了dataset,可以将每个字段拖到报表的表格中,也可以在报表的表格中智能感知添加列,此处的dataset的名字很重要,代码控制导出到excel时,名字不对就出错

    3 选择报表单元格设置前景背景颜色,在弹出的配色窗口中选择公式,在其中填入“=Iif(RowNumber(Nothing) Mod 2, "PaleGreen", "White")  "设置行颜色交替变化

    4 代码控制输出excel

    public void Export(IEnumerable<Tuple<string, object, DateTime, int>> tagValues, string path)
            {
                //Guard.ArgumentNotNull(values, "values")
                //     .ArgumentStringNull(Filename, "Filename")
                //     .ArgumentNotNull(Culture, "Culture");

                IList<AI.DataRecord.Record> recordList = new List<AI.DataRecord.Record>();
                foreach (var tupl in tagValues)
                {
                    recordList.Add( AI.DataRecord.Record.FromTuple(tupl));
                }
                var values = recordList.GetEnumerator();
                string temp = GetTempFile();
                FileInfo fileInfo = new FileInfo(temp);        
                try
                {          
                    List<ReportParameter> parameters = new List<ReportParameter>(); 
                    parameters.Add(new ReportParameter("Name", "Name"));        
                    parameters.Add(new ReportParameter("Date", "Date"));
                    LocalReport report = new LocalReport();
                    report.ReportEmbeddedResource = "ControlEase.Inspec.HistoryDataRecord.Presentation.TagsReport.rdlc";
                    report.SetParameters(parameters);
                    Warning[] warnings;
                    string[] streamids;
                    string mimeType;
                    string encoding;
                    string extension;
                    report.DataSources.Add(new ReportDataSource("TagsReport", values));

    //bool ok = report.IsReadyForRendering;//true 才能Render
                    byte[] bytes = report.Render("EXCEL", null, out mimeType, out encoding, out extension,
                     out streamids, out warnings);

                    using (FileStream stream = new FileStream(temp, FileMode.CreateNew))
                    {
                        try
                        {

                            stream.Write(bytes, 0, bytes.Length);
                            stream.Close();
                        }
                        catch (Exception e)
                        {
                            e.ToString();
                        }
                    }

                    File.Copy(temp, path, true);
                }
                catch (Exception e)
                {
                    //throw e;
                }
                finally
                {
                    //if ( excel != null )
                    //    excel.Dispose ( );
                }
            }
            /// <summary>
            /// Get temp excel file name
            /// </summary>
            /// <returns></returns>
            static string GetTempFile()
            {
                string file = Path.GetRandomFileName();
                file = Path.ChangeExtension(file, ".csv");
                return Path.Combine(Path.GetTempPath(), file);
            }

    冻结表头

    在报表设计界面--table边框上鼠标右键--Tablix property---弹出新窗口设置----rows header :keep rows header visible while scrolling

  • 相关阅读:
    pytorch-第一章基本操作-基本使用方法 (1.torch.empty, 2.torch.rand, 3.torch.zeros, 4.torch.tensor, 5.x.new_ones,6.torch.rand_like, 7.torch.randn, 8.torch.from_numpy, 9.x.view(改变维度))
    mysql学习入门-数据库中库,表和内容操作
    校园客户端(DR)启动后提示我们缺失packet.dll,无法正常启动(7)
    DR客户端一直连接服务器....(6)
    优盘提示插入多卷集的最后一卷解决办法(5)
    apt-get默认下载路径
    Qt嵌入式开发环境搭建
    Ubuntu重启关机命令使用
    Linux如何修改网络环境参数
    VMware内部错误解决办法
  • 原文地址:https://www.cnblogs.com/baiyu/p/2131940.html
Copyright © 2011-2022 走看看