📄 mypolyline.htc
字号:
vVPerHeight = (vHeight - intLineTop -intConstBoard)/vMaxY;
else
vVPerHeight = 0;
vVML += paintPolyline();//
vVML += "</v:group>";
objDataArea.insertAdjacentHTML("afterBegin",vVML + "<xml:namespace prefix='v' ns='schemas-microsoft-com:vml'/>");
}
/////////////////////////////////////////////////
function paintPolyline(){ //返回画折线的VML
var vReturnVML = "";//
var vTextReturnVML = "";//用来标识每条线的各个点的文字描述
var curLintPoint;//组成一条折线的点的集合
var vTextPoint = "";//折线上每个点的描述文字
var vTextLine = "";//折线的描述文字
var vIdVml = "";//图表标识VML
var vIconVml = "";//图标VML
var varYPoint;
//debugger;
if(!objXMLDoc) return;
var oNodeCol = objXMLDoc.selectNodes("/*/col");
// debugger;
for(var i=0;i<oNodeCol.length;i++){
vReturnVML += "<v:polyline style = 'position:absolute;left:10;top:0;' strokeweight='" + lineWeight + "' points='";
for(var j=0;j<oNodeCol[i].childNodes.length;j++){
if(vMaxY!=0)
varYPoint = ((vVPerHeight * (vMaxY - oNodeCol[i].childNodes[j].getAttribute(valueCol))) + intLineTop);
else
varYPoint = yLength - intConstBoard;
vReturnVML += (35+j*vXScale) + "," + varYPoint + " ";
if(oNodeCol[i].childNodes[j].getAttribute(valueCol))
vTextPoint += "<v:rect style='position:absolute;border:0px solid green;left:" + (35+j*vXScale - 15 + 10) + ";top:" + (varYPoint - 17) + ";' coordsize='21600,21600'><v:textbox style='color:" + yDescriptionColor + ";font-size:6pt;font-family:arial;border:0px solid red;margin-top:0; margin-left:0;'>" + oNodeCol[i].childNodes[j].getAttribute(valueCol) + "</v:textbox></v:rect>";
//if(j==(oNodeCol[i].childNodes.length - 1))
//vTextLine += "<v:rect style='position:absolute;width:" + titleWidth + ";height:22;border:0px solid green;left:" + (35+j*vXScale + 10) + ";top:" + (parseInt(varYPoint) - 12) + ";' fillcolor='" + titleBgcolor + "' strokecolor='#dddddd' opacity='0.1' coordsize='21600,21600'><v:fill opacity='0.9'/><v:shadow color='#333333' offset='0.06,0.1' on='t'/><v:textbox style='left:0;top:0;color:" + titleColor + ";font-weight:bold;'>" + oNodeCol[i].getAttribute("title") + "</v:textbox></v:rect>";
}
vReturnVML += "' filled='false' strokecolor='";
////////////////////////////////////
if(i < lineColorArray.length){//如果在预置颜色范围内
vReturnVML += lineColorArray[i];
vIdVml += "<v:rect style='position:absolute;width:" + titleWidth + ";height:19;top:" + (i*25 + 25) + ";border:0px solid green;left:" + xLength + ";'stroked='f' opacity='0.1' coordsize='21600,21600'><v:fill opacity='0.9'/><v:textbox style='left:0;top:2;color:#000000;font-family:宋体;font-size:6pt;font-weight:bold;'> " + oNodeCol[i].getAttribute("title") + "</v:textbox></v:rect>";
vIconVml += "<v:rect style='position:absolute;left:" + (xLength + 3) + ";top:" + (i*25 + 31) + ";width:10;height:5;' stroked='f' fillcolor='" + lineColorArray[i] + "'coordsize='21600,21600'></v:rect>";
}else{//超过预置颜色范围则折线均为黑色
vReturnVML += "black";
vIdVml += "<v:rect style='position:absolute;width:" + titleWidth + ";height:19;top:" + (i*25 + 25) + ";border:0px solid green;left:" + xLength + ";'stroked='f' opacity='0.1' coordsize='21600,21600'><v:fill opacity='0.9'/><v:textbox style='left:0;top:2;color:#000000;font-family:宋体;font-size:6pt;font-weight:bold;'> " + oNodeCol[i].getAttribute("title") + "</v:textbox></v:rect>";
vIconVml += "<v:rect style='position:absolute;left:" + (xLength + 3) + ";top:" + (i*25 + 31) + ";width:10;height:5;' stroked='f' fillcolor='#000000'coordsize='21600,21600'></v:rect>";
}
/////////////////////////////////////
vReturnVML += "' strokeweight='1'><v:stroke joinstyle='bevel'/></v:polyline>";
}
//debugger;
return vReturnVML + vTextPoint + vTextLine + vIdVml + vIconVml;
}
function refresh(){
//需要重画时需要将objDataArea中的所有对象清除
while(objDataArea.children.length >0){
objDataArea.children(0).removeNode(true);
}
if(pointDescription && pointDescription.length>1){
while(pointDescription.length > 0){
pointDescription.pop();
}
}
vDivisor = 0;
xLength = 0;
yLength = 0;
vMaxY = 0;
vXScale = 0;
vYScale = 0;
calcuScaleOfX();//计算x轴刻度
paintCoordinate();//创建坐标系
}
function initialize(){
//debugger;
//创建图形显示区域
objDataArea = element.document.createElement("<div class='phms_pl_dataarea'></div>");
objDataArea = element.appendChild(objDataArea); //外框,加滚动条的层
with(element){
style.pixelWidth = vWidth;
style.pixelHeight = vHeight;
style.top = vTop;
style.left = vLeft;
}
with(objDataArea){//设置外层容器的大小
objDataArea.style.left = 0;
objDataArea.style.top = 0;
objDataArea.style.pixelWidth = vWidth;
objDataArea.style.pixelHeight = vHeight;
objDataArea.style.padding = 0;
}
calcuScaleOfX();//计算x轴刻度
paintCoordinate();//创建坐标系
element.style.visibility = "visible";
element.onkeydown = onVGKeyDown;
}
function putCaption(argCaption){
vCaption = argCaption;
}
function putLeft(argLeft){
vLeft = argLeft;
}
function putTop(argTop){
vTop = argTop;
}
function putWidth(argWidth){
vWidth = argWidth;
}
function putHeight(argHeight){
vHeight = argHeight;
}
function onVGKeyDown(){
if(event.keyCode == 107){//"+"[放大]
b = b * 0.9090909;
element.all("vg1").coordsize = (1024 * b) + "," + (768 * b);
}
if(event.keyCode == 109){//"-"[缩小]
b = b * 1.1;
element.all("vg1").coordsize = (1024 * b) + "," + (768 * b);
}
}
function inputXML(argXML){
try{
objGlobal = __objGlobalCommonInst;
}catch(e){}
try{
if(!objGlobal){
objGlobal = parent.__objGlobalCommonInst;
}
}catch(e){}
if(!objGlobal){
objGlobal = parent.parent.__objGlobalCommonInst;
}
try{
if(typeof(objGlobal) == "undefined"){
objGlobal = window.dialogArguments.__objGlobalCommonInst;
}
}catch(e){}
return objGlobal.inputXML(argXML);
}
//-->
</script>
</public:component>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -