在FastReport软件中重新加载表格数据的 *** 作步骤

在FastReport软件中重新加载表格数据的 *** 作步骤,第1张

方法/步骤

1、首先打开FastReport软件,在数据目录中右键点击,新建一个数据源;根据向导提示填写完数据库的连接信息。

2、物理数据源新建完成之后如下图所示,有一个之前选择数据表的目录,然后可以通过这些数据表来在page页面里面绑定数据和布局

3、可以在page的startpage事件中自定义数据的连接与过滤条件,这些数据库连接(strConnection)与过滤条件(strSql)可以是从外部作为参数传入进来的。

绑定之后一定要记得调用Init()方法,不然表格就没有数据加载!

4、如果在同一个report里面有多个地方使用这个表格(或者是循环使用,比如在for循环里面,只是过滤条件不一样),都是按上面的GetReportDataSource方法来获取表格并初始化,表格里面的数据其实是每次循环使用过滤条件得到结果的并集,就是每次 *** 作的结果都会加入到表格中,那么结果可能就不是我们想要的了!

5、这时我们在获取数据表,并自定义绑定数据连接和过滤条件后,进行初始化之前就需要设置表格的ForceLoadData属性为true如下图所示:

6、通过官方的帮助文档可以知道设置了这个属性,在每次初始化时都会清空之前的数据,重新加载数据。如果调用次数多也会影响加载速度,所以默认值是false

方法有很多,具体方法如下:

1、首先准备多张报表格式,让用户根据自己的需要选择,将来打印时调用这张报表就可以了,这种方法很简单,容易实现,并且一单有新的用户要求,只要加一张报表格式就解决了。(推荐使用)

2、为用户提供报表设计器。fastreport自带的报表设计器(我们设计报表时用的就是),可以为用户设计功能很强的报表,并在发布时带上。

3、中和一下上述的两种方法,用户可以选择,也可以自定义报表。

以下FastReport动态生成报表例子:

procedure TForm1.Button1Click(Sender: TObject)

var

v: TfrView

b: TfrBandView

Page: TfrPage

begin

frReport1.Pages.Clear

frReport1.Pages.Add// create page

Page := frReport1.Pages[0]

b := TfrBandView.Create// create Title band

b.SetBounds(0, 20, 0, 20)// position and size in pixels

b.BandType := btReportTitle// (only Top and Height are significant

Page.Objects.Add(b)// for the band)

v := TfrMemoView.Create// create memo

v.SetBounds(20, 20, 200, 16)

v.BandAlign := baWidth

v.Prop['Alignment'] := frtaCenter// another way to access properties

v.Prop['Font.Style'] := 2

v.Memo.Add('Your text is: [Edit1.Text]')

Page.Objects.Add(v)

b := TfrBandView.Create// create MasterData band

b.SetBounds(0, 60, 0, 20)

b.BandType := btMasterData

b.Dataset := 'frDBDataSet1'// band's dataset

Page.Objects.Add(b)

v := TfrMemoView.Create// create data field

v.SetBounds(20, 60, 200, 16)

v.Memo.Add('[Table1."Company"]')

Page.Objects.Add(v)

frReport1.Pages.Add// create second page

Page := frReport1.Pages[1]

Page.PageType := ptDialog

Page.Width := 200

Page.Height := 170

Page.Caption := 'Test'

v := TfrEditControl.Create// create editbox

v.SetBounds(60, 50, 75, 21)

v.Name := 'Edit1'

Page.Objects.Add(v)

v := TfrButtonControl.Create// create button

v.SetBounds(60, 100, 75, 25)

TfrButtonControl(v).Button.Caption := 'Test!'

TfrButtonControl(v).Button.ModalResult := mrOk

Page.Objects.Add(v)

frReport1.ShowReport

end


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

原文地址: https://outofmemory.cn/bake/7917403.html

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

发表评论

登录后才能评论

评论列表(0条)

保存