ECharts制作报表模板--.NET

Echarts .NET类库开源 前言:   2012年从长沙跑到深圳,2016年又从深圳回到长沙,兜兜转转一圈,又回到了原点.4年在深圳就呆了一家公司,回长沙也是因为深圳公司无力为继,长沙股东老板挽留,想想自己年纪也不小了.就回来了,在长沙工作几月,也没什么太多的不适应.不用赶着项目上线,不用加班,想想其实也不错.    从12年在长沙就想写点开源的东西,不过实在不敢献丑.这次机缘巧合,有个朋友一个项目需要用到大量报表,我找到百度的开源echarts项目(感谢开源,4年工作以来用到很多很好的开源项目,对工作助力颇多),看着就挺舒服的, 阅读详情

原文出自:http://blog.youkuaiyun.com/makang456/article/details/52873121

【效果】




【实例】

    一、html代码

[html]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. <span style="font-family:KaiTi_GB2312;font-size:18px;">-  
  2.     <!--整体div-->  
  3.     <div id="zhengti"  style="width:900px;margin: 0 auto;margin-bottom: 10px;margin-top: 40px;">  
  4.            
  5.          <!--图形div visible="false"-->  
  6.          <div  id="main"  style="width:800px;height:450px; float:left; display:inline; margin-bottom:30px;"></div>  
  7.         <br />  
  8.          <!--列表div-->  
  9.          <div id="editor-grid" style=" border-top:none; width:800px;height:300px;"></div>  
  10.   
  11.     </div>   
  12. -</span>  

    二、js代码

