请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需一步,快速开始

gery

金牌服务用户

2

主题

4

帖子

12

积分

金牌服务用户

积分
12
最新发帖
gery
金牌服务用户   /  发表于:2024-9-30 16:25  /   查看:68  /  回复:3
1金币
希望AR能从某些时序数据库拉取数据,比如TDengine或者自研数据库。数据源的下拉菜单里可以添加其他数据库吗?


TDengine有ADO.NET连接器和ODBC连接器。但是TDengine的ODBC连接器仅支持预定义的DSN(https://docs.taosdata.com/reference/connector/odbc/)。
AR可以通过ADO.NET连接器(https://github.com/taosdata/taos-connector-dotnet)连接到TDengine吗?

3 个回复

倒序浏览
Felix.LiWyn认证
超级版主   /  发表于:2024-9-30 16:54:31
沙发
是这样,您这个有两种:
第一种就是ODBC,ODBC的话,需要AR发布的服务器上装对应的ODBC驱动,但是

TDengine的驱动这个确实之前没有了解过,您可以能得自己先试一下。使用方法就是服务器上驱动安装好后,练级字符串参考mysql的:
  1. Driver={MySQL ODBC 8.0 Unicode Driver};Server=xa-irs-database;Port=3306;Database=test;User=root;Password=xA123456;Option=3;
复制代码
您把Driver写成您下载的驱动的驱动名称,连接字符串得参考那个驱动的提供厂家的连接字符串。不用和上面mysql一样。
如果可以连接上,数据集的查询语法就尝试直接原生的语法试一下。

2.其实还推荐您使用运行时数据源。可以参考这个:
https://help.grapecity.com.cn/pa ... tion?pageId=5968575
相当于设计好字段,然后后端动态给值,这样我们就可以后端直接用 对应的连接dll,用代码查出来数据,再给报表赋值
回复 使用道具 举报
gery
金牌服务用户   /  发表于:2024-9-30 17:14:43
板凳
Felix,你好。关于动态运行时数据源,如果我是在网页版上创建的报表。在哪儿可以添加代码针对LocateDataSource 事件加载数据呢?
回复 使用道具 举报
Felix.LiWyn认证
超级版主   /  发表于:2024-9-30 17:41:31
地板
有两种,一种是公用的,直接在usereporting里面设计并返回:
  1. app.UseReporting(config => {
  2.         config.SetLocateDataSource((args) => {
  3.                 DataTable dt = new DataTable();
  4.                 return dt;
  5.         });
  6.         config.UseFileStore(ResourcesRootDirectory);
  7. });
复制代码
另一种是我们写自定义的报表加载,报表的预览返回直接走UseCustomStore
相当于自定义报表返回,然后在报表加载的时候,去加载自定义数据源


  1. app.UseReporting(config => {
  2.         config.UseCustomStore(getReport);
  3. });


  4. private object getReport(string reportName)
  5. {
  6.         PageReport report = new PageReport();
  7.         report.Load(new FileInfo(""));
  8.         report1.Document.LocateDataSource += new GrapeCity.ActiveReports.LocateDataSourceEventHandler(Document_LocateDataSource);
  9.         .......
  10.         return report;
  11. }
复制代码



回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部