0

我有一个带有 EF 的 ASP.NET MVC 4 项目。我有一个 ASPX 网页来显示 RDLC 报告的 ReportControl。

我有 2 个表:订单代理。在我的报告中,我想显示(在 Tablix 中)我的所有订单。

订单号 | 订购日期 | 订单总额 | 订单状态 | 代理人

(代理列是代理的名称:“Agent.Name”)

问:如何在 Tablix 中显示另一个表(代理)中的字段(代理名称)?

if (!IsPostBack)
   {
    var qry = FROM o in db.Orders
              //JOIN a in d.Agents on o.idAgent equals a.idAgent
              SELECT o; // 
    ReportDataSource dataSource = new ReportDataSource("DataSetOrder_Agent", qry);
    ReportViewerOrders.LocalReport.DataSources.Add(dataSource);
   }
4

1 回答 1

0
  1. 使用 SP:

    CREATE PROCEDURE [dbo].spAgentOrders    
    (
    @fromdate DATE,
    @todate DATE
    )   
    AS
    DECLARE @from DATE = @fromdate, @to DATE = @todate
    SELECT o.orderbo, o.orderdate, o.ordervalue, o.status, a.name
    FROM orders o 
    JOIN agent a on o.id_agent = a.id_agent
    WHERE o.orderdate between @from and @to
    RETURN
    

更新模型,将 SP 添加为返回复杂类型的函数导入。2. Webform 代码隐藏:

if (!IsPostBack)
{
//...
var qry = db.spAgentOrders(tbFrom.Text, tbTo.Text);

ReportDataSource dataSource = new ReportDataSource("DataSetOrder_Agent", qry);
ReportViewerOrders.LocalReport.DataSources.Add(dataSource);
}
  1. 更新报表的 DataSource .xsd。从服务器资源管理器中拖动 SP。
于 2012-08-05T09:01:33.860 回答