[javascript]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. <span style="font-family:KaiTi_GB2312;font-size:18px;">-  
  2.   
  3.          //页面刷新的方法加载  
  4.          $(document).ready(function () {  
  5.              //获取隐藏控件中的值  
  6.              var rejctphenomenontypename = "";  
  7.   
  8.              //准备数据  
  9.              var json;  
  10.              $.ajax({  
  11.                  url: '../ashx/chartashx/reject_belongs_system_charts.ashx?cmd=cmd&rejctphenomenontypename=' + rejctphenomenontypename,  
  12.                  type: 'post',  
  13.                  dataType: 'json',  
  14.                  async: false,  
  15.                  success: function (data) {  
  16.                      json = data;  
  17.                  }, error: function (data) {  
  18.                      alert("加载失败,请联系管理员!");  
  19.                  }  
  20.              });  
  21.              loadcharts(json);  
  22.              loadList(json);  
  23.              document.title = "问题汇总";  
  24.          });  
  25.   
  26.          //展示图标function  
  27.          function loadcharts(json) {  
  28.   
  29.              //图表展示  
  30.              var myChart1 = echarts.init(document.getElementById('main'));  
  31.   
  32.              option = {  
  33.   
  34.                  //图表标题    
  35.                  title: {  
  36.   
  37.                      text: "子系统不合格品问题统计", //正标题    
  38.   
  39.                      x: "center", //标题水平方向位置    
  40.                      //正标题样式    
  41.                      textStyle: {  
  42.                          fontSize: 20  
  43.                      },  
  44.                      //副标题样式    
  45.                      subtextStyle: {  
  46.                          fontSize: 12,  
  47.                          color: "red"  
  48.                      }  
  49.                  },  
  50.                  tooltip: {  
  51.                      trigger: 'axis',  
  52.                      axisPointer: {            // 坐标轴指示器,坐标轴触发有效  
  53.                          type: 'shadow'        // 默认为直线,可选为:'line' | 'shadow'  
  54.                      }  
  55.                  },  
  56.   
  57.                  //工具箱配置    
  58.                  toolbox: {  
  59.                      show: true,  
  60.                      feature: {  
  61.                          mark: { show: true }, // 辅助线标志,上图icon左数1/2/3,分别是启用,删除上一条,删除全部    
  62.                          dataView: { show: true, readOnly: false },// 数据视图,上图icon左数8,打开数据视图    
  63.                          magicType: { show: true, type: ['line', 'bar', 'stack', 'tiled'] },// 图表类型切换,当前仅支持直角系下的折线图、柱状图转换,上图icon左数6/7,分别是切换折线图,切换柱形图    
  64.                          restore: { show: true }, // 还原,复位原始图表,上图icon左数9,还原    
  65.                          saveAsImage: { show: true } // 保存为图片,上图icon左数10,保存    
  66.                      }  
  67.                  },  
  68.   
  69.                  //图例内容以及位置  
  70.                  legend: {  
  71.                      //加载图例内容,这里json.a是对应的数组元素  
  72.                      data: json.tuli,  
  73.                      y: "bottom"  
  74.   
  75.                  },  
  76.                  grid: {  
  77.                      left: '0%',  
  78.                      right: '0%',  
  79.                      bottom: '20%',  
  80.                      containLabel: true  
  81.                  },  
  82.                  //x轴的数据  
  83.                  xAxis: [  
  84.                      {  
  85.                          axisLabel: {  
  86.                              rotate: 60,  
  87.                              interval: 0  
  88.                          },  
  89.                          type: 'category',  
  90.                          //加载x轴的数据,这里  
  91.                          //data: ['部门1', '部门2', '部门3', '部门4'],  
  92.                          data: json.xzhou,  
  93.                          name: "部门"  
  94.   
  95.                      }  
  96.                  ],  
  97.                  //y轴的数据  
  98.                  yAxis: [  
  99.                      {  
  100.                          type: 'value',  
  101.                          name: "数值"  
  102.                      }  
  103.                  ],  
  104.                  //图中的数据,这里是通过匹配的来的!  
  105.                  series: json.tushuju  
  106.              };  
  107.   
  108.   
  109.              //将配置好的图加载到div中  
  110.              myChart1.setOption(option);  
  111.   
  112.              //单击穿透  
  113.              myChart1.on('click', function (param) {  
  114.                   
  115.                  var rejectbelongssystemname = param.name;  
  116.                  //window.open("reject_phenomenon_type_charts.aspx?rejectbelongssystemname=" + rejectbelongssystemname);  
  117.                  window.open("reject_phenomenon_type_charts1.aspx?rejectbelongssystemname=" + rejectbelongssystemname, 'newwindow', 'height=672,width=1182,top=100,left=100,toolbar=no,menubar=no,scrollbars=no,resizable=no, location=no,status=no')  
  118.              });  
  119.   
  120.          }  
  121.   
  122.          //加载列表function  
  123.          function loadList(json) {  
  124.              var columns = [json.listbiaotou];  
  125.   
  126.              //gridData属性  
  127.              InitGrid = {  
  128.                  //nowrap: true,  
  129.                  //autoRowHeight: true,  
  130.                  striped: true,  
  131.                  singleSelect: true,  
  132.                  // url: Init.url + '&cmd=list',  
  133.                  //data: [{ "Id": 1, "region": "8号线", "SR": 100, "ST": 80 }, { "Id": 2, "region": " 北京亦庄线", "SR": 40, "ST": 80 }, { "Id": 3, "region": " 重庆3号线", "SR": 30, "ST": 80 }, { "Id": 4, "region": " 成都3号线", "SR": 10, "ST": 80 }, { "Id": 5, "region": " 大连线", "SR": 10, "ST": 80 }],  
  134.                  data: json.listshuju,  
  135.                  fitColumns: true,  
  136.                  idField: 'Id',  
  137.                  pagination: true,  
  138.                  rownumbers: true,  
  139.                  pageSize: 10,  
  140.                  pageList: [5, 10, 15, 20, 50, 80, 200],  
  141.                  //toolbar: toolbar,  
  142.                  columns: columns,  
  143.                  // fit: true,  
  144.                  //border: true  
  145.              }  
  146.   
  147.              //创建数据表格  
  148.              dataGrid = $("#editor-grid").datagrid(InitGrid);  
  149.   
  150.          }  
  151. -</span>  

    三、一般处理程序代码

