最近遇到一个问题,就是要用Grid++做页面数据报表打印,但是翻了Grid++文档就是没有直接从页面上传数据的,都是要加载txt文档,填写txt文档的url。自己尝试直接页面上传JSON数据到Grid++控件中,竟然成功了,分享一下。

静态框赋值Report.ParameterByName("ProductName").AsString="";

1.html页面代码如下:

<html>

    <head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>会员资料报表</title>
<!--<script type="text/javascript" src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>-->
<script src="CreateControl.js" type="text/javascript"></script>
<script type="text/javascript">
function window_onload() {
var Data = "{\"Detail\": [" +
"{\"ProductID\": 2,\"ProductName\": \"牛奶\",\"UnitPrice\": 15.2,\"Quantity\": 20,\"Amount\": 304}," +
"{\"ProductID\": 16,\"ProductName\": \"饼干\",\"UnitPrice\": 13.9,\"Quantity\": 35,\"Amount\": 486.5}," +
"{\"ProductID\": 36,\"ProductName\": \"鱿鱼\",\"UnitPrice\": 15.2,\"Quantity\": 25,\"Amount\": 380}," +
"{\"ProductID\": 59,\"ProductName\": \"苏澳奶酪\",\"UnitPrice\": 44,\"Quantity\": 30,\"Amount\": 1320}" +
"]}";
var d = JSON.parse(Data);
ReportViewer.Stop(); var Report = ReportViewer.Report;
var Recordset = Report.DetailGrid.Recordset;
Report.PrepareLoadData();
for(var i = 0; i < d.Detail.length; i++) {
Recordset.Append();
Report.FieldByName("C1").AsString = d.Detail[i].ProductID;
Report.FieldByName("C2").AsString = d.Detail[i].ProductName;
Report.FieldByName("C3").AsString = d.Detail[i].UnitPrice;
Report.FieldByName("C4").AsString = d.Detail[i].Quantity;
Report.FieldByName("C5").AsString = d.Detail[i].Amount;
Recordset.Post();
} ReportViewer.Start();
}
</script>
</head> <body onload="window_onload()">
<script type="text/javascript">
CreatePrintViewerEx("100%", "100%", "www.grf", "", true, "");
</script>
</body> </html>

2.Grid++文件代码如下,txt保存改后缀为grf就可以:

{
"Version":"6.3.0.1",
"Font":{
"Name":"宋体",
"Size":90000,
"Weight":400,
"Charset":134
},
"Printer":{
},
"DetailGrid":{
"Recordset":{
"Field":[
{
"Name":"C1"
},
{
"Name":"C2"
},
{
"Name":"C3"
},
{
"Name":"C4"
},
{
"Name":"C5"
}
]
},
"Column":[
{
"Name":"Column1",
"Width":2.38
},
{
"Name":"Column2",
"Width":2.38
},
{
"Name":"Column3",
"Width":2.38
},
{
"Name":"Column4",
"Width":2.38
},
{
"Name":"Column5",
"Width":2.38
}
],
"ColumnContent":{
"Height":0.508,
"ColumnContentCell":[
{
"Column":"Column1",
"DataField":"C1"
},
{
"Column":"Column2",
"DataField":"C2"
},
{
"Column":"Column3",
"DataField":"C3"
},
{
"Column":"Column4",
"DataField":"C4"
},
{
"Column":"Column5",
"DataField":"C5"
}
]
},
"ColumnTitle":{
"Height":0.508,
"ColumnTitleCell":[
{
"GroupTitle":false,
"Column":"Column1",
"TextAlign":"MiddleCenter",
"Text":"ProductID"
},
{
"GroupTitle":false,
"Column":"Column2",
"TextAlign":"MiddleCenter",
"Text":"ProductName"
},
{
"GroupTitle":false,
"Column":"Column3",
"TextAlign":"MiddleCenter",
"Text":"UnitPrice"
},
{
"GroupTitle":false,
"Column":"Column4",
"TextAlign":"MiddleCenter",
"Text":"Quantity"
},
{
"GroupTitle":false,
"Column":"Column5",
"TextAlign":"MiddleCenter",
"Text":"Amount"
}
]
}
},
"Parameter":[
{
"Name":"ProductID"
},
{
"Name":"ProductName"
},
{
"Name":"UnitPrice"
},
{
"Name":"Quantity"
},
{
"Name":"Amount"
}
],
"ReportHeader":[
{
"Name":"ReportHeader1",
"Height":1.05833,
"Control":[
{
"Type":"StaticBox",
"Name":"StaticBox1",
"Left":5.79967,
"Top":0.1905,
"Width":2.794,
"Height":0.804333,
"Font":{
"Name":"宋体",
"Size":156000,
"Weight":400,
"Charset":134
},
"Text":"会员集料"
}
]
}
]
}

注意:grf文件中要赋值字段必须和js赋值一样多,不然就会报错显示不出来。

如果直接传入 json格式的话,加载数据用 ReportViewer.Report.LoadDataFromXML(jsonstr);

ReportViewer.Stop();

ReportViewer.Report.LoadDataFromXML(jsonstr);

//启动报表运行
ReportViewer.Start();

若jsonstr中用到动态加载的数据(记录集)那上述加载的不显示记录集,但是若是生成txt文件加载能显示记录集。不知道是什么什么原因引起的?

grid++json页面数据传入的更多相关文章

  1. (Spring4 json入门)Spring4+SpringMVC+页面数据发送与接收(json格式)

    jar包(Maven仓库): Spring4 jar包(Maven仓库): 在测试过程中我查看了网上的一些教程,但是那些教程都是在Spring3环境下的,Spring3和Spring4解析json需要 ...

  2. 在JSP页面中输出JSON格式数据

    JSON-taglib是一套使在JSP页面中输出JSON格式数据的标签库. JSON-taglib主页: http://json-taglib.sourceforge.net/index.html J ...

  3. django学习-16.返回给前端页面数据为json数据类型的3种方案

    目录结构 1.前言 2.JsonResponse类的源码简单分析 2.1.JsonResponse类的源码如下所示 2.2.JsonResponse类的构造函数里的每个入参的大概含义和作用 3.[方案 ...

  4. ASP.NET MVC搭建项目后台UI框架—8、将View中选择的数据行中的部分数据传入到Controller中

    目录 ASP.NET MVC搭建项目后台UI框架—1.后台主框架 ASP.NET MVC搭建项目后台UI框架—2.菜单特效 ASP.NET MVC搭建项目后台UI框架—3.面板折叠和展开 ASP.NE ...

  5. ligerui_实际项目_003:form中添加数据,表格(grid)里面显示,最后将表格(grid)里的数据提交到servlet

    实现效果: "Form"中填写数据,向本页"Grid"中添加数据,转换成Json数据提交,计算总和,Grid文本框可编辑,排序 图片效果: 总结: //disp ...

  6. 通过Jquery中Ajax获取json文件数据

    1. JSON(JavaScript Object Notation): javaScript对象表示法: 是存储和交换文本信息的语法,比xml更小,更快,更易解析. 2. JSON基本书写格式 : ...

  7. ajax接收遍历处理json格式数据

    ajax在前后端的交互中应用非常广泛,通过请求后台接口接收处理json格式数据展现在前端页面. 下面我们来简单用 ajax在本地做一个接收并处理json的小例子 首先我们要新建一个叫做data的jso ...

  8. View中选择的数据行中的部分数据传入到Controller中

    将View中选择的数据行中的部分数据传入到Controller中   ASP.NET MVC搭建项目后台UI框架—1.后台主框架 ASP.NET MVC搭建项目后台UI框架—2.菜单特效 ASP.NE ...

  9. JqGrid 自定义子表格 及 自定义Json 格式数据不展示

    项目第一次使用JqGrid ,发现功能强大,但由于对他不熟悉,也没有少走弯路,记录一下. 1.引用 <link href="~/Scripts/JqGrid/jqgrid/css/ui ...

随机推荐

  1. 大数据学习--day11(抽象类、接口、equals、compareTo)

    抽象类.接口.equals.compareTo 什么是抽象方法  ?     区分于正常的方法       1.使用了 abstract 修饰符          该修饰符修饰方法 则该方法就是抽象方 ...

  2. MPP调研

    一.MMP数据库 MPP是massively parallel processing,一般指使用多个SQL数据库节点搭建的数据仓库系统.执行查询的时候,查询可以分散到多个SQL数据库节点上执行,然后汇 ...

  3. 串口UART学习笔记(一)

    买了一个开发板学习FPGA,找到的各种东西就记录在这个博客里了,同时也方便把自己不会的问题找到的结果记录一下,都是自己手打,所以可能说的话不那么严谨,不那么精准,看到的人要带着自己的思考去看,记住尽信 ...

  4. Tomcat7 调优及 JVM 参数优化

      Tomcat 的缺省配置是不能稳定长期运行的,也就是不适合生产环境,它会死机,让你不断重新启动,甚至在午夜时分唤醒你.对于操作系统优化来说,是尽可能的增大可使用的内存容量.提高CPU 的频率,保证 ...

  5. spark2.2 从入门到精通 视频教程 百度云网盘下载地址

    spark2.2 从入门到精通 视频教程 百度云网盘下载地址 链接:https://pan.baidu.com/s/1sm2Jdmt 密码:rdea

  6. 20145209刘一阳《JAVA程序设计》第1周学习总结

    20145209刘一阳<JAVA程序设计>第1周学习总结 本周任务 了解Java基础知识 了解JVM.JRE与JDK,并下载.安装.测试JDK 了解PATH.CLASSPATH.SOURC ...

  7. 《Java I/O 从0到1》 - 第Ⅰ滴血 File

    前言 File 类的介绍主要会依据<Java 编程思想>以及官网API .相信大家在日常工作中,肯定会遇到文件流的读取等操作,但是在搜索过程中,并没有找到一个介绍的很简洁明了的文章.因此, ...

  8. android学习十 ActionBar

    1.api level大于等于11 支持,或者使用兼容库,但兼容库的问题很多. 2.一个操作栏属于一个活动,并具有其生命周期 3.操作栏分3类:a.选项卡操作栏,b.列表操作栏,c.标准操作栏 4.获 ...

  9. RSA加密通信小结(一)

    一.背景描述 帮朋友完成相关方案的改进. 二.计划与方案 1.加密方式采用RSA 1024加密. 2.发送与接收都采用RSA加密,采用两套不同的密钥. 3.统一的加解码函数.(此处除了对于传输数据进行 ...

  10. [CF19B]Checkout Assistant

    题目描述 Bob 来到一家现购自运商店,将 n 件商品放入了他的手推车,然后到收银台 付款.每件商品由它的价格 pi 和收银员扫描它的时间 ti 秒定义.当收银员正在扫 描某件商品时,Bob 可以从他 ...