【问题标题】:How do I export Datagridview details to crystal report如何将 Datagridview 详细信息导出到水晶报表
【发布时间】:2016-09-27 03:51:28
【问题描述】:

我在我的项目中使用 Linq to Sql,datagridview 由一个名为 Get_All_Incomes 的存储过程填充。

我设计了一个水晶报表来查看gridview中的数据但是有一个例外

DataSet 不支持 System.Nullable

我用这段代码填充了gridview

dgvIncome.DataSource = CLS_Incomes.Get_All_Incomes().ToList();

我用这个方法过滤了gridview

string nameFilter = txtCust.Text;
string mediaFilter = comboMedia.SelectedIndex > 0 ? comboMedia.Text : "";
string currencyFilter = comboCurr.SelectedIndex > 0 ? comboCurr.Text :"";
string motalabahFilter = txtMot.Text;
string sanadFilter = txtSanad.Text;
string incomeFilter = txtIncome.Text;
DateTime? fromDate = radioFrom.Checked ? dateTimePicker1.Value.Date : (DateTime?)null;
DateTime? toDate = radioFrom.Checked ? dateTimePicker2.Value.Date : (DateTime?) null;

        using (dbDataContext db = new dbDataContext())
        {
            var result = from p in db.Get_All_Incomes()
                where
                    (nameFilter.Length > 0 && p.CustomersName.Contains(nameFilter) || nameFilter.Length == 0)
                    && (mediaFilter.Length > 0 && p.Name == mediaFilter || mediaFilter.Length == 0)
                    && (currencyFilter.Length > 0 && p.CurrencyName == currencyFilter || currencyFilter.Length == 0)
                    && (motalabahFilter.Length > 0 && p.Motalabah == motalabahFilter || motalabahFilter.Length == 0)
                    && (sanadFilter.Length > 0 && p.Sanad == sanadFilter || sanadFilter.Length == 0)
                    && (incomeFilter.Length > 0 && p.Income.ToString() == incomeFilter || incomeFilter.Length == 0)
                    &&
                    ((fromDate == null || toDate == null) ||
                     (fromDate != null && toDate != null && p.SanadDate >= fromDate && p.SanadDate <= toDate))

                select p;


            dgvIncome.DataSource = result.ToList();

终于用这个按钮调用了报告

btnReport.Cursor = Cursors.WaitCursor;
Reports.Rpt rpt = new Reports.Rpt();
rpt.SetDataSource(dgvIncome.DataSource);
FRM_Report frm = new FRM_Report();
btnReport.Cursor = Cursors.Default;
frm.ShowDialog();

【问题讨论】:

    标签: c# linq crystal-reports


    【解决方案1】:

    虽然您上面的代码看起来不错,但请检查您的“date...null”代码行。这可能是问题所在。您是否尝试跟踪给出异常的代码?另外,您是如何设计水晶报表的?我怀疑问题出在相关数据集的填充方式上。请让我知道您的发现。

    如果这对您有帮助,请记得标记为“已回答”。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多