[csharp]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. <span style="font-family:KaiTi_GB2312;font-size:18px;">-  
  2. #region 3、子系统不合格品问题统计-马康-2016年9月28日17:16:23  
  3.         /// <summary>  
  4.         /// 3、子系统不合格品问题统计-马康-2016年9月28日17:16:23  
  5.         /// </summary>  
  6.         /// <returns></returns>  
  7.         private string queryList(string rejctphenomenontypename)  
  8.         {  
  9.   
  10.             //实例化BLL层  
  11.             ProblemSpotBLL problemspotbll = new ProblemSpotBLL();  
  12.   
  13.             //查询数据  
  14.             DataSet projectProblemList = problemspotbll.queryrejectbelongssystemList(rejctphenomenontypename);  
  15.   
  16.             DataTable tables2 = new DataTable();  
  17.             tables2.Columns.Add("producttype", typeof(String));  
  18.             DataRow row = tables2.NewRow();  
  19.             row["producttype"] = "不合格品";  
  20.             tables2.Rows.Add(row);  
  21.             projectProblemList.Tables.Add(tables2);  
  22.   
  23.             StringBuilder sb = new StringBuilder();  
  24.             String resultStr = "";  
  25.             if (projectProblemList.Tables.Count > 0)  
  26.             {  
  27.                 //总括号  
  28.                 sb.Append("{");  
  29.                 #region 1、图例项对象数组  
  30.                 //第一个图例项对象数组  
  31.                 sb.Append("\"tuli\":[");  
  32.                 for (int i = 0; i < projectProblemList.Tables[2].Rows.Count; i++)  
  33.                 {  
  34.                     sb.Append("\"" + projectProblemList.Tables[2].Rows[i][0] + "\",");  
  35.                 }  
  36.                 sb.Remove(sb.Length - 1, 1);  
  37.                 sb.Append("],");  
  38.                 #endregion  
  39.  
  40.                 #region 2、x轴中的项目  
  41.                 //第一个图例项对象数组  
  42.                 sb.Append("\"xzhou\":[");  
  43.                 for (int i = 0; i < projectProblemList.Tables[1].Rows.Count; i++)  
  44.                 {  
  45.                     sb.Append("\"" + projectProblemList.Tables[1].Rows[i][0] + "\",");  
  46.                 }  
  47.                 sb.Remove(sb.Length - 1, 1);  
  48.                 sb.Append("],");  
  49.                 #endregion  
  50.  
  51.                 #region 3、图中的数据  
  52.                 //第一个图例项对象数组  
  53.                 sb.Append("\"tushuju\":[");  
  54.                 //最外层循环,循环项目  
  55.                 for (int i = 0; i < projectProblemList.Tables[2].Rows.Count; i++)  
  56.                 {  
  57.                     sb.Append("{");  
  58.                     sb.Append("\"name\":\"" + projectProblemList.Tables[2].Rows[i][0] + "\",");  
  59.                     sb.Append("\"type\":\"bar\",");  
  60.                     sb.Append("\"data\":[");  
  61.                     //定义一个临时数组,来存储下面要获得的数据  
  62.                     int[] arraylist = new int[projectProblemList.Tables[1].Rows.Count];  
  63.                     //根据项目匹配总数据中的值  
  64.                     for (int j = 0; j < projectProblemList.Tables[0].Rows.Count; j++)  
  65.                     {  
  66.                         //如果有相等的值,则进入循环部门(这里肯定会至少有一个项目名称与之匹配,因为项目名称是根据这个datatable去重筛选出来的)  
  67.                         string adsf = projectProblemList.Tables[0].Rows[j][1].ToString();  
  68.                         string asdfasdf = projectProblemList.Tables[2].Rows[i][0].ToString();  
  69.                         if (projectProblemList.Tables[0].Rows[j][1].ToString() == projectProblemList.Tables[2].Rows[i][0].ToString())  
  70.                         {  
  71.   
  72.                             //通过循环产品,向数组中加入内容  
  73.                             for (int k = 0; k < projectProblemList.Tables[1].Rows.Count; k++)  
  74.                             {  
  75.                                 if (projectProblemList.Tables[1].Rows[k][0].ToString() == projectProblemList.Tables[0].Rows[j][0].ToString())  
  76.                                 {  
  77.                                     arraylist[k] = (int)projectProblemList.Tables[0].Rows[j][2];  
  78.                                 }  
  79.   
  80.                             }  
  81.                         }  
  82.   
  83.                     }  
  84.                     //循环将数组拼接到字符串中  
  85.                     for (int k = 0; k < arraylist.Length; k++)  
  86.                     {  
  87.                         sb.Append("\"" + arraylist[k] + "\",");  
  88.                     }  
  89.                     sb.Remove(sb.Length - 1, 1);  
  90.                     sb.Append("]");  
  91.                     sb.Append("},");  
  92.                 }  
  93.                 sb.Remove(sb.Length - 1, 1);  
  94.                 sb.Append("],");  
  95.  
  96.                 #endregion  
  97.  
  98.                 #region 4、列表中的表头  
  99.                 double kuandu = (800 - 30) / (projectProblemList.Tables[1].Rows.Count + 1) - 3;  
  100.                 //第一个图例项对象数组  
  101.                 sb.Append("\"listbiaotou\":[");  
  102.                 sb.Append("{");  
  103.                 sb.Append("\"field\":\"id\",");  
  104.                 sb.Append("\"hidden\":\"true\"");  
  105.                 sb.Append("},");  
  106.                 sb.Append("{");  
  107.                 sb.Append("\"field\":\"region\",");  
  108.                 sb.Append("\"title\":\"项目\",");  
  109.                 sb.Append("\"align\":\"center\",");  
  110.                 sb.Append("\"width\":\"" + kuandu + "\"");  
  111.                 sb.Append("},");  
  112.   
  113.                 for (int i = 0; i < projectProblemList.Tables[1].Rows.Count; i++)  
  114.                 {  
  115.                     sb.Append("{");  
  116.                     sb.Append("\"field\":\"" + projectProblemList.Tables[1].Rows[i][0] + "\",");  
  117.                     sb.Append("\"title\":\"" + projectProblemList.Tables[1].Rows[i][0] + "\",");  
  118.                     sb.Append("\"align\":\"center\",");  
  119.                     sb.Append("\"width\":\"" + kuandu + "\"");  
  120.                     sb.Append("},");  
  121.                 }  
  122.                 sb.Remove(sb.Length - 1, 1);  
  123.                 sb.Append("],");  
  124.                 #endregion  
  125.  
  126.                 #region 5、列表中的数据  
  127.                 //第一个图例项对象数组  
  128.                 sb.Append("\"listshuju\":[");  
  129.                 //最外层循环,循环项目  
  130.                 for (int i = 0; i < projectProblemList.Tables[2].Rows.Count; i++)  
  131.                 {  
  132.                     sb.Append("{");  
  133.                     sb.Append("\"id\":\"" + i + "\",");  
  134.                     sb.Append("\"region\":\"" + projectProblemList.Tables[2].Rows[i][0] + "\",");  
  135.                     //定义一个临时数组,来存储下面要获得的数据  
  136.                     int[] arraylist = new int[projectProblemList.Tables[1].Rows.Count];  
  137.                     //根据项目匹配总数据中的值  
  138.                     for (int j = 0; j < projectProblemList.Tables[0].Rows.Count; j++)  
  139.                     {  
  140.                         //如果有相等的值,则进入循环部门(这里肯定会至少有一个项目名称与之匹配,因为项目名称是根据这个datatable去重筛选出来的)  
  141.                         string adsf = projectProblemList.Tables[0].Rows[j][1].ToString();  
  142.                         string asdfasdf = projectProblemList.Tables[2].Rows[i][0].ToString();  
  143.                         if (projectProblemList.Tables[0].Rows[j][1].ToString() == projectProblemList.Tables[2].Rows[i][0].ToString())  
  144.                         {  
  145.   
  146.                             //通过循环部门,向数组中加入内容  
  147.                             for (int k = 0; k < projectProblemList.Tables[1].Rows.Count; k++)  
  148.                             {  
  149.                                 if (projectProblemList.Tables[1].Rows[k][0].ToString() == projectProblemList.Tables[0].Rows[j][0].ToString())  
  150.                                 {  
  151.   
  152.                                     arraylist[k] = (int)projectProblemList.Tables[0].Rows[j][2];  
  153.                                 }  
  154.   
  155.                             }  
  156.                         }  
  157.   
  158.                     }  
  159.                     //循环将数组拼接到字符串中  
  160.                     for (int k = 0; k < projectProblemList.Tables[1].Rows.Count; k++)  
  161.                     {  
  162.                         sb.Append("\"" + projectProblemList.Tables[1].Rows[k][0] + "\":\"" + arraylist[k] + "\",");  
  163.                     }  
  164.                     sb.Remove(sb.Length - 1, 1);  
  165.                     sb.Append("},");  
  166.                 }  
  167.                 sb.Remove(sb.Length - 1, 1);  
  168.                 sb.Append("]");  
  169.  
  170.                 #endregion  
  171.   
  172.                 //最后的括号!  
  173.                 sb.Append("}");  
  174.   
  175.                 resultStr = sb.ToString();  
  176.             }  
  177.           
  178.                         
  179.             return resultStr;  
  180.         }  
  181.         #endregion  
  182. -</span>  

    四、BLL层代码

