找回密码
 立即注册

QQ登录

只需一步,快速开始

Jycjmf

注册会员

1

主题

3

帖子

8

积分

注册会员

积分
8
  • 26

    金币

  • 1

    主题

  • 3

    帖子

最新发帖
Jycjmf
注册会员   /  发表于:2022-7-12 16:40  /   查看:2285  /  回复:10
我现在项目采用.Net Core 3.1运行时,我希望通过链接中不同的Query参数动态生成SQL,从而实现不同用户打开页面显示不同报表内容的效果。我在Controller中加入了Id参数:
[HttpGet("/{file}")]
public object Resource([FromRoute] string file, [FromQuery] string id)//我需要传递的query参数Id
{     ........}
我希望根据不同的Id,生成不同的SQL,并且使用这个SQL查询报表内容。
select * from user Where Id=12345所以我在Configure方法中添加了如下代码:app.UseReporting(settings =>
{
    settings.UseEmbeddedTemplates(EmbeddedReportsPrefix, Assembly.GetAssembly(GetType()));
    settings.UseCompression = true;
    settings.LocateDataSource = args =>
    {
        var res = QueryItems("select * from user where Id=12345");//我不知道怎么传递query参数(id)到这边
        return res;
    };
});
private static DataTableCollection QueryItems(string sql)
{
    var conn = new MySqlConnection(
        "Server=127.0.0.1; Port=3306;Stmt=; Database=demodb; Uid=demo; Pwd=demo;");
    var daCountry = new MySqlDataAdapter(sql, conn);
    var dsCountry = new DataSet();
    daCountry.Fill(dsCountry, "User");
    var dataSet = dsCountry.Tables["User"?.DataSet;
    return dataSet?.Tables;
}这样做虽然手动编写了SQL,但问题是我不知道怎么传递Route中的参数到UseReporting的 settings.LocateDataSource中,而且这个方法只会在程序自动的时候运行一次,并不能实现每一个http请求调用一次,请问下有没有什么解决方案?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

10 个回复

倒序浏览
wengMQ悬赏达人认证
银牌会员   /  发表于:2022-7-12 19:45:26
沙发

评分

参与人数 1金币 +666 收起 理由
Bella.Yuan + 666 很给力!

查看全部评分

回复 使用道具 举报
wengMQ悬赏达人认证
银牌会员   /  发表于:2022-7-12 19:45:48
板凳
可以加我QQ546962925
回复 使用道具 举报
wengMQ悬赏达人认证
银牌会员   /  发表于:2022-7-12 19:46:24
地板
【新提醒】Web端在线设计器项目实际分享 - ActiveReports专区 - 专题教程 - 葡萄城产品技术社区  https://gcdn.grapecity.com.cn/fo ... &extra=page%3D1
回复 使用道具 举报
James.Lv讲师达人认证 悬赏达人认证 活字格认证 Wyn认证
超级版主   /  发表于:2022-7-12 21:40:56
5#
一种实现方式就是URL上传递参数,然后您自己在代码去处理来实现报表sql根据参数进行过滤

还有一种实现方式,就是利用报表参数,然后把SQL语句跟参数关联动态传递这部分由报表来去完成
可以参考教程:
SQL语句使用参数技巧
https://gcdn.grapecity.com.cn/fo ... 2&fromuid=57091
(出处: 葡萄城产品技术社区)


回复 使用道具 举报
Jycjmf
注册会员   /  发表于:2022-7-13 09:04:04
6#
James.Lv 发表于 2022-7-12 21:40
一种实现方式就是URL上传递参数,然后您自己在代码去处理来实现报表sql根据参数进行过滤

还有一种实现方 ...

你好,请问下“URL上传递参数“的方式有例子吗?我现在不知道怎么样才能在用户每次访问报表URL时动态获取Query参数并且合并到SQL语句中
回复 使用道具 举报
Bella.YuanWyn认证
超级版主   /  发表于:2022-7-13 10:33:37
7#
Jycjmf 发表于 2022-7-13 09:04
你好,请问下“URL上传递参数“的方式有例子吗?我现在不知道怎么样才能在用户每次访问报表URL时动态获取 ...

您好,您现在的是问题是不知道如何在startup中获取controller的参数,帮您找了一个链接,您可以参考一下。
https://blog.csdn.net/davy57345/article/details/102300535
回复 使用道具 举报
Jycjmf
注册会员   /  发表于:2022-7-13 15:40:41
8#
wengMQ 发表于 2022-7-12 19:45
https://gcdn.grapecity.com.cn/forum.php?mod=viewthread&tid=138284&extra=  这是一种方式

非常感谢!解决了
回复 使用道具 举报
Bella.YuanWyn认证
超级版主   /  发表于:2022-7-13 16:07:57
9#
Jycjmf 发表于 2022-7-13 15:40
非常感谢!解决了

解决了就好有问题欢迎另开新贴
回复 使用道具 举报
wengMQ悬赏达人认证
银牌会员   /  发表于:2022-7-13 23:50:13
10#
Jycjmf 发表于 2022-7-13 15:40
非常感谢!解决了

有问题欢迎加QQ546962925沟通
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部