zoukankan      html  css  js  c++  java
  • 图形化报表

      引:图形化报表通常用来展示业务数据,以便将繁杂的业务数据简单化。

    一、常用的图形化报表组件(Highchars(纯js)、水晶报表、jqChart、MsChart、XtraReports)

    二、MsChart报表结构

      (1)背景:图表的背景色

      (2)图标标题:一般位于图表的正上方中间位置。有的报表支持设置副标题。

      (3)图例说明

      (4)X轴、Y轴

      (5)X轴标题、Y轴标题

      (6)坐标刻度值:用于控制和显示Y轴方向的数据值。

      (7)序列:一个报表中可以有一个或者多个序列

    三、在ASP.NET WebForm模型中使用MsChart

      最常用的属性包括:

    ChartAreas:增加多个绘图区域,每个绘图区域包含独立的图表组、数据源,用于多个图表类型在一个绘图区不兼容时。

    AlignmentOrientation:图表区对齐方向,定义两个绘图区域间的对齐方式。

    AlignmentStyle:图表区对齐类型,定义图表间用以对其的元素。

    AlignWithChartArea:参照对齐的绘图区名称。

    InnerPlotPosition:图表在绘图区内的位置属性。

    Auto:是否自动对齐。

    Height:图表在绘图区内的高度(百分比,取值在0-100)

    Width:图表在绘图区内的宽度(百分比,取值在0-100)

    X,Y:图表在绘图区内左上角坐标

    Position:绘图区位置属性,同InnerPlotPosition。

    Name:绘图区名称。

    Axis:坐标轴集合

    Title:坐标轴标题

    TitleAlignment:坐标轴标题对齐方式

    Interval:轴刻度间隔大小

    IntervalOffset:轴刻度偏移量大小

    MinorGrid:次要辅助线

    MinorTickMark:次要刻度线

    MajorGrid:主要辅助线

    MajorTickMark:主要刻度线

    DataSourceID:MSChart的数据源。

    Legends:图例说明。

    Palette:图表外观定义。

    Series:最重要的属性,图表集合,就是最终看到的饼图、柱状图、线图、点图等构成的集合;可以将多种相互兼容的类型放在一个绘图区域内,形成复合图。

    IsValueShownAsLabel:是否显示数据点标签,如果为true,在图表中显示每一个数据值

    Label:数据点标签文本

    LabelFormat:数据点标签文本格式

    LabelAngle:标签字体角度

    Name:图表名称

    Points:数据点集合

    XValueType:横坐标轴类型

    YValueType:纵坐标轴类型

    XValueMember:横坐标绑定的数据源(如果数据源为Table,则填写横坐标要显示的字段名称)

    YValueMembers:纵坐标绑定的数据源(如果数据源为Table,则填写纵坐标要显示的字段名称,纵坐标可以有两个)

    ChartArea:图表所属的绘图区域名称

    ChartType:图表类型(柱形、饼形、线形、点形等)

    Legend:图表使用的图例名称

    Titles:标题集合。

    width:MSChart的宽度。

    height:MSChart的高度。

      常用事件:

    Series1.Points.DataBind() 
    绑定数据点集合,如果要在一个MSChart控件的一个绘图区(ChartArea)内添加多个不同数据源的图表,就用这个主动绑定数据集合的方法。可以将表中指定字段的值绑定到指定的坐标轴上。

    MSChart1.DataBind() 
    给整个MSChart绑定一个数据源,该MSChart中的图表全部可以使用该数据源作为统计来源。

    四、在ASP.NET MVC中使用Highchart

      chart的部分相关属性说明:

        renderTo: 'container',      //图表的页面显示容器(也就是要显示到的div)
        defaultSeriesType: 'line',  //图表类型(line、spline、scatter、splinearea、bar、pie、area、column)
        marginRight: 50,            //上下左右空隙(图表跟图框之间)
        marginBottom: 60,           //下面空隙如果不够大,图例说明有可能看不到
        plotBackgroundImage: '../graphics/skies.jpg', //(图表的)背景图片
        plotBackgroundColor:        //背景颜色
         1000,                //图框(最外层)宽(默认800)
        height: 500,                //图框高(默认500) 
        backgroundColor: "red"      //图框的背景颜色
        borderColor: "red"          //图框的边框颜色
        borderRadius: 5,            //图框的圆角大小
        borderWidth: 9,             //图框的边框大小
        inverted: false,            //(使图)倒置
        plotBorderColor: "red",     //图表的边框颜色
        plotBorderWidth: 0,         //图表的边框大小
        plotShadow: false,          //图表是否使用阴影效果
        reflow: false,   
        shadow:true                 //图框是否使用阴影
        showAxes: false,            //是否最初显示轴
        spacingTop: 100,            //图表上方的空白
        spacingRight: 10,
        spacingBottom: 15,
        spacingLeft: 10,
        colors: [...]                 //图上线。。的颜色

    credits的部分相关属性说明
        credits:  //设置右下角的标记。highchart.com (这个也可以在highcharts.js里中修改)
        {    
            enabled: true,      //是否显示
            position: {           //显示的位置                   
                align: 'left',       
                x: 10                           
            },
            text: "xoyo.com",           //显示的文字
            style:{                     //样式
                cursor: 'pointer',
                color: 'red',
                fontSize: '20px'
            },
            href: 'http://www.xoyo.com', //路径
        },
    title的部分相关属性说明
        title: //标题
        { 
            text: '月份平均温度',
            x: -20,                  //center //水平偏移量 
            y: 100                   //y:垂直偏移量
            align: 'right'         //水平方向(left, right, bottom, top)
            floating: true,          //是否浮动显示
            margin: 15,
            style: ,                 //样式
            verticalAlign: "left"    //垂直方向(left, right, bottom, top)
        },
    xAxis或者YAxis的部分相关属性说明
        categories: ['一月', '二月'],
        allowDecimals: false
        alternateGridColor: 'red'       //在图表中相隔出现纵向的颜色格栅
        dateTimeLabelFormats: ,
        endOnTick: false,               //是否显示控制轴末端的一个cagegories出来
        events: {
        setExtremes:
        },
        gridLineColor: "red",           //纵向格线的颜色
        gridLineDashStyle: Solid        //纵向格栅线条的类型
        gridLineWidth: 5,               //纵向格线的的大小
        id: null,
        labels: {  //X轴的标签(下面的说明)
            align: "center",              //位置
            enabled: false,               //是否显示
            formatter: ,
            rotation: 90,                 //旋转,效果就是影响标签的显示方向
            staggerLines: 4,              //标签的交错显示(上、下)
            step: 2,                      //标签的相隔显示的步长
            style:{},
            x: 100,                     //偏移量,默认两个都是0,
            y: 40
            
        },
        lineColor: "red",               //X轴的颜色
        lineWidth: 5,                   //X轴的宽度
        linkedTo:1,
        opposite: true                  //是否把标签显示到对面
        max: 12,                        //显示的最大值
        maxPadding: 6,
        maxZoom: 1,
        min: 10,                        //显示的最小值
        minorGridLineColor: 'red',        //副格线的颜色
        minorGridLineDashStyle: 'blod', //副格线的的颜色
        minorGridLineWidth: 50,         //副格线的宽度
        minorTickColor: #A0A0A0,        //???没有看出效果
        minorTickInterval:3,               //副标记的间隔
        minorTickLength: 10,             //副标记的长度
        minorTickPosition: 'inside',     //副标记的位置
        minorTickWidth: 5,               //副标记的宽
        minPadding: 0.01,
        offset: 0,                       //坐标轴跟图的距离
        plotBands: //使某数据块显示不同的效果    
        plotLines: [{         //标线属性
            value: 0,      //值为0的标线
        }],        
        tickmarkPlacement: "on",   //标记(文字)显示的位置,on表示在正对位置上。
        reversed: true,            //是否倒置
        showFirstLabel: false,     //第一个标记的数值是否显示
        startOfWeek: 2,
        tickColor: 'blue',         //标记(坐标的记号)的颜色
        tickInterval: 20,          //标记(坐标的记号)的步长
        tickLength: 5,
        tickmarkPlacement: "on",
        tickPixelInterval: 1000,   //两坐标之间的宽度
        tickPosition: "inside",    //坐标标记的方向
        title: {                   //设置坐标标题的相关属性
            margin: 40,
            rotation: 90,
            text: "Y-values",
            align: "middle",
            enabled: "middle",
            style: {color: 'red'}
        },
        type: "linear"
    tooltip的部分相关属性说明
        tooltip: //提示框设置
        {      
            formatter: function() {  //格式化提示框的内容样式
            return '<b>'+ this.series.name +'</b><br/>'+
                    this.x +': '+ this.y +'°C';
            },                       
            backgroundColor: '#CCCCCC',   //背景颜色
            borderColor: '#FCFFC5'      //边框颜色
            borderRadius: 2             //边框的圆角大小
            borderWidth: 3,               //边框宽度(大小)
            enabled: false,             //是否显示提示框
            shadow: false,              //提示框是否应用阴影  ?没有看出明显效果?????????
            shared: true,               //当打开这个属性,鼠标几个某一区域的时候,如果有多条线,所有的线上的据点都会有响应(ipad)
            snap: 0,          
            crosshairs: {                 //交叉点是否显示的一条纵线
                2,
                color: 'gray',
               dashStyle: 'shortdot'
            }
            style: {  //提示框内容的样式
                color: 'white',
                padding: '10px',    //内边距 (这个会常用到)
                fontSize: '9pt',            
            }
        },
    legend(图例说明)的部分相关属性说明
        legend: //图例说明
        {   
            layout: 'vertical',   //图例说明布局(垂直显示,默认横向显示)
            align: 'center',        //图例说明的显示位置
            verticalAlign: 'top', //纵向的位置
            x: 250,                 //偏移量 
            y: 0,               
            borderWidth: 1,            //边框宽度
            backgroundColor: 'red'   //背景颜色
            borderColor: 'red',
            borderRadius             //边框圆角
            enabled: false          //是否显示图例说明
            floating:true           //是否浮动显示(效果就是会不会显示到图中)
            itemHiddenStyle: {color: 'red'},
            itemHoverStyle: {color: 'red'}   //鼠标放到某一图例说明上,文字颜色的变化颜色
            itemStyle:  {color: 'red'}   //图例说明的样式
            itemWidth:                   //图例说明的宽度
            labelFormatter: function() { return this.value}       //?????????????默认(return this.name)
            lineHeight: 1000             //没看出明显效果
            margin: 20
            reversed:true                //图例说明的顺序(是否反向)
            shadow:true                  //阴影
            style: {color:'black'}
            symbolPadding: 100           //标志(线)跟文字的距离
            symbolWidth: 100             //标志的宽
            100
        },
     plotOptions的部分修改属性说明
        plotOptions: (我这个是在柱形图上做的测试)
        {  
            column: //柱形图
            {
                pointPadding: 0.2,
                borderWidth: 1,               //柱子边框的大小
                borderColor: "red",           //柱子边框的颜色
                borderRadius: 180,            //柱子两端的圆角的半径
                colorByPoint: true,           //否应该接受每系列的一种颜色或每点一种颜色
                groupPadding: 0,                //每一组柱子之间的间隔(会影响到柱子的大小)
                minPointLength: 0,            //最小数据值那一条柱子的长度(如果是0,可能看不到,可以设置出来)
                pointPadding: 0.1,            //柱子之间的间隔(会影响到柱子的大小)
                pointWidth: 2,                //柱子的大小(会影响到柱子的大小)
                allowPointSelect: false, 
                animation: true,              //图形出来时候的动画
                color: 'red',                 //柱子的颜色
                connectNulls: false,          //连接图表是否忽略零点(如线形图,数据为0是是否忽略)
                cursor: '',                   //?????????游标
                dashStyle: null,
                dataLabels: { //图上是否显示数据标签
                enabled: true,
                align: "center",
                color: 'red',
                formatter: function() 
                {
                    return this.y + 'mm'
                },
                rotation: 270,
                staggerLines: 0,
                step: ,
                style: ,
                x: 0,
                y: -6
                },
                enableMouseTracking: 
                events: {    //事件
                click: function(event)
                {
                    alert(this.name);
                },
                checkboxClick: ,
                hide: ,
                legendItemClick: ,
                mouseOver: ,
                mouseOut: ,
                show:
                },
                id: null,
                lineWidth: 20,
                marker: {  //图例说明上的标志
                enabled: false
                },
                point: {     //图上的数据点(这个在线形图可能就直观)
                events: {
                    click: function() 
                    {
                    alert(this.y);
                    },
                    mouseOver: ,
                    mouseOut: ,
                    remove: ,
                    select: ,
                    unselect: ,
                    update:
                    }
                },
                pointStart: 0,     //显示图数据点开始值
                pointInterval: 1,  //显示图数据点的间隔
                selected: false,
                shadow: true,
                showCheckbox: true,  //是否显示(图例说明的)复选框
                showInLegend: false, //是否显示图例说明
                stacking: 'percent', //是否堆积???
                states: 
                {
                                hover: 
                    {
                                    brightness: 0.1,
                                    enabled: true,    //图上的数据点标志是否显示
                                    lineWidth: 2,    //没看出效果
                                    marker: 
                    {
                                        states: ,
                                        enabled: true,         //数据点标志是否显示
                                        fillColor: null,       //数据点标志填充的颜色
                                        lineColor: "#FFFFFF",  //数据点标志线的颜色
                                        lineWidth: 0,          //数据点标志线的大小
                                        radius: 45,            //数据点标志半径
                                        symbol: 'triangle'//'url(http://highcharts.com/demo/gfx/sun.png)' //数据点标志形状(triangle三角形,或者用图片等等)
                                    }
                                }
                         },
                 stickyTracking: true,  //轨道粘性 (例如线图,如果这个设置为否定,那就必须点到数据点才有反应)
                 visible: true,         //设置为false就不显示图
                 zIndex: null         
        },

     

  • 相关阅读:
    Delphi映射模式实验
    restTemplate工具类
    RestTemplate中几种常见的请求方式
    RestTemplate(一)
    java.util.NoSuchElementException: No value present
    使用jsonRpc进行远程调用的时候com.googlecode.jsonrpc4j.HttpException: stream is closed
    SLF4J: Class path contains multiple SLF4J bindings.警告解决
    如何更改自己博客(博客园的)的背景
    Django中扩展Paginator实现分页
    bootstrap 导航栏
  • 原文地址:https://www.cnblogs.com/yuchengping/p/3485353.html
Copyright © 2011-2022 走看看