[csharp]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. <span style="font-family:KaiTi_GB2312;font-size:18px;">-  
  2. #region 最终报表3、子系统不合格品问题统计-马康-2016年9月28日17:16:23  
  3.         /// <summary>  
  4.         /// 最终报表3、子系统不合格品问题统计-马康-2016年9月28日17:16:23  
  5.         /// </summary>  
  6.         /// <returns></returns>  
  7.         public DataSet queryrejectbelongssystemList(string rejctphenomenontypename)  
  8.         {  
  9.             return dal.GetrejectbelongssystemList(rejctphenomenontypename);  
  10.         }  
  11.         #endregion   
  12. -</span>  

    五、DAL层代码

[csharp]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. <span style="font-family:KaiTi_GB2312;font-size:18px;">-  
  2.  #region 最终报表3、子系统不合格品问题统计-马康-2016年9月28日17:16:23  
  3.         /// <summary>  
  4.         /// 3、子系统不合格品问题统计-马康-2016年9月28日17:16:23  
  5.         /// </summary>  
  6.         /// <returns></returns>  
  7.         public DataSet GetrejectbelongssystemList(string rejctphenomenontypename)  
  8.         {  
  9.             StringBuilder builder = new StringBuilder();  
  10.             if (rejctphenomenontypename =="")  
  11.             {  
  12.                 //总数据  
  13.                 builder.Append(" SELECT sELECT3,replace(IsActive,'1','不合格品'),COUNT(sELECT3) num FROM Pts_Problems WHERE ProjectID IN (197, 29) AND ProblemStateID NOT IN (1870, 250) AND Select3 IN ('VOBC子系统','DCS子系统','ATS子系统','MSS子系统','CI子系统','ZC/DSU子系统')  GROUP BY sELECT3,IsActive ");  
  14.   
  15.                 //所属系统个数  
  16.                 builder.Append("   SELECT DISTINCT(sELECT3) FROM Pts_Problems WHERE ProjectID IN (197, 29) AND ProblemStateID NOT IN (1870, 250) AND Select3 IN ('VOBC子系统','DCS子系统','ATS子系统','MSS子系统','CI子系统','ZC/DSU子系统')  GROUP BY sELECT3  ");  
  17.   
  18.             }  
  19.             else  
  20.             {  
  21.                 //总数据  
  22.                 builder.Append(" SELECT sELECT3,replace(IsActive,'1','不合格品'),COUNT(sELECT3) num FROM Pts_Problems WHERE ProjectID IN (197, 29) AND ProblemStateID NOT IN (1870, 250)  and MultiSelect1 = '" + rejctphenomenontypename + ";' AND Select3 IN ('VOBC子系统','DCS子系统','ATS子系统','MSS子系统','CI子系统','ZC/DSU子系统')  GROUP BY sELECT3,IsActive ");  
  23.   
  24.                 //所属系统个数  
  25.                 builder.Append("   SELECT DISTINCT(sELECT3) FROM Pts_Problems WHERE ProjectID IN (197, 29) AND ProblemStateID NOT IN (1870, 250) AND Select3 IN ('VOBC子系统','DCS子系统','ATS子系统','MSS子系统','CI子系统','ZC/DSU子系统')  GROUP BY sELECT3  ");  
  26.   
  27.             }  
  28.             
  29.             return SqlHelper.ExecuteDataset(sqlConnstring, CommandType.Text, builder.ToString());  
  30.         }  
  31. -</span>  

