Grid++Report实现Web报表

简介:
     最早接触报表是在机房收费系统中,那时候还是在C/S模式下,所以可以直接在窗体上添加报表。而现在,已经转战B/S模式下。本篇博客将介绍如何实现Web报表。
    【需求说明】
    在我们的生活中,表格也是无处不在,清晰而有条理。在这次的项目中,也需要 在浏览器中直接打印报表(非IE打印)与导出报表 ,让用户使用更安全。
    【开发环境】
    整个项目是B/S模式下的,前台采用的MVC模式。开发中的软件:VS2012,Grid++Report5.0
    【实现步骤】
    1.首先,我们可以先在报表软件下制作好自己需要的模板。在此,就不再写下详细步骤。参考博客推荐:制作报表详细教程
    2. 导入 Grid++Report官方提供三个文件,分别是: ReportData.cs、MssqlReportData.cs、CreateControl.js
    3.导入制作好的报表模板文件
    4.在Controller下添加控制器,VS2012会自动帮我们生成一些代码。
    5.在生成的代码中,选中ActionResult,直接选择添加视图。
    6.因为我们直接浏览的网页,要使报表在网页下显示,还需要添加一个aspx视图页。在aspx页面加载的时候,就从数据库中插叙,获取报表所需要显示的内容,数据格式规定为XML数据。
    【具体代码】
Controller:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
 
namespace LFBidSystem.Controllers
{
    public class RaterSignController : Controller
    {
        //
        // GET: /Test/
 
        public ActionResult RaterSign()
        {
            return View();
        }
 
    }
}
View:
@{
    ViewBag.Title = "RaterSign";
}
<script src="../../Scripts/CreateControl.js" type="text/javascript"></script>
<script type="text/javascript">
    CreateDisplayViewerEx("100%", "100%", "../../Content/grf/LFCGPW.grf", "", true, "");
</script>
aspx:
<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage" %>
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 
<html xmlns="http://www.w3.org/1999/xhtml">
<%@ Page Language="C#" %> 
<script runat="server">  
    protected void Page_Load(object sender, EventArgs e) 
    {
        string QuerySQL = string.Format("select * from T_SpecialistInfo");
        SqlXMLReportData.GenDetailData(this, QuerySQL); 
    }
 
</script> 
       【实现效果】
    【问题解决】
    常见问题1:网页上不显示报表。
    这个问题与Grid++report软件、浏览器有着直接关系。之前用的6.0的Report,后来问了问负责维护人事系统的,他们用的都是5.0的Report。所以,我又重新安装了。另外,这个软件需要安装插件,我安装的是5.8的插件。
    常见问题2:报表模板不能正常访问。
    具体页面如下:
    这是因为IIS7必须定义文件扩展名对应的 MIMIE 类型才能下载这种类型的文件。具体解决方案参考博客: MVC模式下报表问题解决
   常见问题3:页面报表显示不完整。
    这主要是网页布局问题,可以在网页布局代码上添加如下代码,报表就可以完整显示了。
 <style type="text/css">
html,body {
  margin:0;
  height:100%;
}
</style>  
    【学习心得】
    在这一实现过程,还是遇到了一系列的问题。之前都是在网上直接搜博客,博客也大都是提高班师哥师姐写的,后来遇到了其他问题,连官方提供的三个文件里封装好的代码,我都翻来翻去看了好几遍, 也没有得到解决方案。
    就在我不知所措的时候, 我看到了电脑桌面Grid++Report软件的帮助文档。才发现,原来我遇到的这些问题,帮助文档中都有说明。   
    所以说,这不禁让我想到了米老师语录中的那句话:多看帮助,少走弯路。有了这一次走投无路的情况下,才想起来的“帮助”,以后不管再遇见什么东西,都不会再忘记有“帮助”这一好东西。        



