a.在Ext画line图是两点连线,相对来Jfreechart说很简单,在SPC的应用中,Jfreechart画P,U chart时UCL,LCL是类似长城凹凸形状的,因此在Ext line图直接连接原有的点是不可能画出跟Jfreechart一样效果的图形。
b.在Ext line Chart图中,我们选 type :'Category' 的原因是坐标均匀,而 type:'Numeric' 显示的坐标刻度不方便用户观看
a问题可以通过判断每个点的ucl,lcl跟前一个点的ucl,lcl值来决定是否增加多一个点,如果相同就不处理,如果不相同就需要生成一个点以达到画直角的目的
b问题会在选则a的基础上引起刻度重复现实的问题,但可以通过对点进行判断来达到隐藏的目标,同时由于显示图形和grid之间是联动,而store是公用一个,因此也需要对grid的记录(对应chart里面的点)进行一个判断及隐藏
实现关键点
java在后台对原始数据组加工,每一个点都进行复制并设置属性为隐藏,如果当前点跟前一个点ucl,lck不一样,则置当前点的ucl,lcl的值对应的前一点的ucl,lcl
Ext grid 隐藏行
<style>
.grid-row-hide{
display:none
}
</style>
if( record.get('hideRow') && record.get('hideRow') ==true ){
return 'grid-row-hide';
} else {
return 'grid-row-hide';
}
Ext chart 隐藏
{
type: 'line',
highlight: 'false' ,
axis: 'left',
xField: 'seq',
yField: 'yAxesValue',
title: ytitle,
markerConfig: { type: 'circle',size: 5,radius: 3,'stroke-width': 0 } ,
style: { fill: '#0000FF' },
renderer : function (sprite, record, attributes, index, store) {
if ( record && record.get( "hideRow") && record.get( "hideRow") == true ) {
if ( record ) {
attributes.fill = '#0000FF';
attributes.size = 0;
attributes.radius = 0;
return attributes;
} else {
if ( record ) {
attributes.fill = '#0000FF';
attributes.size = 5;
attributes.radius = 5;
if(record.get('exception')){
attributes.size = 7;
attributes.radius = 7;
if ( record.data.ocap == "") {
attributes.fill = '#ff0000';
} else {
attributes.fill = '#00FF00';
}
}
}
return attributes;
}
b.在Ext line Chart图中,我们选 type :'Category' 的原因是坐标均匀,而 type:'Numeric' 显示的坐标刻度不方便用户观看
a问题可以通过判断每个点的ucl,lcl跟前一个点的ucl,lcl值来决定是否增加多一个点,如果相同就不处理,如果不相同就需要生成一个点以达到画直角的目的
b问题会在选则a的基础上引起刻度重复现实的问题,但可以通过对点进行判断来达到隐藏的目标,同时由于显示图形和grid之间是联动,而store是公用一个,因此也需要对grid的记录(对应chart里面的点)进行一个判断及隐藏
实现关键点
java在后台对原始数据组加工,每一个点都进行复制并设置属性为隐藏,如果当前点跟前一个点ucl,lck不一样,则置当前点的ucl,lcl的值对应的前一点的ucl,lcl
Ext grid 隐藏行
<style>
.grid-row-hide{
display:none
}
</style>
if( record.get('hideRow') && record.get('hideRow') ==true ){
return 'grid-row-hide';
} else {
return 'grid-row-hide';
}
Ext chart 隐藏
{
type: 'line',
highlight: 'false' ,
axis: 'left',
xField: 'seq',
yField: 'yAxesValue',
title: ytitle,
markerConfig: { type: 'circle',size: 5,radius: 3,'stroke-width': 0 } ,
style: { fill: '#0000FF' },
renderer : function (sprite, record, attributes, index, store) {
if ( record && record.get( "hideRow") && record.get( "hideRow") == true ) {
if ( record ) {
attributes.fill = '#0000FF';
attributes.size = 0;
attributes.radius = 0;
return attributes;
} else {
if ( record ) {
attributes.fill = '#0000FF';
attributes.size = 5;
attributes.radius = 5;
if(record.get('exception')){
attributes.size = 7;
attributes.radius = 7;
if ( record.data.ocap == "") {
attributes.fill = '#ff0000';
} else {
attributes.fill = '#00FF00';
}
}
}
return attributes;
}