Java开发报表——Grid++Report 报表设计器 为了让数据显示的更加形象生动,报表在项目中几乎是非常常见的,但是大致可以分为两类:         一,图形:以图形的形式显示数据,例如柱状图,折线图,饼形图等等,这里有很多关于这方面的工具,例如JFreeCharts(利用Java语言实现的,相对来说不是太美观),FunsionChartsFree(利用xml+flash+Js实现,相对来说不错),可以参考我以前的文章:图形生成工具(funsio 阅读详情

相关推荐

C# MVC 封装百度的EChart完整例子

使用C#的MVC封装了EChart图表。类EChartJson包含了绘制图形的几种基本要素,大家可以根据需要扩展EChart的更多图表属性,当然这个需要各位多了解百度EChart图表的各种属性描述。方法getJsonData()负责在后台为EChartJson的实例初始化数据,并返回json数据。关键是前台显示图表,省去了大量的工作。

.NET WinForms(C#)中使用Echarts绘制图表

使用.NET 6编写Winforms时,需要绘制图表,发现.NET Core中默认不支持Chart控件。经过查询,使用CefSharp控件和Echart图可以实现想要的显示效果。

weixin_44453199的博客 7898

C# ECHART WPF 开发,非常漂亮的demo

ECHART C# WPF,

C#插入Echarts图表

开发工具与关键技术:VS C# 作者:梁茵茵 撰写时间:2019年7月16日 我们在做项目的时候常常为了页面显示的数据可以美观得体,便会用到一个Echarts插件来实现图表显示数据的效果。echarts3-docs手册里有详细的使用说明,下载echarts3-docs解压后千万不要放在中文目录里,建议直接放到D/E/F…等盘的根目录下。解压之后如果无法启动就要修改文件里面的端口号,修改完之后访...

weixin_44543312的博客 3711

C#上的echarts的例子

C#上的echarts的例子,简单明了,一看就会

Python自动化:3分钟搞定微信收藏链接批量导出到TXT(附完整代码)

本文介绍如何使用Python自动化工具在3分钟内将微信收藏链接批量导出到TXT文件。通过模拟人类操作和OCR技术,脚本高效处理大量链接,显著提升工作效率,并附有完整代码和实战避坑指南。

weixin_29062671的博客 628

.NET开源、强大的Web报表统计系统

今天分享一个.NET开源、强大的Web报表统计系统:CellReport。CellReport 诞生的初衷是为了解决日常快速制作统计报表的需要。CellReport 是一个为复杂统计报表为核心目标的制作、运行工具。你可以使用数据库、excel文件、api服务、已有报表等为数据源,通过内置的集合函数组织数据,以类excel界面设计最终呈现结果。

专注于C#/.NET/.NET Core学习、工作、面试干货和实战教程分享。这里聚焦了大量的C#/.NET/.NET Core优质文章、开源项目、实用工具和学习、工作、面试心得。 1771

深入解析Unity3D中PostLateUpdate突然占用大量时间的原因

在Unity3D的生命周期中,是一个在LateUpdate之后被调用的方法。它通常用于处理一些需要在所有更新(包括物理更新和动画更新)之后进行的逻辑。由于它在游戏循环的后期阶段被调用,因此它通常用于处理与渲染直接相关的任务,如相机调整、UI更新等。突然占用大量时间的问题可能由多种原因引起,包括复杂的逻辑处理、频繁的资源加载、不恰当的渲染优化、插件或第三方库的副作用以及内存泄漏或垃圾回收等。为了解决这个问题,开发者需要仔细审查和优化中的代码,同时利用Unity提供的工具来监控和分析游戏性能。

Yori_22的博客 979

springboot 使用ftl模板导出echarts图表到word

最近有个需求是导出一个报表页面,包括页面的echarts图表以及一些分析说明,导出的文件是word文件。记录下做法 1.先定义好一个word静态模板 模板中的动态数据用一个变量来替代,图片部分随便用一个图片,这样做的原因是先占位,因为word模板生成的ftl模板图片资源是有图片资源标签的,如果不先占位,到时候通过word生成的ftl模板就没有图片的标签 具体做法如下 1.做好静态模板: 2.然后把静态模板中的动态数据用变量占位 3.把用量变量占位后的word另存为xml文件...

bigbear776的博客 3296

Windows10内核逆向-2-KiSystemCall64的调用流程剖析

本文深入剖析了Windows 10 x64系统中KiSystemCall64函数的完整调用流程。从用户态触发syscall指令开始,详细讲解了如何通过swapgs切换内核栈、构建KTRAP_FRAME陷阱帧、进行SMAP/CFG等安全检查,到最终通过SSDT寻址并执行目标系统服务的全过程,揭示了系统调用从Ring 3到Ring 0切换的核心机制与安全设计。

weixin_29209805的博客 82

使用pytorch构建LSTM_AE模型的两种方式

2.基本LSTM_Unit计算——基本LSTM_AE结构 3.自定义LSTM_Unit计算——自定义LSTM_AE结构 1.LSTM-Encoder-Decoder模型结构及简要解析 图基本lstm计算单元

qq_37840762的博客 7273

视频教程-Echarts+Asp.Net+Sql Server报表开发视频教程-.NET

Echarts+Asp.Net+Sql Server报表开发视频教程 8年一...

weixin_33369375的博客 674

安装部署 Guacamole 远程桌面网关

Guacamole 是Apache基金会提供的一组基于web的远程桌面访问工具,支持 VNC、RDP、SSH、 Telnet 等协议,支持远程透传音视频。

UsamaBinLaden6976498的专栏 1963

HighReport报表工具制作报表图形

formatdatetime(ds1.select(DT),"MM-dd") --格式化日期。这是柱状图显示option,只要把option里面的数据替换为实际数据。这是柱状图显示option,只要把option里面的数据替换为实际数据。2.右边直接将定义的变量,直接给option的值,不需要js计算。2.右边直接将定义的变量,直接给option的值,需要js计算。单击“确定”按钮,返回到报表编辑界面。给报表图形数据,显示2个柱图形。

shangxinyu123的专栏 180

QGIS安装与使用教程

QGIS安装与使用教程

weixin_46713695的博客 2万+

【系列06】端侧AI:构建与部署高效的本地化AI模型 第5章:模型剪枝(Pruning)

结构化剪枝移除的是模型中的整个结构,比如一个完整的神经元、一个卷积核或一个通道。修剪后的模型权重矩阵仍然是稠密的,因此能够充分利用现代硬件和软件的并行计算优势,从而显著提升推理速度。非结构化剪枝是最细粒度的剪枝方法。对于需要极致压缩但对推理速度要求不高的场景,非结构化剪枝是好的选择。它就像修剪一棵树,通过移除模型中不必要的“枝叶”,让模型变得更精简、更高效,从而适应资源受限的设备。,开发者可以方便地对模型的不同层进行剪枝,并根据需求进行微调,从而在不影响太多性能的前提下,获得一个更轻量、更高效的模型。

学习,输出==》再学习再输出 649

vb.net怎么调用fastreport报表_Java开发报表怎么做?

日常工作中可能经常会涉及到用java开发报表,需求比较多的就是表格类的报表导出,单元格合并,图表的展现。具体怎么实现,分表格和图表两类来说。1、表格类通常采用的方式是“Java+POI+Excel模板”来制作简单的报表,生成Excel。其实Java中实现Excel根据模板导出数据的方法有很多,一般简单的可以通过操作pol进行。还可以使用一些工具很轻松的实现模板导出,这些工具现在还在维护,而且做得比...

weixin_39537049的博客 357

YOLOv8 交通流量监测详解

本文介绍了一个基于YOLOv8的交通流量监测系统,该系统通过深度学习技术实现车辆实时检测、跟踪和分类。系统核心功能包括:1)使用YOLOv8模型检测道路车辆并进行持续跟踪;2)按方向和车型统计车流量;3)支持多区域流量监测和数据可视化。文章提供了完整的代码实现示例,涵盖基础车辆检测、视频流处理和高级数据分析功能。系统还可进一步优化性能,如使用轻量级模型、GPU加速等,并建议扩展车速估算、密度分析等功能。该方案为交通管理提供了有效的实时监测和决策支持工具。

