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

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

1.html页面代码如下:

  1. <html>
  2.  
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  5. <title>会员资料报表</title>
  6. <!--<script type="text/javascript" src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>-->
  7. <script src="CreateControl.js" type="text/javascript"></script>
  8. <script type="text/javascript">
  9. function window_onload() {
  10. var Data = "{\"Detail\": [" +
  11. "{\"ProductID\": 2,\"ProductName\": \"牛奶\",\"UnitPrice\": 15.2,\"Quantity\": 20,\"Amount\": 304}," +
  12. "{\"ProductID\": 16,\"ProductName\": \"饼干\",\"UnitPrice\": 13.9,\"Quantity\": 35,\"Amount\": 486.5}," +
  13. "{\"ProductID\": 36,\"ProductName\": \"鱿鱼\",\"UnitPrice\": 15.2,\"Quantity\": 25,\"Amount\": 380}," +
  14. "{\"ProductID\": 59,\"ProductName\": \"苏澳奶酪\",\"UnitPrice\": 44,\"Quantity\": 30,\"Amount\": 1320}" +
  15. "]}";
  16. var d = JSON.parse(Data);
  17. ReportViewer.Stop();
  18.  
  19. var Report = ReportViewer.Report;
  20. var Recordset = Report.DetailGrid.Recordset;
  21. Report.PrepareLoadData();
  22. for(var i = 0; i < d.Detail.length; i++) {
  23. Recordset.Append();
  24. Report.FieldByName("C1").AsString = d.Detail[i].ProductID;
  25. Report.FieldByName("C2").AsString = d.Detail[i].ProductName;
  26. Report.FieldByName("C3").AsString = d.Detail[i].UnitPrice;
  27. Report.FieldByName("C4").AsString = d.Detail[i].Quantity;
  28. Report.FieldByName("C5").AsString = d.Detail[i].Amount;
  29. Recordset.Post();
  30. }
  31.  
  32. ReportViewer.Start();
  33. }
  34. </script>
  35. </head>
  36.  
  37. <body onload="window_onload()">
  38. <script type="text/javascript">
  39. CreatePrintViewerEx("100%", "100%", "www.grf", "", true, "");
  40. </script>
  41. </body>
  42.  
  43. </html>

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

  1. {
  2. "Version":"6.3.0.1",
  3. "Font":{
  4. "Name":"宋体",
  5. "Size":90000,
  6. "Weight":400,
  7. "Charset":134
  8. },
  9. "Printer":{
  10. },
  11. "DetailGrid":{
  12. "Recordset":{
  13. "Field":[
  14. {
  15. "Name":"C1"
  16. },
  17. {
  18. "Name":"C2"
  19. },
  20. {
  21. "Name":"C3"
  22. },
  23. {
  24. "Name":"C4"
  25. },
  26. {
  27. "Name":"C5"
  28. }
  29. ]
  30. },
  31. "Column":[
  32. {
  33. "Name":"Column1",
  34. "Width":2.38
  35. },
  36. {
  37. "Name":"Column2",
  38. "Width":2.38
  39. },
  40. {
  41. "Name":"Column3",
  42. "Width":2.38
  43. },
  44. {
  45. "Name":"Column4",
  46. "Width":2.38
  47. },
  48. {
  49. "Name":"Column5",
  50. "Width":2.38
  51. }
  52. ],
  53. "ColumnContent":{
  54. "Height":0.508,
  55. "ColumnContentCell":[
  56. {
  57. "Column":"Column1",
  58. "DataField":"C1"
  59. },
  60. {
  61. "Column":"Column2",
  62. "DataField":"C2"
  63. },
  64. {
  65. "Column":"Column3",
  66. "DataField":"C3"
  67. },
  68. {
  69. "Column":"Column4",
  70. "DataField":"C4"
  71. },
  72. {
  73. "Column":"Column5",
  74. "DataField":"C5"
  75. }
  76. ]
  77. },
  78. "ColumnTitle":{
  79. "Height":0.508,
  80. "ColumnTitleCell":[
  81. {
  82. "GroupTitle":false,
  83. "Column":"Column1",
  84. "TextAlign":"MiddleCenter",
  85. "Text":"ProductID"
  86. },
  87. {
  88. "GroupTitle":false,
  89. "Column":"Column2",
  90. "TextAlign":"MiddleCenter",
  91. "Text":"ProductName"
  92. },
  93. {
  94. "GroupTitle":false,
  95. "Column":"Column3",
  96. "TextAlign":"MiddleCenter",
  97. "Text":"UnitPrice"
  98. },
  99. {
  100. "GroupTitle":false,
  101. "Column":"Column4",
  102. "TextAlign":"MiddleCenter",
  103. "Text":"Quantity"
  104. },
  105. {
  106. "GroupTitle":false,
  107. "Column":"Column5",
  108. "TextAlign":"MiddleCenter",
  109. "Text":"Amount"
  110. }
  111. ]
  112. }
  113. },
  114. "Parameter":[
  115. {
  116. "Name":"ProductID"
  117. },
  118. {
  119. "Name":"ProductName"
  120. },
  121. {
  122. "Name":"UnitPrice"
  123. },
  124. {
  125. "Name":"Quantity"
  126. },
  127. {
  128. "Name":"Amount"
  129. }
  130. ],
  131. "ReportHeader":[
  132. {
  133. "Name":"ReportHeader1",
  134. "Height":1.05833,
  135. "Control":[
  136. {
  137. "Type":"StaticBox",
  138. "Name":"StaticBox1",
  139. "Left":5.79967,
  140. "Top":0.1905,
  141. "Width":2.794,
  142. "Height":0.804333,
  143. "Font":{
  144. "Name":"宋体",
  145. "Size":156000,
  146. "Weight":400,
  147. "Charset":134
  148. },
  149. "Text":"会员集料"
  150. }
  151. ]
  152. }
  153. ]
  154. }

