日期:2014-05-20  浏览次数:20726 次

动态绑定字段问题
首先问个问题:
(1)是不是报表在用推方式设计时一定要建里一个数据集吗,我说的是在设计报表时
(2)能否在设计时只创建公式字段,这时没有数据集字段,只有公式字段,把公式字段拖入报表中,在程序中动态绑定这个公式字段,运行后提示“该报表不包含表。”
  请问这么做有什么问题吗,为什么不对呀?
  程序中这样做:
  OleDbConnection cn = new OleDbConnection(Tsql);
  cn.Open();
  OleDbDataAdapter da = new OleDbDataAdapter("select DishCode,DishName from tmenu", cn);
  DataSet ds = new DataSet();
  da.Fill(ds, "WareMenu");

  ReportDocument Redoc = new ReportDocument();
  Redoc.Load("StockWare.rpt");
  //用代码绑定报表中的未绑定字段 
  Redoc.DataDefinition.FormulaFields["FldWareName"].Text = "{WareMenu.DishName}";
  Redoc.DataDefinition.FormulaFields["FldWareCode"].Text = "{WareMenu.DishCode}";
  Redoc.SetDataSource(ds);
  //设置报表浏览控件的报表源 
  CrpView.ReportSource = Redoc;

------解决方案--------------------
1:是的,需要有个表
2:这种方式虽然是加了字段进去,但是却没有这个字段依赖的表WareMenu。原因就是1中的那样。