目录
相关文章
|
1月前
|
编解码 前端开发 开发者
构建响应式Web界面:Flexbox与Grid布局的深度对比
【4月更文挑战第4天】 在现代前端开发中,构建灵活且响应式的用户界面是至关重要的。随着移动设备浏览量的增加,能够适应不同屏幕尺寸和分辨率的布局技术变得必不可少。Flexbox和Grid是CSS提供的两种强大的布局机制,它们各自以独特的方式解决了响应式设计的挑战。本文将深入探讨Flexbox和Grid的核心概念、使用场景和性能考量,为开发者提供在面对不同布局需求时做出明智选择的依据。
|
1月前
|
前端开发 开发者 UED
构建响应式Web界面:Flexbox与Grid布局的深度解析
【2月更文挑战第15天】在现代前端开发中,创建灵活且响应式的用户界面至关重要。本文深入探讨了两种强大的CSS布局模块——Flexbox和Grid,它们如何帮助我们实现复杂布局的挑战。通过比较这两种技术的特点、适用场景及其兼容性问题,我们将理解如何有效地将它们应用于日常开发中,以提升界面设计的灵活性和用户体验。
|
1月前
|
前端开发 开发者 UED
构建响应式Web界面:Flexbox与Grid布局的深度解析
【2月更文挑战第28天】 在现代前端开发中,打造灵活且适应不同屏幕尺寸的用户界面是至关重要的。随着移动设备的普及,响应式设计已经成为网页制作不可或缺的一部分。本文将深入探讨两种强大的CSS布局模块——Flexbox和Grid,它们如何简化布局创建过程,并赋予设计师更大的灵活性去构建动态和流畅的响应式界面。通过对这两种技术的比较、使用场景分析以及代码示例,读者将能够更好地理解何时以及如何使用这些工具来提升前端项目的质量和效率。
39 0
|
1月前
|
前端开发 UED 开发者
构建响应式Web界面:Flexbox与Grid的实战应用
【2月更文挑战第17天】 在现代网页设计中,创建能够适应不同屏幕尺寸的响应式界面是至关重要的。随着移动设备的普及,传统的固定布局已无法满足用户体验的需求。本文将深入探讨CSS中的两种强大的布局模式——Flexbox和Grid,它们如何帮助我们快速实现灵活且高效的响应式设计。通过实例分析,我们将理解这两种技术的工作原理、适用场景以及它们如何相互补充,共同构建出流畅的用户体验。
|
1月前
|
前端开发 开发者 UED
构建响应式Web界面:Flexbox与Grid布局的深度解析
【2月更文挑战第14天】 在现代前端开发中,为了适配不同设备并提供流畅的用户体验,理解并掌握响应式设计变得至关重要。本文将深入探讨两种主要的CSS布局模式——Flexbox和Grid。我们将剖析它们的核心概念、使用场景以及如何结合它们来创建复杂且灵活的响应式界面。通过实例演示和对比分析,帮助开发者提升界面布局技能,从而设计出能够适应多变设备的Web界面。
|
Web App开发 测试技术 调度
浩若烟海事半功倍|利用Docker容器技术构建自动化分布式web测试集群Selenium Grid
“世界上有那么多城市,城市里有那么多的酒馆,可她,却偏偏走进了我的.....”,这是电影《卡萨布拉卡》中的一句著名独白,投射到现实生活中,与之类似的情况不胜枚举,这世界上有那么多的系统,系统中有那么多的浏览器,在只有一台测试机的前提下,难道我们只能排队一个一个地做兼容性测试吗?有没有效率更高的方法呢?为此我们提出一个更高效的解决方案:使用Docker+Selenium Grid。
浩若烟海事半功倍|利用Docker容器技术构建自动化分布式web测试集群Selenium Grid
|
Web App开发 测试技术 Docker
Docker与Web自动化测试:一键创建Selenium Grid集群
Docker的容器技术的优秀特性,例如秒级启动、应用隔离、良好的可移植性等,可以在DevOps中大显身手,并推动持续集成,持续交付等理念落地。今天我们就将结合Selenium Grid来介绍Docker在自动化测试中的使用场景。
13659 1
|
Web App开发 机器人 测试技术
Docker+Selenium Grid构建分布式Web测试环境
一. 简介 当前容器技术不断发展,越来越多的应用部署到容器上,改变了软件部署的方式。因此我们考虑利用Docker容器技术并且结合Selenium Grid来搭建一套Web分布式测试集群。
2214 0
|
2天前
|
前端开发 JavaScript API
探索现代Web开发中的动态数据交互——前端与后端整合实战
本文探讨了现代Web开发中前端与后端整合的关键技术点,通过实际案例演示了如何利用JavaScript和Node.js实现动态数据交互,全面解析从数据请求到响应的全过程。