水晶报表的推与拉

本文介绍了一个水晶报表的应用实例,通过C#代码实现从数据库获取指定月份的数据,并填充到报表中进行展示。讨论了这种方式是否属于Push或Pull模式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在网上看了阿泰的贴子,关于水晶报表的推与拉:

http://topic.youkuaiyun.com/u/20090713/01/15a1a826-b3d9-45f9-9557-c278245176fa.html

下面有个我自己设置的水晶报表参照了下有点二不像不知道是什么模式的,找位高手给分柝下。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;


namespace BDTC_SysTem
{
    public partial class frmFinanceSumMonthDay : Form
    {
        public frmFinanceSumMonthDay()
        {
            InitializeComponent();
        }
        private DataSet ds = new DataSet();
        private void frmFinanceSumMonthDay_Load(object sender, EventArgs e)
        {
            GetSumMonth(DateTime.Today);
        }

        private void GetSumMonth(DateTime mydate)
        {
            //FillCombboxClass fillsum = new FillCombboxClass();
            string sql = "Select Createdate,prosumpack,prosumprice,prosumpaper,prosumfire,prosumpackprice,prosumbreakprice,prosumotherprice,(prosumprice+prosumpaper+prosumfire+prosumpackprice+prosumbreakprice+prosumotherprice) as sumall from summonthofstopackaging_view where year(createdate)="+mydate.Year+" and month(createdate)="+mydate.Month;
            //DataTable dt= fillsum.SelectContent(sql);
            //dataGridView1.DataSource = dt;

            SqlConnection cn = new SqlConnection(Properties.Settings.Default.bdtcConnectionString);
            
            try
            {
                cn.Open();
                SqlDataAdapter da = new SqlDataAdapter(sql, cn);
                da.Fill(ds, "SumMOnthofStoPackagingAll_view");
                dataGridView1.DataSource = ds.Tables["SumMOnthofStoPackagingAll_view"];

            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            finally
            {
                cn.Close();
            }            

        }

        private void toolStripButton1_Click(object sender, EventArgs e)
        {
            GetSumMonth(dateTimePicker1.Value);
        }

        private void toolStripButton3_Click(object sender, EventArgs e)
        {
            PrintFinanceSumMonth p = new PrintFinanceSumMonth();
            p.SetDataSource(ds);            
            PrintViewFrm pv = new PrintViewFrm();
            pv.SumFinanceMonth.ReportSource = p;
            pv.ShowDialog();
            
         }

    }
}


制作的报表

 

在实例中使用了拉的方法取得数据库中的一个视图,并在报表中设置好位置。但在填充实例的时候是用了一个新dataset的表,表中的名称和视图名称是一样的。

现在就想问下这样的方式是pull还是push?或是二者结合?

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值