为了账号安全,请及时绑定邮箱和手机立即绑定

使用 JSON 数组创建 RDLC 报告

使用 JSON 数组创建 RDLC 报告

C#
绝地无双 2023-07-22 16:13:42
我正在尝试为我的项目创建RDLC带有数组的报告JSON。该JSON数组来自 API。我已经RDLC使用数据库作为Dataset直接访问的方式制作了报告SQL database,但是如何处理来自JSON数组的API。我试图JSON在非类型化数据表上获取数组,然后将其合并到类型化数据表。那么应该显示在 上dataset.xsd,但事实并非如此。public partial class WebForm2 : System.Web.UI.Page{    [WebMethod]    [System.Web.Script.Services.ScriptMethod()]    protected void Page_Load(object sender, EventArgs e)    {        test();    }    public void test()    {        WebClient client = new WebClient();        string strJSON = client.DownloadString("Json.txt");        string chk = strJSON.Replace("\\", "");        chk = chk.Substring(1, chk.Length - 2);        DataTable dtUsingMethod = GetJSONToDataTableUsingNewtonSoftDll(chk);        DataSet1.test_tableDataTable tbl = new DataSet1.test_tableDataTable();        tbl.Merge(dtUsingMethod);    }    public static DataTable GetJSONToDataTableUsingNewtonSoftDll(string JSONData)    {        DataTable dt = (DataTable)JsonConvert.DeserializeObject(JSONData, (typeof(DataTable)));        return dt;    }}预期结果是我想使用 JSON 数组生成报告。
查看完整描述

1 回答

?
临摹微笑

TA贡献1982条经验 获得超2个赞

好吧,我找到了一个对我有用的答案。我将其发布在这里希望对其他人也有帮助。这里的问题是我们需要 RDLC 报告的数据源。由于我们无法使用 Sql 数据库,因此我们必须创建自己的自定义数据源。


步骤1.添加类文件。


步骤 2. 类文件中的代码:


using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using Newtonsoft.Json;

using Newtonsoft.Json.Linq;

using Newtonsoft.Json.Converters;

using System.Text;

using System.Runtime.Serialization.Formatters;

using System.IO;

using System.Data;

using System.Xml.Serialization;

using System.Runtime.Serialization;

using Newtonsoft.Json.Serialization;

using System.Web.Services;

using System.Net;


namespace Batch_report

{

    public class batch_data 

    {

        public string plant_sl_no { get; set; }

        public string batch_no { get; set; }

        public string batch_no_sl { get; set; }

        public string batch_index { get; set; }

        public string batch_date { get; set; }

        public string recp_id { get; set; }

        public string recp_name { get; set; }

        public string pdt_qty { get; set; }

        public string truck_id { get; set; }

        public string cust_id { get; set; }

        public string load_sent_qty { get; set; }

        public string site { get; set; }

    }

    public class Custom_batch

    {

        [WebMethod]

        [System.Web.Script.Services.ScriptMethod()]

        public static List<batch_data> GetEmployeeName()

        {

            //List<string> abc = new List<string>();

            //string[] arr;

            WebClient client = new WebClient();

            string info = client.DownloadString("http://json.txt");

            string chk = info.Replace("\\", "");

            chk = chk.Substring(1, chk.Length - 2);


            List<batch_data> obj = new List<batch_data>();

            obj = JsonConvert.DeserializeObject<List<batch_data>>(chk);


            return obj;

        }

    }

}

步骤3.构建你的类文件,你将得到一个batch_report.dll文件。将此 .dll 添加到项目的引用文件夹中。


步骤 4. 从工具箱添加报告或报告向导。添加时,将打开一个窗口,询问数据集。命名您的数据集,然后在数据源中从下拉列表中选择batch_report。在“可用数据集”中,选择您从中获取数据的方法,在我的例子中是来自 Custom_batch 类,方法是 - GetEmployeeName()。


步骤5.单击下一步直到完成,之后您也可以设计您的报告。


查看完整回答
反对 回复 2023-07-22
  • 1 回答
  • 0 关注
  • 182 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信