Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 在运行时使用动态表创建Crystal报表_Sql_Visual Studio 2010_Crystal Reports_Odbc - Fatal编程技术网

Sql 在运行时使用动态表创建Crystal报表

Sql 在运行时使用动态表创建Crystal报表,sql,visual-studio-2010,crystal-reports,odbc,Sql,Visual Studio 2010,Crystal Reports,Odbc,您好,我正在计划一个应用程序,它基本上是使用ODBC dsn连接字符串的数据库(专有普及SQL)的报告前端 我能够在Visual Studio中创建数据集,并将报告链接到应用程序。但是,在实际使用中,每个用户的数据库位置会有所不同。这不是主要问题。我使用允许您设置数据库路径位置的连接字符串克服了这一问题 这是踢球的人 我要从中读取的表的名称以唯一的文件名作为前缀(实际上与我上面提到的名称相同)。我需要crystal在运行时重新映射表名。只是表名的前缀而已。字段和字段名称不会更改 关于我应该在哪里

您好,我正在计划一个应用程序,它基本上是使用ODBC dsn连接字符串的数据库(专有普及SQL)的报告前端

我能够在Visual Studio中创建数据集,并将报告链接到应用程序。但是,在实际使用中,每个用户的数据库位置会有所不同。这不是主要问题。我使用允许您设置数据库路径位置的连接字符串克服了这一问题

这是踢球的人

我要从中读取的表的名称以唯一的文件名作为前缀(实际上与我上面提到的名称相同)。我需要crystal在运行时重新映射表名。只是表名的前缀而已。字段和字段名称不会更改

关于我应该在哪里写这篇文章有什么想法吗?如果有帮助的话,我正在使用VS2010&C。我认为应该是Crystal附带的某种类文件,可以进行一些运行时反射来获取/设置表名

任何想法都将受到欢迎和赞赏。 抢劫

编辑:我发现了一些有API文档和其他支持的文档。我将研究它们。它们都是.chm文件(Windows帮助文件),因此没有“在线”文档可供搜索。

  • 添加Crystal reportViewer将名称更改为objReport
  • 添加公共函数ShowReport()

并从应用程序中的任何位置调用它

ds = GetDataInDataSet();//fILL DataSet with your data
rptPSummary objRpt = new rptPSummary();
objRpt.SummaryInfo.ReportComments = "Have a nice day";
objRpt.SummaryInfo.ReportTitle = "Purchase Summary Report from " + sDate.ToString("dd/MM/yyyy") + " to " + eDate.ToString("dd/MM/yyyy");
objRpt.SetDataSource(ds);

frmReportView frmRpt = new frmReportView();
frmRpt.Text = objRpt.SummaryInfo.ReportTitle;
frmRpt.MdiParent = this;
frmRpt.ShowReport(objRpt);

谢谢你的回复!看来数据集决定了表名是什么?当您将数据集传递给报表时,它如何知道要查询哪个表?
ds = GetDataInDataSet();//fILL DataSet with your data
rptPSummary objRpt = new rptPSummary();
objRpt.SummaryInfo.ReportComments = "Have a nice day";
objRpt.SummaryInfo.ReportTitle = "Purchase Summary Report from " + sDate.ToString("dd/MM/yyyy") + " to " + eDate.ToString("dd/MM/yyyy");
objRpt.SetDataSource(ds);

frmReportView frmRpt = new frmReportView();
frmRpt.Text = objRpt.SummaryInfo.ReportTitle;
frmRpt.MdiParent = this;
frmRpt.ShowReport(objRpt);