`
huang_xiaok
  • 浏览: 95910 次
  • 性别: Icon_minigender_1
  • 来自: 成都
博客专栏
90a30fc4-e2b0-37bf-a450-86cdba0caacc
Fusioncharts中...
浏览量:17109
文章分类
社区版块
存档分类

FastReport在线报表设计器工作原理

阅读更多

FastReport Online Designer工作原理

工作原理

Online Designer可以与FastReport.Net的Win+Web版,专业版,企业版中的FastReport.Net WebReport对象一起使用。
在线设计器可以改变报表的报告和事件处理程序的脚本,但默认情况下,出于安全原因,该选项被禁用。该功能可在WebReport对象的属性中来启用。当这个选项在脚本内容中被禁用,之后的设计将被忽略被原来的文本替换。此外,为了安全起见,我们不发送Designer中内置的连接字符串。

  1.  WebReport对象在ASP.NET页面加载。
  2. WebReport发送一个Ajax请求到FastReport的处理程序,以获得在iframe环境的在线设计器容器(报表设计器的代码被放置在应用程序站点的一个单独的文件夹里)。
  3.  当在线设计器在浏览器中加载,它发送AJAX查询到处理程序以获取报表模板(getReportByUUIDFrom)。
  4. 服务器应用程序准备并发送一个报表模板到在线设计器。
  5. 设计器可以请求预览当前报表,通过发送请求到服务器中的处理器(makePreviewByUUID)。服务器应用程序运行收到的报表,并以html返回结果。然后设计器在预览窗口显示出来,该预览可以打印或以多种格式导出。
  6. 设计器可以通过带有报表内容的AJAX查询(saveReportByUUIDTo)将报表保存在服务器中。服务器应用程序准备接收数据并发送请求到应用程序的回拨页面。

WebReport对象存在服务器缓存中的时间有限,然后从存储器中被删除。对象在内存中的保存时间由WebReport.CacheDelay属性决定,以分钟计算(默认情况下是60)。

 

>>FastREport Online Designer立即在线体验   

 

Online Designer的设置手册:

1. 首先,从安装路径复制带有在线设计器的文件夹(默认:WebReportDesigner)到Web应用程序根的目录。

2.然后检查WebReport功能所需的处理程序设置文件web.config:
IIS6:

< system.web>
…
< httpHandlers>
< add path="FastReport.Export.axd" verb="*" type="FastReport.Web.Handlers.WebExport"/>
< /httpHandlers>
< /system.web>

IIS7:

< system.webServer>
< handlers>
< add name="FastReportHandler" path="FastReport.Export.axd" verb="*"
type="FastReport.Web.Handlers.WebExport"/>
< /handlers>
< /system.webServer>

3.然后检查Web/ ReportDesigner/scripts/ cofig-data.js文件中的报表设计器的设置:

'getReportByUUIDFrom': '/FastReport.Export.axd?getReport=',
'saveReportByUUIDTo': '/FastReport.Export.axd?putReport=',
'makePreviewByUUID': '/FastReport.Export.axd?makePreview=',

这些参数应包含FastReport处理器相对于网站的根目录的路径。如果路径与所写不同,必须要纠正,例如:

'getReportByUUIDFrom': '/oursite/FastReport.Export.axd?getReport=',

4. 当WebReport用于ASPX标记中,你需要将对象拖拽到页面上并设置其属性。对于MVC,你需要在控制器中写入代码:

4.1. 启用报表的编辑功能:

webReport.DesignReport = true;

4.2. 设置的唯一对象名称WebReport,必要时可以在回调页面设置可进一步可区分的对象名称:

webReport.ID = "MyDesignReport1";

4.3. 在在线设计器中禁止报表的脚本编辑,或者如果你想启用编辑功能 - 设置为true即可:

webReport.DesignScriptCode = false;

4.4. 指定报表设计器的主文件的路径,将带有设计器的文件夹复制到网页应用程序的适当位置:

webReport.DesignerPath = "~/WebReportDesigner/index.html";

4.5. 设置网页上的回调页面路径,该调用在报表被保存到临时文件夹后执行。例如:MVC的视图路径(你需要专门在控制器中创建一个新的相同名称的空白视图来执行回调):

webReport.DesignerSaveCallBack = "~/Home/SaveDesignedReport";

或ASPX示例:

webReport.DesignerSaveCallBack = "~/DesignerCallBack.aspx";

下面是GET请求发送的参数:

reportID="here is webReport.ID"&reportUUID="here is saved report file name"

在这儿的reportID对应WebReport.ID对象,并且名为reportUUID的文件被存储在临时文件夹中。开发人员执行进一步的操作,将报表保存到磁盘,数据库或云存储中。在保存后,名为reportUUID的临时文件必须从临时文件夹删除。也可以使用POST查询来回调报表文件的回拨转移,性情见下面的4.6。
回调页的示例代码如下。

4.6设置在执行回调前用来保存编辑后的报表的临时文件夹的路径,该文件夹必须设置写入权限:

webReport.DesignerSavePath = "~/App_Data/DesignedReports";

你也可以设置属性webReport.DesignerSavePath为空字符串以激活POST模式。

4.7. 在服务器缓存中设置WebReport对象的生命周期,以分为单位,默认时间为60:

webReport.CacheDelay = 120;

5.创建一个回调页面来保存编辑后的报表。

5.1. 如果你使用的是ASPX布局,你需要在Page_Load事件处理程序添加以下代码:

protected void Page_Load(object sender, EventArgs e)
{
string reportID = Request.QueryString["reportID"];
string reportUUID = Request.QueryString["reportUUID"];
// 1. ReportID value identifies the object that caused the designer. The value
corresponds to the property webReport.ID, which was filled by a call of the designer.
// 2. Combining the path that we have filled in the property webReport.DesignerSavePath,
and the resulting reportUUID, we get the path to the temporary file with edited report.
// 3. This file can be opened and saved in the right place for us to drive or the cloud
or in a database.
// 4. The temporary file must be deleted after saving.
}

5.2. 在MVC标记中,你需要在控制器和空视图中创建一个方法。控制器中的代码如下:

public ActionResult SaveDesignedReport(string reportID, string reportUUID)
{
// 1. ReportID value identifies the object that caused the designer. The value
corresponds to the property webReport.ID, which was filled by a call of the designer.
// 2. Combining the path that we have filled in the property webReport.DesignerSavePath,
and the resulting reportUUID, we get the path to the temporary file with edited report.
// 3. This file can be opened and saved in the right place for us to drive or the cloud
or in a database.
// 4. The temporary file must be deleted after saving.
return View();
}

在处理POST传送时需要在控制器前添加[HttpPost] ,如下:

[HttpPost]
 public ActionResult SaveDesignedReport(string reportID, string reportUUID)
{
...
}

5.3. 你可以通过webReport.DesignerLocale=“EN”属性使用在线设计器的任何本地化版本; ("en" 可以更改为其它任何支持的语言,支持的语言的完整列表存放在设计器分发包中的文件中)。
当创建回调页保存报表的处理器时应特别注意过滤和检查收到的Get请求的参数。务必确认它们为null。
在线设计器对象的最好放置地方是在页面的底部。推荐的宽度为100%或至少930px像素。对象的高度建议设置至少600px。

 

1
2
分享到:
评论

相关推荐

    FastReport快速报表系统4用户使用手册

    报表系统通常由设计器、引擎和组件三部分构成,FastReport以其易用性、灵活性和强大的自定义能力而受到青睐。 接着,手册将深入探讨FastReport的安装与配置过程。用户将学习如何下载并安装软件,设置环境变量,以及...

    FastReport报告模板设计器

    FastReport的核心在于TfrxReport组件,这是一个可视化的报表设计器,允许用户通过拖放操作添加各种报表元素,如文本、图像、表格、图表等。TfrxReport提供了大量的预定义样式和格式选项,使得报表设计工作变得直观而...

    FastReport 独立设计器源代码

    用户可以直接运行这个文件来使用报表设计器。 8. **Main.pas**:这是Pascal源代码文件,包含了Main模块的源代码。这是理解设计器工作原理的关键,包括如何加载报表、如何提供编辑功能以及如何与FastReport引擎交互...

    支持D6的FastReport2.45 (报表控件)

    FastReport提供了一个直观的拖放式报表设计器,用户可以通过简单的操作创建复杂的报表布局,包括表格、图表、图像、文本框等各种元素。同时,它还支持自定义脚本,增强了报表的动态性和灵活性。 4. **数据源连接**...

    C#调用FastReport报表的方法(可不是企业版的FastReport)

    首先,让我们了解FastReport的基本概念和它的工作原理。 FastReport是一个基于Windows的报表开发组件,它支持多种编程语言,包括C#。用户可以通过其直观的设计器创建复杂的报表模板,这些模板可以包含文本、图片、...

    FastReport 报表使用的Delphi源代码例子..rar

    4. **报表设计**: FastReport提供了图形化的报表设计器,允许开发者拖放组件,设定布局,调整字体样式,添加计算公式等。在Delphi中,这些设计可以直接在代码中完成,也可以通过单独的报表设计器工具。 5. **数据...

    好用的报表设计器+源代码

    FastReport是一款非常流行的报表设计器,以其高效、易用和功能强大著称。这款工具广泛应用于数据分析、商业智能和数据可视化领域,帮助用户快速构建定制化的数据查询和动态报表。 FastReport的核心特点包括: 1. *...

    FASTREPORT 5.3.16 for delphi 10

    FastReport提供了一个直观的报表设计器,允许用户通过拖放控件、设置样式和应用过滤器来构建报表。它支持多种数据源,包括数据库、XML文件、JSON等,并且可以生成各种类型的报表,如表格、图表、图像、条形码等。 ...

    FastReport 4.9.20 中文菜单显示不全或者乱码解决方法

    FastReport是一款强大的报表设计和打印组件,它支持多种编程环境,如Delphi和C++Builder。在FastReport中,菜单项通常存储在资源文件中,这些文件包含了程序界面的字符串和图形资源。如果资源文件中的字符编码与系统...

    动态给fastreport报表中的变量赋值

    在IT行业中,报表工具是数据分析和展示...总之,动态给FastReport报表中的变量赋值是一项常见的任务,涉及到了报表设计、脚本编写和事件处理等多个方面。理解并熟练运用这些技巧,能够极大地提升报表的灵活性和功能性。

    fastreport 报表测试打印例子

    1. **报表设计**:在FastReport的设计器中,你可以创建新的报表模板,添加各种数据字段、图形和文本,然后设置样式和格式。 2. **数据绑定**:FastReport支持与数据库或其他数据源连接,使得报表可以动态地从数据源...

    FastReport 打印报表

    其主要特点包括直观的报表设计器、强大的数据处理能力、灵活的预览和打印选项,以及支持多种格式导出(如PDF、Excel、HTML等)。 二、报表设计 1. 设计界面:FastReport提供了一个所见即所得的设计界面,允许用户...

    FastReport for delphi 10.3

    FastReport的报表设计器允许开发者通过拖放方式创建报表模板,包括表格、图表、图片、文本等元素。此外,可以使用内置的脚本语言来实现复杂的计算和逻辑控制。 4. **数据绑定** 快速连接到各种数据源是FastReport...

    fastreport控件帮助与开发文档

    - 提供了直观的报表设计器,允许非程序员也能设计出专业级别的报表。 2. **控件系统** - FastReport提供了多种内置控件,如文本框、表格、图表、图像、子报表等,开发者可以根据需求自由组合和布局。 - 控件具有...

    FastReport_程序员手册.zip

    理解自定义组件的工作原理,以及如何将它们集成到报表设计中。 8. **多语言支持**:FastReport支持多语言环境,这对于开发全球化应用至关重要。学习如何配置和使用多语言资源,使报表适应不同的语言需求。 9. **...

    FastReport v5.1.9 Full Source

    它提供了直观的报表设计器,允许用户通过拖放操作创建复杂的报表结构,包括表格、图表、文本、图像等各种元素。此外,FastReport还支持预览、打印、导出等多种功能,能够满足企业级应用的报表需求。 二、FastReport...

    FastReport11企业版源码版

    FastReport11是一款强大的报表设计和开发工具,尤其在企业级应用中表现出色。它专为Delphi开发者设计,提供了一整套用于创建、编辑和预览报表的解决方案。源码版的提供意味着用户可以深入理解其内部机制,并根据自身...

    FastReport.Net v1.2.47

    1. **丰富的报表设计环境**:FastReport.Net提供了一个类似于Word的可视化报表设计器,用户可以直接在界面上拖放各种报表元素,如文本框、表格、图表、图像等,创建复杂的布局。此外,支持预览功能,可以在设计时...

    FastReport.V4.9.FullSource.For.Delphi2010.安装版(有序列号)

    1. **报表设计**:FastReport提供了直观的报表设计器,允许开发者通过拖放操作创建复杂的报表布局。它支持多种报表元素,如文本框、图像、表格、图表、数据库字段等,可以轻松构建多页、分组和交叉表等复杂报表。 2...

    FastReport 3.0 Exe Demo

    1. **报表设计**:FastReport 提供了一个直观的报表设计器,允许用户通过拖放操作创建和编辑报表模板。在演示中,用户可以了解如何添加表格、图表、图片、文本框等元素,以及调整它们的布局和格式。 2. **数据绑定*...

Global site tag (gtag.js) - Google Analytics