gao12345 发表于 2018-5-23 15:48:41

AR12 winfrom框架下怎么在后代代码进行数据绑定

能贴出绑定代码嘛?

我在学习手册的那个视频中Asp.net 方式 进行后台绑定我的前台页面总是报错
private void Form1_Load(object sender, EventArgs e)
      {
            try
            {
                //生成报表对象
                GrapeCity.ActiveReports.PageReport rpt = new GrapeCity.ActiveReports.PageReport(new System.IO.FileInfo("E:/练习/PrintDome/PrintDome/RdlReport2.rdlx"));
                //绑定报表数据
                rpt.Document.LocateDataSource += new GrapeCity.ActiveReports.LocateDataSourceEventHandler(LocationData);

                //调用PageReports Document 对象
                GrapeCity.ActiveReports.Document.PageDocument prtd = new GrapeCity.ActiveReports.Document.PageDocument(rpt);
                //讲报表绑定在控件上
                this.viewer1.LoadDocument(prtd);
            }
            catch (Exception ex)
            {

                throw ex;
            }
      }

      private void LocationData(object sender, GrapeCity.ActiveReports.LocateDataSourceEventArgs args)
      {
            if (args.DataSourceName == "DataSource1")
            {
                args.Data = returndata();
            }
      }
      private object returndata()
      {
            DataTable dt = new DataTable();
            dt.Columns.Add("编码");
            dt.Columns.Add("编码");
            dt.Rows.Add("cs01","123");
            dt.Rows.Add("cs02","123");
            return dt;
      }

