怎么样描述sql生成原理

怎么样描述sql生成原理,第1张

有的时候希望某个单元格能够直接获取到数据库中的某个值,而不是先要定义一个数据集后,再去取数据。这时就可以用函数Sql()公式,下面通过报表生成器FineReport讲解下其用法。

工具/原料

报表生成器FineReport711

大小:1482M 适用平台:windows/linux

方法/步骤

公式解释

SQL(connectionName,sql,columnIndex,rowIndex):返回的数据是从connectionName数据库中获取的sql语句的表中的第columnIndex列第rowIndex行所对应的元素。

connectionName:数据库名,字符串形式,需要用引号如"FRDemo";

sql:SQL语句,字符串形式;

columnIndex:列序号,整型;

rowIndex:行序号,整型。

备注:行序号可以不写,这样返回值为数据列。

示例(就一般的只获取某个字段内容)

从表 STSCORE中,我们可看到第3行第3列的值为Alex,如下:

现在若要直接在报表的单元格中显示数据值:Alex,而不通过先定义一个数据集后,再去取数据的方式,这里就可以使用sql()公式,此时只需在单元格中输入:=sql("FRDemo","SELECT FROM STSCORE",3,3)即可,预览就可看到Alex值。

报表生成器FineReport中SQL函数的介绍

示例(带有参数时公式的使用)

带有参数形式的时候,直接在报表的单元格中获取数据值,写法如下:

=sql("FRDemo","SELECT FROM STSCORE where CLASSNO = 'Class1' ",3)

显示效果(班级为Class1的第3列所有值),如下:

报表生成器FineReport中SQL函数的介绍

若需要显示某个具体值,如:显示 Jonny 的效果(即班级为Class1的第3列第4行的值),写法如下:

=sql("FRDemo","SELECT FROM STSCORE where CLASSNO = 'Class1' ",3,4)

若参数值为变量如为报表参数或者是某个单元格,则写法如下:

=sql("FRDemo","SELECT FROM STSCORE where CLASSNO = '"+$class+"' ",3,4)

=sql("FRDemo","SELECT FROM STSCORE where CLASSNO = '"+A1+"' ",3,4)

如果传递的参数是获取当前单元格的值,即用$$$作为参数时,字符串类型同样需要拼接单引号,如下:

=sql("FRDemo","SELECT FROM STSCORE where CLASSNO = '"+$$$+"' ",3,4)

注:如果参数或者单元格值有多个,那么sql函数的写法如下:

=sql("FRDemo","SELECT FROM STSCORE where CLASSNO in ('"+$class+"') ",3,4)

在取报表格式之前,应该先把数据集对象放好,这样才能保证在报表控件在取格式文件后,安置报表对象时,可以拿到数据对象,如果 *** 作顺序搞反了,则报表对象就无法拿到数据对象,在预览数据时,就会产生“没有数据集”的错误了!!

var

tmpDataSet: T数据集;

DataSource: TDataSource;

frxDBDataSet: TfrxDBDataset;

begin

tmpDataSet:=T数据集Create(Self);

DataSource:=TDataSourceCreate(Self);

frxDBDataSet:=TfrxDBDatasetCreate(Self);

DataSourceDataSet:=tmpDataSet;

frxDBDataSetDataSource:=DataSource;

//frxDBDataSetDataSet:=tmpDataSet; //这条语句与上一条都可用,我也不知道区别在哪

frxDBDataSetUserName:='数据项名称'; //好用在于可以用中文名

frxReport1DataSetsAdd(frxDBDataSet);

-------------注意:在把报表格式LoadFromFile或LoadFromStream之前,必须完成上面这几条语句的程序!!!!

这个代码的话有时候好用,有时候会不适用,如果你测试下来不行的话建议你用finereport来做,不用写代码,出错的几率要小很多。

以上就是关于怎么样描述sql生成原理全部的内容,包括:怎么样描述sql生成原理、fastreport报表中怎样取当前时间、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/10103129.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-05
下一篇2023-05-05

发表评论

登录后才能评论

评论列表(0条)

    保存