注意: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. idea自动生成方法注释(含参数及返回值)

    参考 https://blog.csdn.net/u014044812/article/details/76577479

  2. GoLand软件免激活的使用方法

    由于官方的Goland软件,免费使用期限是30天.如果你不购买产品的话,就需要不断的卸载和重装软件才能使用.不过要是您的资金允许的话,可以去http://www.jetbrains.com/go/bu ...

  3. 汇编指令lodsb和stosb、lodsd和stosd

    lodsb指令,将esi指向的地址处的数据取出来赋给AL寄存器,esi=esi+1: lodsw指令则取得是一个字. lodsd指令,取得是双字节,即mov eax,[esi],esi=esi+4: ...

  4. 北京Uber优步司机奖励政策(3月10日)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

  5. 成都Uber优步司机奖励政策(3月23日)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

  6. mysql 题目练习

    1 新建一个测试数据库: create database test1 charset utf8; 2 进入数据库 use test1; 3 新建一个sql 文件 ,将下面内容复制进sql 文件 /* ...

  7. spring-boot、mybatis整合

    一.MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集.MyBatis 可以使用简单的 X ...

  8. Git学习系列 (一)

    打算花一个半月的时间学完Git.宏观上有更深的认识. 参考: Pro Git(中文版) 一.历史 本地版本控制系统 最原始的做法.复制整个项目目录的方式来保存不同的版本,或许还会改名加上备份时间以示区 ...

  9. Redis系列九 Redis集群

    1. redis-cluster架构图 redis-cluster投票:容错 架构细节 ①所有的redis节点彼此互联(PING-PONG机制),内部使用二进制协议优化传输速度和带宽. ②节点的fai ...

  10. 一个体验好的Windows 任务栏缩略图开发心得

    本文来自网易云社区 作者:孙有军 前言: 对于一个追求极致体验的软件来说,利用好系统的每一点优秀的特性,将会大大提高软件的品质. Windows vista以来任务栏缩略图,及Win + TAB的程序 ...