有可以参考的代码 链接嘛?
错误明细:
GrapeCity.ActiveReports.ReportException: 发生了一个意外错误。更多信息: '值不能为 null。
参数名: commandText' ---> System.ArgumentNullException: 值不能为 null。
参数名: commandText
   在 #UwA.#uue..ctor(#WTe connection, String commandText, CommandType commandType, Int32 commandTimeout, String name, DataSourceLocator locator, Func`2 evaluator)
   在 GrapeCity.BI.Data.CommandBuilder.#hEf(#WTe connection, IDataSet rdlDataSet, Func`2 evaluate, DataParameter[] parameters)
   在 GrapeCity.BI.Data.CommandBuilder.#8gX(IDataSet dataSet, DataSource dataSource, DataParameter[] parameters)
   在 GrapeCity.ActiveReports.ReportDataProcessor.<>c__DisplayClass7.#U.#cQh.#2p2(IDataSet dataSet, DataSource dataSource, DataParameter[] parameters)
   在 GrapeCity.ActiveReports.ReportDataProcessor.#t2Z(IDataSet dataSet, BuildCommand buildCommand, IDictionary`2 scopes, IList`1 finalizers, CancellationToken token, DataParameter[] parameters)
   在 GrapeCity.ActiveReports.ReportDataProcessor.<>c__DisplayClass21.#7p2(String name)
   在 GrapeCity.Enterprise.Data.DataEngine.DataProcessing.RecordSetProvider.GetDataSet(String name)
   在 GrapeCity.Enterprise.Data.DataEngine.DataProcessing.DataProcessor.<>c__DisplayClass13_0.#dm2(ExecutionContext exc)
   在 GrapeCity.Enterprise.Data.DataEngine.DataProcessing.DataProcessor.<>c__DisplayClass18_1.#mm2(#TRZ fn)
   在 System.Linq.Enumerable.WhereSelectArrayIterator`2.MoveNext()
   在 System.Linq.Buffer`1..ctor(IEnumerable`1 source)
   在 System.Linq.Enumerable.ToArray(IEnumerable`1 source)
   在 GrapeCity.Enterprise.Data.DataEngine.DataProcessing.DataProcessor.<>c__DisplayClass18_1.#lm2()
   在 GrapeCity.Enterprise.Data.DataEngine.DataTree`1.Scope.get_Regions()
   在 GrapeCity.Enterprise.Data.DataEngine.DataProcessing.DataTreeGenerator.<>c__DisplayClass17_1.#fn2()
   在 GrapeCity.Enterprise.Data.DataEngine.DataTree`1.Scope.get_Regions()
   在 GrapeCity.ActiveReports.Rendering.Data.DataScopeBase.#BHA(String name)
   在 #wxA.#UzA.Create(ReportRenderingContext reportRenderingContext, ReportItem rdlItem, IDataScopeInternal currentDataContext)
   在 GrapeCity.ActiveReports.Rendering.ReportRenderingContext.<>c__DisplayClass13.#sf2(ReportItem item)
   在 System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
   在 System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
   在 System.Linq.Enumerable.<ConcatIterator>d__71`1.MoveNext()
   在 System.Linq.Buffer`1..ctor(IEnumerable`1 source)
   在 System.Linq.OrderedEnumerable`1.<GetEnumerator>d__0.MoveNext()
   在 System.Linq.Enumerable.<SelectIterator>d__7`2.MoveNext()
   在 System.Linq.Buffer`1..ctor(IEnumerable`1 source)
   在 System.Linq.Enumerable.ToArray(IEnumerable`1 source)
   在 GrapeCity.ActiveReports.Layout.L2.CanvasImpl.#n3V(IEnumerable`1 canvasItems)
   在 GrapeCity.ActiveReports.Layout.L2.#AY(IEnumerable`1 canvasItems, Boolean galleyMode, Object item, Int32 width, Int32 height, Boolean consumeWhiteSpace)
   在 GrapeCity.ActiveReports.Layout.L2.#AY(IEnumerable`1 canvasItems, Boolean galleyMode, Object item, Int32 width, Int32 height, Boolean canShrink, Boolean canGrow, Boolean consumeWhiteSpace)
   在 GrapeCity.ActiveReports.Layout.ReportCanvasLayout.#AY(IEnumerable`1 items, #saR context, Object item, Int32 width, Int32 height, Boolean canShrink, Boolean canGrow, Boolean consumeWhiteSpace)
   在 GrapeCity.ActiveReports.Layout.ReportImpl.#QaX(#saR context, IBody body, Object item, Size`1 contentSize, Nullable`1 size, Boolean consumeWhiteSpace)
   在 GrapeCity.ActiveReports.Layout.LayoutEngine.#Lv0(#saR context, Int32 limit)
   在 GrapeCity.ActiveReports.Layout.LayoutEngine.BuildLayout(LayoutInfo layoutInfo)
   在 #GPr.#RLf.#NNf(IReport report, TargetDeviceCapabilities targetDevice, LayoutNotificationCallback callback)
   在 GrapeCity.ActiveReports.Export.Image.Page.ImageRenderingExtension.Render(IReport report, StreamProvider streams, NameValueCollection settings)
   在 GrapeCity.ActiveReports.Document.PageDocument.Render(IRenderingExtension renderingExtension, StreamProvider streams, NameValueCollection settings, Boolean forceDataRefresh, Boolean forceParameterDataRefresh, CancellationToken token)
   --- 内部异常堆栈跟踪的结尾 ---
   在 GrapeCity.ActiveReports.Document.PageDocument.Render(IRenderingExtension renderingExtension, StreamProvider streams, NameValueCollection settings, Boolean forceDataRefresh, Boolean forceParameterDataRefresh, CancellationToken token)
   在 GrapeCity.ActiveReports.Viewer.Win.Rdlx.RdlReport.<>c__DisplayClass13.<LoadImpl>b__e()
   在 System.Threading.Tasks.Task.InnerInvoke()
   在 System.Threading.Tasks.Task.Execute()

gao12345 发表于 2018-5-23 16:43:51

请问下 为什么我这个代码不报错 运行 就卡死在这个页面?

Lenka.Guo 发表于 2018-5-23 16:14:46

代码中有点小问题:

删除代码:   //绑定报表数据
                rpt.Document.LocateDataSource += new GrapeCity.ActiveReports.LocateDataSourceEventHandler(LocationData);


在下面添加:
         //调用PageReports Document 对象
                GrapeCity.ActiveReports.Document.PageDocument prtd = new GrapeCity.ActiveReports.Document.PageDocument(rpt);prtd.Document.LocateDataSource += new GrapeCity.ActiveReports.LocateDataSourceEventHandler(LocationData);

//讲报表绑定在控件上
      this.viewer1.LoadDocument(prtd);

gao12345 发表于 2018-5-23 16:15:51

我已经设置了啊

gao12345 发表于 2018-5-23 16:18:53

                GrapeCity.ActiveReports.Document.PageDocument prtd = new GrapeCity.ActiveReports.Document.PageDocument(rpt);
                prtd.LocateDataSource += new GrapeCity.ActiveReports.LocateDataSourceEventHandler(LocationData);

我用了你粘给我的代码 还是一样啊

gao12345 发表于 2018-5-23 16:20:47

错误明细:
GrapeCity.ActiveReports.ReportException: 无法连接数据源 ---> System.InvalidOperationException: No data has been set. Please specify either a DataSet or a DataView to use

Lenka.Guo 发表于 2018-5-23 16:22:32

这个错误很正常了, 后台代码绑定数据,只有当程序跑起来才会为报表赋值,所以跑起来来能看报表效果。
运行时数据源不支持在设计器中查看报表。

gao12345 发表于 2018-5-23 16:33:20

没有在报表设计器中查看就是跑起来时候报错的

gao12345 发表于 2018-5-23 16:35:17

你看~ emmm

Lenka.Guo 发表于 2018-5-23 18:29:14

设置数据未成功,请确保代码中的 DataSourceName 和设计器中数据源名称一致, DataSetName 和设计器中数据集名称一致。
页: [1]
查看完整版本: AR12 winfrom框架下怎么在后代代码进行数据绑定