⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 chartheader.jsp

📁 国外的一套开源CRM
💻 JSP
📖 第 1 页 / 共 2 页
字号:
          PieElements[PieElements.length - 1].setAttribute("style", "stroke:black;fill:" + Color)
          PieElements[PieElements.length - 1].setAttribute("onmouseover", "DisplayInfo('" + Name + "', '" + Value + "')")
          PieElements[PieElements.length - 1].setAttribute("onmouseout", "DisplayInfo(' ', ' ')")
          ParentGroup1.appendChild(PieElements[PieElements.length - 1])
          
          BarElements[BarElements.length] = SVGDocument.createElement("path")
          BarTexts[BarTexts.length] = SVGDocument.createElement("text")
          
          BarElements[BarElements.length - 1].setAttribute("style", "stroke:black;fill:" + Color)
          BarElements[BarElements.length - 1].setAttribute("onmouseover", "BarTexts[" + (BarTexts.length - 1) + "].getStyle().setProperty('visibility', 'show')")
          BarElements[BarElements.length - 1].setAttribute("onmouseout",  "BarTexts[" + (BarTexts.length - 1) + "].getStyle().setProperty('visibility', 'hidden')")
          ParentGroup2.appendChild(BarElements[BarElements.length - 1])
          
          BarTexts[BarTexts.length - 1].setAttribute("style", "text-anchor:end;font-weight:bold;font-size:13;visibility:hidden")
          BarTexts[BarTexts.length - 1].setAttribute("x", "188")
          BarTexts[BarTexts.length - 1].appendChild(SVGDocument.createTextNode(Value + " -"))
          SVGDocument.getElementById("barsidetext").appendChild(BarTexts[BarTexts.length - 1])

          Names[Names.length - 1].appendChild(SVGDocument.createTextNode(Name + ""))
          Names[Names.length - 1].setAttribute("transform", "rotate(45)")

          SVGDocument.getElementById("labels").appendChild(Names[Names.length - 1])
          
          Refresh()
          
          if (Repress){
            Removed = true;
			}
          else
            {
              Removed = false
              Grandparent1.appendChild(ParentGroup1)
              Grandparent2.appendChild(ParentGroup2)
            }
        }
        
      function Refresh()
        {
          PieTotalSize = 0
          BarTotalSize = 0
          MaxSize = 0
          
          for (var I = 0; I < Values.length; I++)
            {
              PieTotalSize += Values[I]
              BarTotalSize++

              if (Values[I] > MaxSize)
                MaxSize = Values[I]
            }
          
          PieStart = 0
          BarStart = 0

          if (PieTotalSize > 0)
            for (var I = 0; I < Values.length; I++)
              {
                PieStart = DrawPieSegment(PieStart, Values[I] / PieTotalSize, PieElements[I], I)
                BarStart = DrawBarSegment(BarStart, Values[I] / MaxSize, BarElements[I], BarTexts[I], Names[I])
              }
          
          SVGDocument.getElementById("max").replaceChild(SVGDocument.createTextNode(MaxSize + ""), SVGDocument.getElementById("max").getFirstChild())
          SVGDocument.getElementById("min").replaceChild(SVGDocument.createTextNode("0"), SVGDocument.getElementById("min").getFirstChild())

        }
        
      function DeleteSegment()
        {
          if (ActiveSegment == "Pie")
            {  
              NewValues = new Array()
              NewNames = new Array()
              NewPieElements = new Array()
              NewBarElements = new Array()
              NewBarTexts = new Array()
              NewDeleteList = new Array()
              
              SomethingDeleted = false
              
              CurrentCopySpot = 0
              for (var I = 0; I < PieElements.length; I++)
                {
                  if (!(DeleteList[I]))
                    {
                      NewValues[CurrentCopySpot] = Values[I]
                      NewNames[CurrentCopySpot] = Names[I]
                      NewPieElements[CurrentCopySpot] = PieElements[I]
                      NewBarElements[CurrentCopySpot] = BarElements[I]
                      NewBarTexts[CurrentCopySpot] = BarTexts[I]
                      NewDeleteList[CurrentCopySpot] = DeleteList[I]
    
                      NewBarElements[CurrentCopySpot].setAttribute("onmouseover", "BarTexts[" + CurrentCopySpot + "].getStyle().setProperty('visibility', 'show')")
                      NewBarElements[CurrentCopySpot].setAttribute("onmouseout",  "BarTexts[" + CurrentCopySpot + "].getStyle().setProperty('visibility', 'hidden')")
                      CurrentCopySpot++
                    }
                  else
                    {
                      SomethingDeleted = true
                      
                      PieElements[I].getParentNode().removeChild(PieElements[I])
                      BarElements[I].getParentNode().removeChild(BarElements[I])
                      BarTexts[I].getParentNode().removeChild(BarTexts[I])
                      Names[I].getParentNode().removeChild(Names[I])
                    }
                }
              
              if (SomethingDeleted)
                {            
                  Values = NewValues
                  Names = NewNames
                  PieElements = NewPieElements
                  BarElements = NewBarElements
                  BarTexts = NewBarTexts
                  DeleteList = NewDeleteList
              
                  Refresh()
                }
              else
                alert("To delete segments, click on the segments to be deleted to pull them out, then click on the Delete button")
            }
          else
            {
              NewValues = new Array()
              NewNames = new Array()
              NewPieElements = new Array()
              NewBarElements = new Array()
              NewBarTexts = new Array()
              NewDeleteList = new Array()
              
              SomethingDeleted = false
              
              CurrentCopySpot = 0
              for (var I = 0; I < PieElements.length - 1; I++)
                {
                  NewValues[I] = Values[I]
                  NewNames[I] = Names[I]
                  NewPieElements[I] = PieElements[I]
                  NewBarElements[I] = BarElements[I]
                  NewBarTexts[I] = BarTexts[I]
                  NewDeleteList[I] = DeleteList[I]
    
                  NewBarElements[I].setAttribute("onmouseover", "BarTexts[" + CurrentCopySpot + "].getStyle().setProperty('visibility', 'show')")
                  NewBarElements[I].setAttribute("onmouseout",  "BarTexts[" + CurrentCopySpot + "].getStyle().setProperty('visibility', 'hidden')")
                  CurrentCopySpot++
                }

              if (PieElements.length > 0)
                {
                  SomethingDeleted = true
                      
                  PieElements[PieElements.length - 1].getParentNode().removeChild(PieElements[PieElements.length - 1])
                  BarElements[PieElements.length - 1].getParentNode().removeChild(BarElements[PieElements.length - 1])
                  BarTexts[PieElements.length - 1].getParentNode().removeChild(BarTexts[PieElements.length - 1])
                  Names[PieElements.length - 1].getParentNode().removeChild(Names[PieElements.length - 1])
                }
              
              if (SomethingDeleted)
                {            
                  Values = NewValues
                  Names = NewNames
                  PieElements = NewPieElements
                  BarElements = NewBarElements
                  BarTexts = NewBarTexts
                  DeleteList = NewDeleteList
              
                  Refresh()
                }
            }
        }
        
      parent.deleteOuties = DeleteSegment
      
        
      function DrawBarSegment(Start, Height, Element, Text, Label)
        {
          XOffset3D = 10
          YOffset3D = 5
        
          PathData = "M" + (Start + (BarChartWidth / BarTotalSize)) + ",0"
          PathData = PathData + "h" + (BarChartWidth / BarTotalSize * -1)
          PathData = PathData + "v" + (Height * BarChartHeight * -1)
          PathData = PathData + "l" + XOffset3D + ",-" + YOffset3D
          PathData = PathData + "h" + (BarChartWidth / BarTotalSize)
          PathData = PathData + "v" + (Height * BarChartHeight)
          PathData = PathData + "l-" + XOffset3D + "," + YOffset3D
          PathData = PathData + "v" + (Height * BarChartHeight * -1)
          PathData = PathData + "h" + (BarChartWidth / BarTotalSize * -1)
          PathData = PathData + "h" + (BarChartWidth / BarTotalSize)
          PathData = PathData + "l" + XOffset3D + ",-" + YOffset3D
          PathData = PathData + "l-" + XOffset3D + "," + YOffset3D
          
          Element.setAttribute("d", PathData)
          
          Label.setAttribute("x", Start / AngleFactor)
          Label.setAttribute("y", Start * -1 / AngleFactor)
          
          Text.setAttribute("y", (275 - BarChartHeight * Height))
          
          return Start + BarChartWidth / BarTotalSize
        }
        
      function DrawPieSegment(Start, Size, Element, ID)
        {
          PathData = "M0,0L" 
          PathData = PathData + PieChartSize * Math.sin(Start * Math.PI * 2) + "," + PieChartSize * Math.cos(Start * Math.PI * 2)
          if (Size >= .5)
            PathData = PathData + "A" + PieChartSize + " " + PieChartSize + " 1 1 0 " + PieChartSize * Math.sin((Start + Size) * Math.PI * 2) + "," + PieChartSize * Math.cos((Start + Size) * Math.PI * 2)
          else
            PathData = PathData + "A" + PieChartSize + " " + PieChartSize + " 0 0 0 " + PieChartSize * Math.sin((Start + Size) * Math.PI * 2) + "," + PieChartSize * Math.cos((Start + Size) * Math.PI * 2)
          PathData = PathData + "z"
          
          Element.setAttribute("d", PathData)
          if (Start > 0)
            Element.setAttribute("onclick", "MoveSegment(evt, " + (Start + Size / 2) + ", true, " + ID + ")")
          else
            {
              DeleteList[ID] = true;

              Angle = Start + Size / 2
            
              X = MoveDistance * Math.sin(Angle * 2 * Math.PI)
              Y = MoveDistance * Math.cos(Angle * 2 * Math.PI)

              Element.setAttribute("transform", "translate(" + X + "," + Y + ")")
              Element.setAttribute("onclick", "MoveSegment(evt, " + ((Start + Size / 2) * -1) + ", false, " + ID + ")")
            }
          
          return Start + Size
        }
        
        
      function MoveSegment(MouseEvent, Angle, CanBeDeleted, ID)
        {
          Element = MouseEvent.getTarget()

          if (Angle < 0)
            {
              X = 0
              Y = 0
            }
          else
            {
              X = MoveDistance * Math.sin(Angle * 2 * Math.PI)
              Y = MoveDistance * Math.cos(Angle * 2 * Math.PI)
            }
            
          DeleteList[ID] = CanBeDeleted
          
          Element.setAttribute("transform", "translate(" + X + "," + Y + ")")
          Element.setAttribute("onclick", "MoveSegment(evt, " + (Angle * -1) + ", " + (!CanBeDeleted) + ", " + ID + ")")
        }
        
      function DisplayInfo(Text, Value)
        {
          if (Text != " ")
            Percent = " (" + Math.round(Value / PieTotalSize * 10000) / 100 + "%)"
          else
            Percent = ""
          
          NewItem = SVGDocument.createTextNode(Value + Percent)
          SVGDocument.getElementById("labelamount").replaceChild(NewItem, SVGDocument.getElementById("labelamount").getFirstChild())

          NewItem = SVGDocument.createTextNode(Text + "")
          SVGDocument.getElementById("labelitem").replaceChild(NewItem, SVGDocument.getElementById("labelitem").getFirstChild())

          if (Text + Value == "  ")
            NewItem = SVGDocument.createTextNode(" ")
          else
            NewItem = SVGDocument.createTextNode(":")
          SVGDocument.getElementById("labelcolon").replaceChild(NewItem, SVGDocument.getElementById("labelcolon").getFirstChild())
        }
        
      function SetTitle(Text)
        {
          NewItem = SVGDocument.createTextNode(Text + "")
          SVGDocument.getElementById("title").replaceChild(NewItem, SVGDocument.getElementById("title").getFirstChild())
        }
        
      function SetAxis(Text)
        {
          NewItem = SVGDocument.createTextNode(Text + "")
          SVGDocument.getElementById("axis").replaceChild(NewItem, SVGDocument.getElementById("axis").getFirstChild())
          NewItem = SVGDocument.createTextNode(Text + "")
          SVGDocument.getElementById("subtitle").replaceChild(NewItem, SVGDocument.getElementById("subtitle").getFirstChild())
        }
        
      function ShowPie()
        {
          ActiveSegment = "Pie"
          
          SVGDocument.getElementById("showpierect").getStyle().setProperty("fill", "blue");
          SVGDocument.getElementById("showbarrect").getStyle().setProperty("fill", "#FC8D4F");

          SVGDocument.getElementById("barchart1").getStyle().setProperty("visibility", "hidden");
          SVGDocument.getElementById("subtitle").getStyle().setProperty("visibility", "show");
          SVGDocument.getElementById("piechart1").getStyle().setProperty("visibility", "show");
          SVGDocument.getElementById("pieitemlabel").getStyle().setProperty("visibility", "show");
          SVGDocument.getElementById("barsidetext").getStyle().setProperty("visibility", "hidden");
        }
        
      function ShowBar()
        {
          ActiveSegment = "Bar"
          
          SVGDocument.getElementById("showpierect").getStyle().setProperty("fill", "#FC8D4F");
          SVGDocument.getElementById("showbarrect").getStyle().setProperty("fill", "blue");

          SVGDocument.getElementById("barchart1").getStyle().setProperty("visibility", "show");
          SVGDocument.getElementById("subtitle").getStyle().setProperty("visibility", "hidden");
          SVGDocument.getElementById("piechart1").getStyle().setProperty("visibility", "hidden");
          SVGDocument.getElementById("pieitemlabel").getStyle().setProperty("visibility", "hidden");
          SVGDocument.getElementById("barsidetext").getStyle().setProperty("visibility", "show");
        }
        
      parent.clearChart = ClearChart
      parent.addChartValue = AddChartValue
      parent.setTitle = SetTitle
      parent.setAxis = SetAxis
    

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -