精华内容
下载资源
问答
  • winform 动态报表
    2021-08-08 14:51:25
    更多相关内容
  • winform报表打印

    2018-08-06 10:37:01
    winfrom 的报表打印技巧,打印条形码,PrintGoodsInBill
  • 本课程详细讲解在C#Winform程序里,对DataGridView展示的数据进行自定义报表格式的设计、预览、打印如何实现
  • 以实例讲解C#Winform水晶报表的基本设置,格式化,排序与分组,常用应用,子报表的使用,以推模式使用ADO.NET数据集
  • C# WinForm RDLC报表打印

    2017-09-01 14:45:08
    C# WinForm RDLC报表打印,不用自带打印方式,解决空白页和字体大小问题,博客中也有写RDLC客户端注意事项,
  • winform水晶报表

    2016-05-11 20:28:57
    这里有10个左右的报表实例。有源码+数据库。提示:做报表要用到一个插件,这个插件本人也有上传,上传的文件名是:水晶报表报表插件)。有需要的也可以对文件名搜索下载。
  • 以实例讲解C#Winform自带的RDLC报表的基本设置,格式化,排序与分组,常用报表控件的使用,子报表、主从报表、钻取报表的设计方法等
  • 非常详细的水晶报表使用教程(作者亲测),包涵数据库
  • winform报表打印完整详细实例.rar
  • CRforVS_redist_install_32bit_13_0 32位系统使用,win7\xp\win10
  • c# winform实例 锐浪报表动态传值创建明细表格 demo 注意需要安装锐浪报表客户端 注意引用grdes6.dll
  • 窗体打印报表文件 步奏: 1.添加 DataSet,在 DataSet 里面创建要打印的数据表 2.创建 Report1.rdlc 文件,将上一步创建的 DataSet 关联进来。 3.根据自己的需求设计报表文件,可以设置传入参数。 4.在窗体上添加 ...
  • winform报表打印.rar

    2019-08-06 13:00:15
    winform报表打印.rar
  • WinForm程序RDLC报表

    2022-05-18 16:49:57
    事例展示c#RDLC报表动态加载数据库数据到模板页面展示打印pdf格式等,格式自定义模板图,动态定义模板格式,自带控件拖动字样
  • WinForm报表组件 源码描述: 一、源码介绍 1、EzReportBuild 2.0报表组件,可以完成报表设计、预览、打印等功能,提供接口函数,可以将设计、预览等嵌入到自定的winform中调用,使用简单,调用灵活。2.0版本添加了...
  • winform报表打印

    2015-06-21 15:41:10
    winfrom 报表打印,自带的reprotview ,动态打印datatable 和传值分页
  • winform报表打印.rar

    2019-09-21 14:25:59
    winform报表打印源代码,适合新手学习,包括大部分报表打印,(20print、allprint/database/designingoodsbill/pagesprint等三十多个)并包括打印条形码等源代码分享
  • vs2015安装rdlc报表模块 控制面板-Microsoft Visual Studio…2005-更改-修改-勾选{Microsoft SQL Server Data Tools},安装即可 private void FrmWholeCarReceipts_Load(object sender, EventArgs e) { try ...

        vs2015安装rdlc报表模块
      控制面板-Microsoft Visual Studio …2005-更改-修改-勾选{Microsoft SQL Server Data Tools},安装即可

    private void FrmWholeCarReceipts_Load(object sender, EventArgs e)
            {
                try
                {
           //  指定rdlc文件
    this.reportViewer1.LocalReport.ReportEmbeddedResource = "AloneSell.Report.OrderRefund.rdlc";
                }
                catch (Exception ex)
                {
                    Utility.Pub.ShowError("报表加载失败," + ex.Message);
                    return;
                }
                this.reportViewer1.LocalReport.DataSources.Clear();

                BLL.T_X_BackCarM_BLL bllBack = new BLL.T_X_BackCarM_BLL();
                DataTable dt = bllBack.GetList("BackID='" + BackID + "'").Tables[0];
                if (dt.Rows.Count <= 0) return;
                try
                {
                    Model.T_X_BackCarM_Model m = bllBack.DataTableToList(dt)[0];
                    BLL.T_X_BeSpeakeCar_BLL bllBS = new BLL.T_X_BeSpeakeCar_BLL();
                    Model.T_X_BeSpeakeCar_Model mBS = bllBS.GetModel(BackID);
                    if (mBS == null)
                    {
                        Utility.Pub.ShowInfo("订单不存在");
                        return;
                    }
                    string Value1 = mBS.GuestName + "           支付 整车收款 ";
                    string Value2 = new Money(m.BackMoney, false).ToString() + "(" + m.BackMoney.ToString("f1") + ")";

                  //添加报表数据源
      this.reportViewer1.LocalReport.DataSources.Add(new Microsoft.Reporting.WinForms.ReportDataSource("T_X_BackCarM", dt));

                   //参数设置
    List<ReportParameter> parameterList = new List<ReportParameter>();
                    parameterList.Add(new ReportParameter("Company", Utility.Pub.Company));
                    parameterList.Add(new ReportParameter("Value1", Value1));
                    parameterList.Add(new ReportParameter("Value2", Value2));
                    this.reportViewer1.LocalReport.SetParameters(parameterList);

                    this.reportViewer1.RefreshReport();
                    //设置打印布局模式,显示物理页面大小
                    this.reportViewer1.SetDisplayMode(Microsoft.Reporting.WinForms.DisplayMode.PrintLayout);
                    //缩放模式为百分比,以100%方式显示
                    this.reportViewer1.ZoomMode = Microsoft.Reporting.WinForms.ZoomMode.Percent;
                    this.reportViewer1.ZoomPercent = 100;

                    string _AutoPrint = ConfigFileManage.GetAppKeyValue("ShowPrint");
                    if (_AutoPrint.Trim() == "否")
                    {
                        this.Visible = false;
                        PPrint();
                        this.Close();
                    }
                }
                catch (Exception ex)
                {
                    Utility.Pub.ShowError("操作失败," + ex.Message);
                    return;
                }
            }

            #region 报表自打印
            private string _reportname = Application.StartupPath + "\\rptOperation.rdlc";//rptBase.rdlc
            private DataSet _datasource = null;
            private string _autoprint = "";
            private IList<Stream> m_streams;
            private int m_currentPageIndex;
            public void PPrint()
            {

                try
                {

                    LocalReport report = this.reportViewer1.LocalReport;
                    Export(report);

                    m_currentPageIndex = 0;

                    NBPrint();

                    if (m_streams != null)
                    {

                        foreach (Stream stream in m_streams)

                            stream.Close();

                        m_streams = null;

                    }

                }

                catch (Exception ex)
                {
                    MessageBox.Show("在打印过程中出现异常! " + ex.Message.ToString());
                }

            }

            private void Export(LocalReport report)
            {

                //7.5in 3.66in 0 0 0 0 当前设置为A4纵向 

                string deviceInfo =

                  "<DeviceInfo>" +

                  "  <OutputFormat>EMF</OutputFormat>" +

                  "  <PageWidth>20.7cm</PageWidth>" +

                  "  <PageHeight>28cm</PageHeight>" +

                  "  <MarginTop>0in</MarginTop>" +

                  "  <MarginLeft>0in</MarginLeft>" +

                  "  <MarginRight>0in</MarginRight>" +

                  "  <MarginBottom>0in</MarginBottom>" +

                  "</DeviceInfo>";

                Warning[] warnings;

                m_streams = new List<Stream>();

                report.Render("Image", deviceInfo, CreateStream, out warnings);

                foreach (Stream stream in m_streams)
                {

                    stream.Position = 0;

                }

            }

            private void NBPrint()
            {

                if (m_streams == null || m_streams.Count == 0)

                    return;
                System.Drawing.Printing.PrintDocument printDoc = new System.Drawing.Printing.PrintDocument();

                if (!printDoc.PrinterSettings.IsValid)
                {

                    string msg = String.Format("Can't find printer \"{0}\".", "默认打印机!");

                    MessageBox.Show(msg, "找不到默认打印机");

                    return;

                }

                printDoc.PrintPage += new PrintPageEventHandler(PrintPage);

                printDoc.Print();

                this.Close();

            }

            private Stream CreateStream(string name, string fileNameExtension, Encoding encoding, string mimeType, bool willSeek)
            {

                string filenameext = DateTime.Now.Year.ToString() + DateTime.Now.Day.ToString() + DateTime.Now.Month.ToString() + DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString() + DateTime.Now.Second.ToString();

                Stream stream = new FileStream(name + "." + fileNameExtension, FileMode.Create);

                m_streams.Add(stream);

                return stream;

            }

            private void PrintPage(object sender, PrintPageEventArgs ev)
            {

                Metafile pageImage = new Metafile(m_streams[m_currentPageIndex]);

                ev.Graphics.DrawImage(pageImage, ev.PageBounds);

                m_currentPageIndex++;

                ev.HasMorePages = (m_currentPageIndex < m_streams.Count);

            }

            #endregion

    展开全文
  • Winform制作报表

    2013-10-10 20:00:02
    Winform制作简单的报表案例,窗体程序制作简单报表,扇形图、条状图、圆柱图、饼状图。本案例是饼状图。
  • 主要介绍了C#在Winform开发中使用Grid++报表,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • Winform报表RDLC的设计与实现

    万次阅读 2017-12-11 17:32:09
    今天就来记录一下在winform中设计实现RDLC报表的方法和步骤。通常在报表制作中主要涉及到如两个大元素:报表格式设计,报表数据源绑定。 1.首先创建一个窗体Form,然后添加一个报表浏览器ReportViewer,该报表...

    在日常工作中经常会看到一些表格,如成绩单,绩效考核单等等,这些表格设计起来并不复杂。今天就来记录一下在winform中设计实现RDLC报表的方法和步骤。通常在报表制作中主要涉及到如两个大元素:报表格式设计,报表数据源绑定。
    1.首先创建一个窗体Form,然后添加一个报表浏览器ReportViewer,该报表浏览器可直接从工具箱中拖拽。如下图所示:
    这里写图片描述

    2.在新创建的Form窗体同一目录下添加报表,右键–>添加–>新建项,弹出一个“添加新项”窗口,选择Reporting菜单项,然后选择报表,如下图所示:

    这里写图片描述

    3.报表添加完成后,双击打开报表Report1.rdlc,如下图所示。点击左侧工具箱可以根据需要添加表格,文本框等,设计报表样式。

    这里写图片描述

    4.报表设计好后,需要创建报表所需数据集,同样右键–>添加–>新建项,弹出一个“添加新项”窗口。但这次选择的是Reporting菜单项上方的“数据”菜单项。然后选择数据集,输入数据集名字,点击确定,完成数据集创建。如下如所示:

    这里写图片描述

    5.双击打开新创建的数据集DataSet,空白处右键添加数据表,或者从工具箱中拖拽。

    这里写图片描述
    选中数据表,右键添加数据列,并输入数据列的名字
    这里写图片描述

    6.重新打开报表Report1.rdlc。在设计好的报表中,点击报表中单元格右上角的数据库图标,添加刚刚创建的数据集到报表中。
    这里写图片描述

    在表格设计中可能会涉及到根据类别分组,如下图所示表格样式,行根据类别分组
    这里写图片描述

    分组方法:选中机型名称列单元格,右键选择“添加组”–>”行组”–>”父组”,打开Tablix组界面。
    这里写图片描述

    添加完成后,如下图所示
    这里写图片描述

    列的分组与行分组类似。
    7.有些报表可能需要添加报表参数,根据程序动态改变。
    报表数据中,选择“参数”,右键选择“添加参数”,如下图所示
    这里写图片描述
    设置参数名称
    这里写图片描述
    参数设置完成后,工具箱中拖拽一个文本框到报表中,设置文本框名。
    这里写图片描述
    然后,右键文本框,选择“文本框”属性,打开文本框属性窗口,设置参数名称和参数值。注意,参数名字必须和文本框名字一致!
    这里写图片描述
    报表设计完成之后,就需要在代码中给报表数据集和参数填充数据源。
    8.填充数据源
    在给报表填充数据源时,我习惯于写一个通用方法。如下是主要代码片段

      /// <summary>
            /// 生成图表
            /// </summary>
            /// <param name="ds_results">数据源</param>
            /// <param name="rp">报表参数</param>
            private void generateChart( DataSet ds_source, ReportParameter[] rp)
            {
                try
                {
                    if (ds_results.Tables.Count > 0)
                    {
                            //重置报表
                            this.reportViewer1.Reset();
                            this.reportViewer1.LocalReport.ReportEmbeddedResource = "Report1.rdlc";
    
                            //指定报表参数
                            for (int i = 0; i < rp.Length; i++)
                            {
                                this.reportViewer1.LocalReport.SetParameters(new ReportParameter[] { rp[i] });//与报表有关问题
                            }
    
                        //报表数据源
                        ReportDataSource rds1 = new ReportDataSource("DataSet1", ds_results.Tables["DataSet1"]);//注意此处数据集名字“DataSet1”必须要和添加的数据集名字相同,否则无法绑定数据源至报表数据集
                        ReportDataSource rds2= new ReportDataSource("DataSet2", ds_results.Tables["DataSet2"]);                 
    
                        reportViewer1.LocalReport.DataSources.Clear();
                        reportViewer1.LocalReport.DataSources.Add(rds1 );
                        reportViewer1.LocalReport.DataSources.Add(rds2 );                   
    
                        reportViewer1.RefreshReport();
    
                    }
                    else
                    {
                        MessageBox.Show("没有数据!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
    
                         //报表数据源
                        ReportDataSource rds1 = new ReportDataSource("DataSet1", ds_results.Tables["DataSet1"]);
                        ReportDataSource rds2= new ReportDataSource("DataSet2", ds_results.Tables["DataSet2"]);                 
    
                        reportViewer1.LocalReport.DataSources.Clear();
                        reportViewer1.LocalReport.DataSources.Add(rds1 );
                        reportViewer1.LocalReport.DataSources.Add(rds2 );                   
    
                        reportViewer1.RefreshReport();
                    }
                }
                catch (Exception ex)
                {
    
                }
            }
    
    //以下为主方法内代码:
                 #region 绑定报表参数
                    string p1 = "参数1";
                    string p2="参数2";
    
                    ReportParameter[] rp = new ReportParameter[2];//
                    string[] rptName = new string[2] { "START_END_TIME", "参数名2" };//这里要注意,报表参数和文本框的名字必须一致
                    object[] rptValue = new object[] { p1, p2};
                    for (int i = 0; i < rp.Length; i++)
                    {
                        rp[i] = new ReportParameter(rptName[i], rptValue[i].ToString());
                    }
    
                    #endregion
    
    //绑定报表参数后,准备数据集数据源DataSet,然后调用上面通用方法
    generateChart(ds_source,rp);

    以上,即为报表设计和为报表填充数据的主要步骤。

    展开全文
  • Winform中集成FastReport报表工具实现编辑报表和打印的功能 应用场景: 公司的产品在打包后,要在每包产品上面贴标签,标识物品的各种属性,且仓库接到产品后, 可以通过扫描标签上二维码的方式来进行入库和出库...

    应用场景:

    公司的产品在打包后,要在每包产品上面贴标签,标识物品的各种属性,且仓库接到产品后,

    可以通过扫描标签上二维码的方式来进行入库和出库操作。所以,在这里分享一下winform程序

    通过集成FastReport来实现报表的编辑和打印功能。

    好宝宝们,我们要上课啦!

    ①首先我们拿到FastReport .NET包

    ②将下图中这两个dll文件引入项目中

    ③程序集引用到项目中后,生成对应控件。(生成方法我们之前已经说过了,这里不过多赘絮)。

    ④我们新建一个form页作为打印页,这里我命名为PreviewForm,把previewControl控件拖到这个页面,它就是长下面这个样子。

    ⑤我们拖一个button按钮,通过按钮的点击事件来调用这个打印页,下面是这个按钮的点击事件

    //打印选中的数据
            private void Btn_Print_Click(object sender, EventArgs e)
            {
                if (string.IsNullOrEmpty(GetSelectID("sOutputNo")))
                {
                    MessageBox.Show("请选择要打印的数据!", "系统提示");
                    return;
                }
                PreviewForm previewForm = new PreviewForm(GetSelectID("sOutputNo"), IsPreview);//将选中的产出编号传给打印页面
                previewForm.Print();
                
            }

    ⑥这里可能有小伙伴不明白,打印页中的这个previewForm.Print()方法是哪里来的,不要急,我们看下面,一起来分析一下打印页中的代码。

    代码主要分三段。

    第一段呢PreviewForm(string OutputNo,bool bIsPreview)就是通过构造函数将我们需要的值从调用界面传过来。

    第二段呢getData()就是通过传过来的值,比如姓名,去数据库查找与之对应的相关信息,放入DataTable中

    第三段Print()就是我们在打印页封装好的一个打印方法,用来调用打印机。此方法的逻辑大概就是:先实例化一个报表变量, 然后给这个变量指定我们报表所在的文件夹位置,然后给这个变量加载报表,最后判断是否需要预览,需要预览就调用ShowPrepared()方法,不需要预览就调用pReport.PrintPrepared()直接打印。

    public partial class PreviewForm : Form
        {
            private Report pReport; //新建一个私有变量,报表
            public static string connStr = ConfigHelper.GetConnectSql("SQLXML.xml");//读取数据库配置
            public string sql_ShowData = FNConf.getXMLSelectSql(FNSQLPath.YarnOpSql, "sql_ShowData");//展示今日产量登记的数据sql语句
            private string sOutputNo;
            private bool IsPreview { get; set; }//是否预览
            public PreviewForm(string OutputNo,bool bIsPreview)
            {
                InitializeComponent();
                sOutputNo = OutputNo;
                IsPreview = bIsPreview;
            }
    
            private void PreviewForm_Load(object sender, EventArgs e)
            {
                Print();
            }
    
    
            //获取要打印的数据
            private DataSet getData()
            {
                SqlConnection conn = new SqlConnection(connStr);
                conn.Open();
                SqlCommand comm = new SqlCommand();
                comm.CommandText = sql_ShowData + $"and sOutputNo='{sOutputNo}'";
                comm.CommandType = CommandType.Text;
                comm.Connection = conn;
                DataSet ds = new DataSet();
                SqlDataAdapter adapter = new SqlDataAdapter(comm);
                adapter.Fill(ds, "Hdr");
                conn.Close();
                return ds;
            }
            public void Print()
            {
                pReport = new Report();   //实例化一个Report报表
                String reportFile = "Report/report.frx";
                pReport.Load(reportFile);  //载入报表文件
                pReport.Preview = previewControl1; //设置报表的Preview控件(这里的previewControl1就是我们之前拖进去的那个)
                DataSet ds = new DataSet();
                ds = getData();
                pReport.RegisterData(ds, "Hdr");
                pReport.Prepare();   //准备
                if (!IsPreview)//如果不预览
                {
                    pReport.PrintPrepared();
                }
                else
                {
                    pReport.ShowPrepared();  //显示
                    this.Show();
                }
            }
        }

    ⑦到这里呢,通过Winform调用FastReport实现打印的功能就算是完成啦,如果需要实现绘制报表的功能的话大家可以研究一下DesignerControl控件

    总结

    本项目算是完成了Winform程序调用打印机的功能,但是始终没有实现打印有多行数据的报表,我始终取不到多行数据。因为此项目没有正好没有这个需求,所以就没有去深究,如果有这个需求困惑的小伙伴可以评论在下方我们一起讨论一下。

    好啦,各位好宝宝,这个项目就到这里啦,有什么不明白的欢迎评论在下方,下课。

    展开全文
  • winform的reportview水晶报表操作
  • 本项目采用的是VS2019 Community + CRforVS13SP29开发,记录了开发过程中对于水晶报表设计的理解,给自己做个笔记,也给他人一些解决思路,如有说得不对的... 另外,为了便于实现动态图片功能,当被载入的数据库表字
  • 最近接到任务要搞一个计划报表,点名要用Winform,网上控件倒是有,就是贵,Devexpress 也有,还是贵,而且要求就要用自己写的,老程序风格还不能变,所以外部控件什么的就别想了。要求显示一天24小时,各个时间段的...
  • winform程序 报表程序

    2013-11-20 11:43:52
    winform程序 Microsoft.ReportViewer.WinForms, Version=9.0.0.0, Culture=neutra 未能加载文件或程序集microsoft.reportviewer.winforms
  • C#WinForm水晶报表技术

    2015-03-02 01:48:19
    利用水晶报表可以创建交互式的优质报表。不仅能为 WinForms 和 WebForms 创建报表,还能将报表作为Web 服务存放在 Web 服务器上
  • C#WinForm报表打印实例及源代码.zip

    热门讨论 2011-06-02 22:23:22
    C#WinForm报表打印实例及源代码.zipC#WinForm报表打印实例及源代码.zipC#WinForm报表打印实例及源代码.zipC#WinForm报表打印实例及源代码.zip 本人QQ:280067279,加时注明:CSDN,我也想多认识些编程的朋友.

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,754
精华内容 2,301
热门标签
关键字:

winform 动态报表