当前位置: 棋牌电玩游戏平台 > 游戏平台 > 正文

怎么开创移动页面应用程序

时间:2019-08-12 21:24来源:游戏平台
传统桌面报表设计器是指需要在系统中安装,并通过桌面快捷方式打开的设计器。根据不同的系统,需要安装对应的设计器软件,同时在哪个设备上安装,就只能在哪个设备上使用。

传统桌面报表设计器是指需要在系统中安装,并通过桌面快捷方式打开的设计器。根据不同的系统,需要安装对应的设计器软件,同时在哪个设备上安装,就只能在哪个设备上使用。

FastReport Online Designer是FastReport.Net的网页版。

概述

移动设备 — — 智能手机、 功能手机和平板电脑 — — 继续流行的手段来访问网站的方式。对于许多 web 开发人员和面向 web 的企业,这意味着它是越来越重要,为使用这些设备的用户提供一个好的用户体验。

FastReport Online Designer工作原理

图片 1

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立即在线体验   

 

而在线报表设计器则是指无需安装,通过各类设备的浏览器就能在线使用的报表设计器,完全破除了桌面设备、移动设备等不同平台的限制。

>>FastREport Online Designer在线体验   

如何早期版本的 ASP.NET 支持移动浏览器

ASP.NET 版本 2.0 至 3.5 包括ASP.NET 移动控件: 一套用于移动设备在System.Web.Mobile.dll程序集和System.Web.UI.MobileControls命名空间中的服务器控件。这个程序集存在 ASP.NET 4 中,但它已被否决。开发人员应尽量将迁移到更先进的方法,在本文所述的那些。

为什么 ASP.NET 移动控件已标记为已过时的原因是他们的设计围绕手机共有的周围 2005年及更早版本。控件是主要设计来呈现 cHTML 或 WML 标记 (而不是普通的 HTML) 为 WAP 浏览器的那个时代。但 WAP、 WML 和 cHTML 不再是目前大多数项目,因为 HTML 现已成为移动和桌面浏览器一样的无处不在的标记语言。

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。

 

本文通过对比两种设计器主要特性及使用场景,旨在说明在线报表设计器对于报表用户的价值所在。

>>FastREport.Net最新版免费试用下载

今天支持移动设备的挑战

即使移动浏览器现在几乎普遍支持 HTML,你将仍然面临许多挑战,致力于创造伟大的移动浏览体验的时候:

  • 屏幕大小-移动设备不同的形式,和他们的屏幕往往远远小于桌面显示器。因此,您可能需要为他们设计完全不同的页面布局。
  • 输入方法— — 某些设备有键盘、 一些有铁笔,其他人使用触摸。你可能需要考虑多个导航机制和数据输入的方法。
  • 标准法规遵从性— — 许多移动浏览器不支持最新的 HTML,CSS 或 JavaScript 标准。
  • 带宽— — 手机网络性能差别非常大,而且国内一些运营商最终以兆字节来收费。因此没有万能的解决方案;你的应用程序将不得不考虑根据不能的访问设备来定义行为和其外观

通常最初接近第一次的移动浏览器支持的开发者认为它只需要支持最新和最先进的智能手机 (例如,Windows Phone 10、 iPhone 或安卓系统),也许,因为开发人员经常亲自持有此类设备。然而,低端的移动设备仍然是非常受欢迎,和它们的用户使用低端来浏览网页,您的业务将需要决定哪些范围的设备支持,考虑其可能的客户。如果您正在构建豪华健康水疗在线手册,你可能决定业务只针对高端智能手机产品,而如果您正在创建一家电影院门票的预订系统,你可能需要考虑为游客提供更强大的功能手机。

 

FastREport Online Designer是一个RIA应用程序(富互联网应用程序),允许你从任何拥有先进网页浏览器的任何设备上运行它(在线报表设计器可以在主流浏览器的最新两个版本上运行(Chrome,火狐,Opera,Safari以及IE=) )。但是,除去这些跨平台的优点,在线版本在便利性和功能方面还是稍稍次于桌面版本。

常见的解决方案

我们到达 ASP.NET Web 窗体或 MVC 的具体技术细节之前,请注意,web 开发人员一般有三个主要的选项用来支持移动浏览器:

  1. 什么也不做只需创建一个标准的、 面向桌面的 web 应用程序,即可依靠移动浏览器,使其可以接受。
  • 优势: 它是最便宜的选择,实现和维护 — — 无需额外工作
  • 缺点: 给出了最糟糕的最终用户体验:
    • 最新的智能手机可能呈现和桌面浏览器一样的html展现效果,但用户仍将被迫,缩放和滚动水平并垂直操作您在小屏幕上的内容。这是远远不是理想的操作。
    • 较旧的设备和功能手机可能无法令人满意的方式呈现您的标记。
    • 即使是在最新的平板电脑设备 (其屏幕可以与笔记本电脑屏幕一样大),也存在两者完全不相同的操作交互方式。触摸式输入最适用于较大的按钮,那里是没有办法将鼠标光标悬停在飞出菜单。
  1. 解决客户端的问题— —现在可以小心使用 CSS 和渐进增强您可以创建标记、 样式和适应无论浏览器运行它们的脚本。例如,用 CSS3 媒体查询,您可以创建在设备屏幕的窄比选定的阈值变成一个单一列布局的多列布局。
  • 优势:
    • 优化渲染为特定设备在使用中,即使对于未知的未来设备根据他们无论屏幕和输入的特征有
    • 很容易让你在所有设备类型 — — 最小重复代码共享服务器端逻辑
  • 缺点:
    • 移动设备有别于桌面设备,您可能真的希望移动页必须完全不同于你桌面的页面,显示不同的信息。这种变化可能效率不高或不可能实现通过 CSS单独操作,尤其考虑到如何不一致旧设备对CSS规则的解释,特别是 CSS 3 属性。
    • 没有提供的不同的服务器端逻辑和工作为不同的设备支持。例如,不能通过单纯的css实现一个简单的购物车提供给移动用户使用
    • 低效带宽使用。你的服务器可能需要传输的标记和样式应用到所有可能的设备,即使目标设备只会使用该信息的子集。
  1. 解决服务器上的问题— —如果您的服务器知道什么设备正在访问它 — — 或是该设备的属性,如:屏幕大小和输入方式 等特性,无论是移动设备 — — 它可以运行不同的逻辑和输出不同的 HTML 标记,通过服务端视图渲染的方式
  • 优势:
    • 最大的灵活性。有没有限制多少,你可以改变你的服务器端逻辑的手机或优化您的标记所需的,特定于设备的布局。
    • 高效的带宽使用。你只需要传送的标记和样式信息的目标设备将使用。
  • 缺点:
    • 代码的重复(如,让你创建你的 Web Forms pages或 MVC views相似,但略有不同的副本)。在可能的情况,你会分解出公共逻辑进入下一层或服务,但你的UI代码或HTML标签某些部分可能必须被复制,然后保持平行。
    • 设备检测是有可能出现无法识别的情况。它需要将列表或数据库的已知的设备类型及特征 (但它不会总是最新的完美数据),也不能保证准确地匹配每个传入的请求。本文档稍后介绍一些选项和易犯的错误。

为了获得最佳效果,大多数开发者发现他们需要结合选项(2)和(3)。在客户端上使用CSS或JavaScript的甚至轻微的文体差异最好容纳,而在数据主要区别,工作流程,或标记是最有效在服务器端代码执行。

编辑:游戏平台 本文来源:怎么开创移动页面应用程序

关键词: .NET技术 控件开发 报表知识