u010117029的博客 346

探索ASP.NET与ECharts的完美结合:动态数据展示新体验

探索ASP.NET与ECharts的完美结合:动态数据展示新体验 去发现同类优质开源项目:https://gitcode.com/ 在当今数据驱动的时代,如何高效地展示和交互数据成为了开发者面临的重要挑战。ASP.NET与ECharts的结合,为我们提供了一个强大的工具,能够轻松实现动态数据的可视化展示。本文将深入介绍这一开源项目,帮助您了解其技术细节、应用场景及独特优势。 项目介绍 本项目详细介...

gitblog_09806的博客 970

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

多复杂的报表都不怕!支持脚本、多数据源、图表展示,一款一站式开源报表系统

CellReport是一款基于.NET Core实现的开源报表制作和运行工具,专为解决复杂统计报表的制作需求而设计。它支持多种数据源如:数据库、excel文件、api服务、已有报表等,通过内置的集合函数组织数据,可有效提高报表开发效率和灵活性,以类excel界面设计最终呈现结果。

907

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

ASP.NET+Echarts绘制图表

首先去百度搜索Echarts去下载图表实例,或者直接点击链接:Echarts图表实例下载。其中可以自定义下载,也可以下载全部,根据个人需求进行实例的下载即可! ...

weixin_44146294的博客 5771

ASP.NET结合Echarts展示后台数据

ECharts功能强大,如果项目中需要根据后台数据生成统计图表,那么ECharts绝对是不二选择。下面就来介绍一下如何利用ASP.NET + ECharts来生成折线图、柱状图、饼图这三类基本的统计图。首先在SqlServer中建立一张测试表[TSales],该表模拟某商店在2019年每天的销售金额,共有365条记录,如下图所示: 下面需要按照月份对该数据表进行划分,生成相应的折线图、柱状图、饼图,同时还需要根据季度对该数据表进行划分,生成另一个饼图,如下图所示: 前端代码 <!DOCTYPE h

HerryDong的博客 5937

c#中嵌入echarts_利用c#+jquery+echarts生成统计报表(附源代码)

背景:因为最近项目要生成报表,经过几轮挑选,最终选择了百度的echarts作为报表基础类库。百度echarts简介请参考虽然echarts功能强大,界面优美,但是使用起来非常繁琐。本文在参考写的“Echarts使用心得总结”基础上,进一步对JS进行封装。使得其更具有通用性。(1)解决方案布局整个解决方案如下图(VS2010+.NET4.0)。唯一需要说明的是Javascript文件夹下的JS库,其...

weixin_42114041的博客 713

ECharts.net项目

最近因为工作需要,对百度ECharts报表进行了后台封装,个人毕竟用到的图表少,希望大家能够一起完善。 项目参考HighCharts.net进行的封装。 优快云 CODE:git@code.csdn.net:lanwilliam/echarts-net.git github:https://github.com/lanwilliam/ECharts.net.wiki.git 开源中国:h

哈利路亚的收藏夹 983

C#ASP.NET使用Echarts制作统计图

卓越项目需要所以想要用ASP绘制统计图,但是从来没有接触过echarts和ajax,于是在哔哩哔哩上看了一些简短的课程大致了解了一下echarts和ajax. 前端代码: <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication2.WebForm1" %> <!DOCTYPE html> <html xmlns="http:/

qq_56744102的博客 3476
上一篇: POI实现导出的简单例子
下一篇: Java实现图表趋势图的展现
LazyTojava
博客等级 码龄10年 1粉丝 16原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值