.net每隔几秒去请求接口 怎么做_仅需一个插件!从FastReport.Net报表设计器连接到Firebird数据库...

为了在FastReport.Net Designer中连接到Firebird数据库,我们提供了一个插件连接器。

有必要预先组装项目(FastReport.Net最新安装包下载:https://www.evget.com/product/1861/download):

С:Program Files (x86)FastReportsFastReport.NetExtrasConnectionsFastReport.Firebird

然后,您必须在菜单File-> Options中连接插件报表设计器:

88058bb01005efe43f3774fb4d5ff0b4.png

仅需一个插件!从FastReport.Net报表设计器连接到Firebird数据库

之后,您需要重新启动报表设计器。

在报表中创建源数据之前,请确保已正确配置服务器FireBird。当Firebird 3使用插件中使用的FireBirdSql.Data.FirebirdClient库连接到数据库时,您很可能会看到错误“connection rejected by remote interface”连接被远程接口拒绝。您需要启用有线加密和旧式身份验证类型。

为此,请打开配置文件firebird.conf。取消注释并更改行:

AuthServer = Srp, Legacy_Auth

UserManager = Srp, Legacy_Auth

WireCrypt = Enabled

现在我们可以开始制作数据源了。选择连接类型“Firebird连接”:

f5b2309cce1930ef7887b1fbe6748ee1.png

仅需一个插件!从FastReport.Net报表设计器连接到Firebird数据库

结果,连接线将如下所示:

initial catalog="J:Program FilesFirebirdFirebird_3_0examplesempbuildEMPLOYEE.FDB";user id=sysdba;password=masterkey

接下来,我们可以选择报表所需的表:

606f5030945c2e3353b7a0a14869daa0.png

仅需一个插件!从FastReport.Net报表设计器连接到Firebird数据库

而且,我们还有机会编写SQL查询。让我们看看怎么做。按下按钮“Add SQL query ...”添加SQL查询。我们设置表名,该表名是通过查询获得的:

46efb4f283562bd40fe937aededcd27b.png

仅需一个插件!从FastReport.Net报表设计器连接到Firebird数据库

然后让我们编写SQL请求本身:

6b1ed1ec3eb29c1a6c1b9996bfb8a258.png

仅需一个插件!从FastReport.Net报表设计器连接到Firebird数据库

该请求在条件参数中。在垂直双线的帮助下,我们进行了合并。作为查询的结果,我们将向员工介绍其姓名以特定字母或短语开头的员工。在下一步中,我们创建一个具有相同名称的参数,该参数已在SQL查询中定义:

02064549f2aaedbf8b2ead9813e5e0b7.png

仅需一个插件!从FastReport.Net报表设计器连接到Firebird数据库

作为设置值,我们可以使用任何表达式:报表设置、函数、变量。让我们使用报表变量。至此,它应该已经创建:

76fee6d812f4e1fb9bf6890540cd9891.png

仅需一个插件!从FastReport.Net报表设计器连接到Firebird数据库

在表达式编辑器中选择它,当您在进行参数请求的窗口中单击“Expression”表达式时,该编辑器将打开:

0e7b9016ce435ccc09685e2307c29a98.png

仅需一个插件!从FastReport.Net报表设计器连接到Firebird数据库

结果,我们将选择名称以K开头的以下雇员:

d34c150fbe1eebb9437949b9b192403b.png

仅需一个插件!从FastReport.Net报表设计器连接到Firebird数据库


更多精彩内容请关注fastreport中文网或加入783996712,点击“了解更多”获取《FastReport.Net教程2019》

:首先是要分组,因为如果不分组,想合并的列与其它列会自动打印。这样,只能使用FR自带的隐藏重复数据的功能,但很多类似报表都是要求合并行居中的,这点FR就不能自动实现了。 2:要全并的列放在分组脚中,其它放在分组数据BAND中,这样,打印完分组数据BAND后,动态改变分组脚中要合并列的TOP和HEIGHT就可以了。而且这样打印,因为要合并的行实际上只打印了一遍,因此应该效率更高。所以这就要在打印分组数据BAND后有一个可记录此分组已打印高度的功能。 3:代码解释 procedure MCOnAfterData(Sender: TfrxComponent); begin if =1 then MC.Tag:=Int(MC.Height) else MC.Tag:=MC.Tag+Int(MC.Height); end; 因为FR的在每次分组后重新计数,使用MC.Tag保存现在数据BAND上的所有不合并行的总高度。当然也可以使用一个变量,但放着这么多TAG不用,多浪费呀。况且使用TAG的语法也比使用变量简单,使用变量使程序看上去很难懂。 if >=1 then 这样的写法看起来多痛苦呀。 procedure MBBOnAfterData(Sender: TfrxComponent); begin MBB.Tag:=GetStandHeight(MBB.CalcHeight); //这一句是为了保持行高的一致性,如果不要直接 MBB.Tag:=MBB.CalcHeight; //这样可能计算的行高不是标准行高的整数倍。 MBB.Visible:=False; end; procedure MD1OnBeforePrint(Sender: TfrxComponent); begin if =1 then MBB.Visible:=True; end; 上二句只是为了不多次统计CalcHeight,但不能直接设可视性为假,否则不会触发MBBOnAfterData事件。 计算此例中可能会很高的列的计算高度,这是在宽度已经确定的情况下计算的。 因为此例中的第二列单行高度可能大于其它列的总高度。如果没有此例中的特殊情况,可以省略。 4:如果此例中没有第二列单行高度可能大于其它列的总高度的话,MBB是不要的。 5:如果不是要求空行为多行多列显示的话,GFOnBeforePrint也是不要的,只要在GF上放二个MEMOVIEW,宽高和左边距分别与上方的二个相同,调用我例子中注释掉的代码改变它们的TOP和HEIGHT即可。 6:TAG是所有Tcomponent的属性呀,这是我最常使用的一个属性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值