📄 cakystat.htc
字号:
var vmlCaky = "";
var vmlTitle = "";
var vAltText = "";
var lastPercent = 0;
var curPercent = 0;
var vLengendLeft = 0;
var topScale = 0;
try{
oItemNodesList = objXMLDoc.selectNodes("//root/item");
if(!oItemNodesList || !oItemNodesList.length) return;
if(hasLegend){
if(oItemNodesList.length <15){//装配vmlTitle
vmlTitle = "<v:roundrect style='border:solid 0px green;left:600;top:100;width:6700;height:350;' filled='false' stroked='false'><v:textbox style='border:solid 0px blue;font-size:10.5pt;font-weight:bold;text-align:center;'>" + vCaption + "</v:textbox></v:roundrect>";
}else if(oItemNodesList.length >= 15 && oItemNodesList.length <30){
vmlTitle = "<v:roundrect style='border:solid 0px green;left:600;top:100;width:8700;height:350;' filled='false' stroked='false'><v:textbox style='border:solid 0px blue;font-size:10.5pt;font-weight:bold;text-align:center;'>" + vCaption + "</v:textbox></v:roundrect>";
}else{
vmlTitle = "<v:roundrect style='border:solid 0px green;left:600;top:100;width:10200;height:350;' filled='false' stroked='false'><v:textbox style='border:solid 0px blue;font-size:10.5pt;font-weight:bold;text-align:center;'>" + vCaption + "</v:textbox></v:roundrect>";
}
}else{
vmlTitle = "<v:roundrect style='border:solid 0px green;left:800;top:100;width:5200;height:350;' filled='false' stroked='false'><v:textbox style='border:solid 0px blue;font-size:10.5pt;font-weight:bold;text-align:center;'>" + vCaption + "</v:textbox></v:roundrect>";
}
for(var i=0;i<oItemNodesList.length;i++){//装配vmlCaky
if(parseFloat(oItemNodesList[i].childNodes[1].text) != 0){//
vAltText = "名称: " + oItemNodesList[i].childNodes[0].text + "\n数值: " + oItemNodesList[i].childNodes[1].text + "\n比率: " +oItemNodesList[i].childNodes[2].text;
if(i==0){
lastPercent = parseFloat(oItemNodesList[i].childNodes[2].text);
curPercent = lastPercent;
vmlCaky += createCakyVML(0,curPercent*3.6,objCakyColorArray[i],vAltText,4000,i);
}else if(i== (oItemNodesList.length - 1)){
curPercent = parseFloat(oItemNodesList[i].childNodes[2].text);
vmlCaky += createCakyVML(lastPercent*3.6,100*3.6,objCakyColorArray[i],vAltText,4000,i);
}else{
curPercent = parseFloat(oItemNodesList[i].childNodes[2].text) + lastPercent;
vmlCaky += createCakyVML(lastPercent*3.6,curPercent*3.6,objCakyColorArray[i],vAltText,4000,i);
lastPercent = curPercent;
}
}
if(booleanHasLegend){//有图例
if(i>=0 && i< 15){//装配图例
vLengendLeft = 6400;
topScale = i;
}else if(i>=15 && i<30){
vLengendLeft = 7900;
topScale = i - 15;
}else if(i>=30){
vLengendLeft = 9400;
topScale = i - 30;
}
vmlCaky +="<v:rect style='position:absolute;left:" + vLengendLeft + ";top:" + (900 + topScale*250) + ";width:40;height:20;z-index:1;' coordsize='5000,5000' fillcolor='" + objCakyColorArray[i] + "' stroked='false'><v:shadow on='True' offset='0pt,1pt' color='black'/></v:rect>";//图例
vmlCaky +="<v:rect style='position:absolute;border:solid 0px green;left:" + (vLengendLeft + 150) + ";width:1500;top:" + (820 + topScale*250) + ";height:300' filled='false' stroked='false'><v:textbox style='position:absolute;border:solid 0px blue;left:0;top:0;font-size:9pt;'>" + oItemNodesList[i].childNodes[0].text + "(" + oItemNodesList[i].childNodes[1].text + ")</v:textbox></v:rect>";//图例说明文字
if(i == oItemNodesList.length-1){//总计
vmlCaky += "<v:line style='position:absolute;left:" + (vLengendLeft + 50) + ";top:" + (1000 + (topScale+1)*250) + ";z-index:1;' from='0,0' to='110,0' strokecolor='red' strokeweight='3pt'><v:stroke EndArrow='Classic'/></v:line>";
vmlCaky += "<v:rect style='position:absolute;left:" + (vLengendLeft + 150) + ";width:1500;top:" + (880 + (topScale+1)*250) + ";height:300' filled='false' stroked='false'><v:textbox style='position:absolute;border:solid 0px blue;left:0;top:0;font-size:9pt;font-weight:bold;color:red;'>总计:" + patientTotal + "</v:textbox></v:rect>";
}
}
}
if(vHasBorder){//有边框
vmlEnd = "<v:group id='" + vTagID + "' style='position:absolute;border:solid " + vBorderWeight + "px " + vBorderColor + ";background:" + vBackColor + ";left:" + vLeft + "px;top:" + vTop + "px;width:" + vWidth + "px;height:" + vHeight + "px;' coordsize='2000,2000' xmlns:v='urn:schemas-microsoft-com:vml'>" + vmlTitle + vmlCaky + "<v:rect style='position:absolute;left:0;top:0;height:5500;' stroked='false'/></v:group>";
}else{//无边框
vmlEnd = "<v:group id='" + vTagID + "' style='position:absolute;background:" + vBackColor + ";left:" + vLeft + "px;top:" + vTop + "px;width:" + vWidth + "px;height:" + vHeight + "px;' coordsize='2000,2000' xmlns:v='urn:schemas-microsoft-com:vml'>" + vmlTitle + vmlCaky + "<v:rect style='position:absolute;left:0;top:0;height:5500;' stroked='false'/></v:group>";
}
objContainerDiv.insertAdjacentHTML("afterBegin",vmlEnd);//生成饼图
var objShapeList = objContainerDiv.firstChild.all.tags("shape");
for( var i = 0; i < objShapeList.length; i ++ ){
objShapeList[i].onmouseover = processShapeMouseoverEvent;
objShapeList[i].onmouseout = processShapeMouseoutEvent;
}
}catch(e){}
}
function processShapeMouseoverEvent(){
var objSrc = event.srcElement;
objSrc.coordsize = "3500,3500";
objSrc.fillcolor = "black";
}
function processShapeMouseoutEvent(){
var objSrc = event.srcElement;
objSrc.coordsize = "4000,4000";
objSrc.fillcolor = objCakyColorArray[objSrc.colorIndex];
}
function refresh(){//
with(element.style){
left = vLeft;
top = vTop;
width = vWidth;
height = vHeight;
}
with(objContainerDiv.style){
left = element.style.left;
top = element.style.top;
width = element.style.width;
height = element.style.height;
}
}
function putXMLSource(argXMLSource){
var vSumXSLT;
var vAddElementXSLT;
var objGlobal;
try{
objGlobal = __objGlobalCommonInst;
}catch(e){}
try{
if(!objGlobal){
objGlobal = parent.__objGlobalCommonInst;
}
}catch(e){}
if(!objGlobal){
objGlobal = parent.parent.__objGlobalCommonInst;
}
vSumXSLT = '<?xml version="1.0" encoding="GBK"?><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"><xsl:output method="xml" version="1.0" encoding="GBK" indent="no" omit-xml-declaration="yes"/><xsl:template match="/"><xsl:value-of select=\'sum(//value)\'/></xsl:template></xsl:stylesheet>';
vAddElementXSLT = '<?xml version="1.0" encoding="GBK"?><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"><xsl:output method="xml" version="1.0" encoding="GBK" indent="no" omit-xml-declaration="no"/><xsl:param name="valueCnt" select="sum(root/item/value)"/><xsl:template match="/"><root><xsl:apply-templates select="//root"/></root></xsl:template><xsl:template match="//root"><xsl:for-each select="item"><xsl:copy><xsl:element name="name"><xsl:value-of select="name"/></xsl:element><xsl:element name="value"><xsl:value-of select="value"/></xsl:element><xsl:element name="percentValue"><xsl:choose><xsl:when test="format-number(value div $valueCnt,\'###.##%\') = \'%\'"><xsl:value-of select="\'0%\'"/></xsl:when><xsl:otherwise><xsl:value-of select="format-number(value div $valueCnt,\'###.##%\')"/></xsl:otherwise></xsl:choose></xsl:element></xsl:copy></xsl:for-each></xsl:template></xsl:stylesheet>';
objXMLDoc = objGlobal.transformXMLToNode(argXMLSource,vAddElementXSLT);
patientTotal = parseFloat(objGlobal.transformXML(objXMLDoc,vSumXSLT));
}
function putLeft(argLeft){
vLeft = argLeft;
}
function getLeft(){
return vLeft;
}
function putTop(argTop){
vTop = argTop;
}
function getTop(){
return vTop;
}
function putWidth(argWidth){
vWidth = argWidth;
}
function getWidth(){
return vWidth;
}
function putHeight(argHeight){
vHeight = argHeight;
}
function getHeight(){
return vHeight;
}
function putCaption(argCaption){
vCaption = argCaption;
}
function putBackColor(argBackColor){
vBackColor = argBackColor;
}
function putHasBorder(argHasBorder){
if(argHasBorder == "yes"){
vHasBorder = true;
}else if(argHasBorder == "no"){
vHasBorder = false;
}
}
function putBorderColor(argBorderColor){
vBorderColor = argBorderColor;
}
function putBorderWeight(argBorderWeight){
if(argBorderWeight.match(/^[0-9]*$/) != null){
vBorderWeight = parseInt(argBorderWeight);
}
}
function putTagID(argTagID){
vTagID = argTagID;
}
function putHasLegend(argHasLegend){
if(argHasLegend == "no"){
booleanHasLegend = false;
}else if(argHasLegend == "yes"){
booleanHasLegend = true;
}
}
function putBlackDistance(argBlankDistance){
intBlankDistance = argBlankDistance;
}
//-->
</script>
</public:component>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -