`
liuxi1024
  • 浏览: 390953 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

VML应用-利用ECOTree绘制树形结构图

 
阅读更多

1、基本概念

VML的全称是Vector Markup Language(矢量可标记语言),VML相当于IE里面的画笔,能实现你所想要的图形,而且结合脚本,可以让图形产生动态的效果。VML是微软1999年9月附带IE5.0发布的。具体内容可以上网搜索。

网址1:http://www.w3.org/TR/1998/NOTE-VML-19980513

 

2、利用VML实现树形结构图

通过后台数据库查询,查询销售流向。

 

3、自己动手绘制流程图

效果如图:


<html xmlns:v="urn:schemas-microsoft-com:vml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GBK">
<title>Insert title here</title>
<style type="text/css">
  v\:*{
  behavior:url(#default#VML);
  }
    
  v\:RoundRect{
  text-align:center;
  position:relative;
  }
    
  v\:TextBox{
  vertical-align:middle;
  font-size:13px;
  }
  </style>
</head>
<body>
<div class="grid" align="center">
<table class="gridbody" cellpadding="1" cellspacing="0" rules="all">
	<tr class="gridtitle">
		<td align="left" colspan="7">供货商所有关联销售信息查询</td>
	</tr>
	<tr class="griditem">
	<td>
<center>
<script>

	//第一层树结构
	var incv = new Array();
	incv[0] = "1";
	incv[1] = "IOS111052500018";
	incv[2] = "临沂新程金锣肉制品集团有限公司";

	//第二层树结构
	var dcv=new Array(); //定义一维数组    
	
	dcv[0]=new Array(); //将每一个子元素又定义为数组    
	dcv[0][0]='2';
	dcv[0][1]='5000100003';
	dcv[0][2]='华联超市经七超市金锣专柜';

	dcv[1]=new Array(); //将每一个子元素又定义为数组    
	dcv[1][0]='3';
	dcv[1][1]='5000100002';
	dcv[1][2]='华联超市世购超市金锣专柜';

	dcv[2]=new Array(); //将每一个子元素又定义为数组    
	dcv[2][0]='4';
	dcv[2][1]='5000100001';
	dcv[2][2]='华联超市嘉华超市金锣专柜';

	document.write(drawXX(incv,dcv)); 

	function drawXX(iobj,dobj){
		v1 = 20+40*(dobj.length-1);
		v2 = v1/2;
		v3 = v2 - 12;

		//alert("start -- ");
		var start = "<v:group coordsize='600,800' style='width:600px;height:800px;'>";
		var is="<v:RoundRect style='width:300px;height:28px;left:0px;top:"
			+     v3
			+    "px' align='center'>"
			+    "<v:shadow on='True' type='single' color='#b3b3b3' offset='5px,5px'/><v:TextBox >"
			+     iobj[1] + "(" + iobj[2] + ")"
			+    "</a></v:TextBox></v:RoundRect>";
		var ls="";
		ls +="<v:line from='300," + v2 + "' to='340," + v2 + "' />"
		ls +="<v:line from='340,20' to='340," + v1 + "' />"

		var ds ="";
			for(var i=0;i<dobj.length;i++){
				ds +="<v:line from='340," + (20+i*40) + "' to='380," + (20+i*40) + "' />"
				ds +="<v:RoundRect style='width:280px;height:28px;left:380px;top:" + (8+i*40) + "px;' align='center'>"
				ds +="<v:shadow on='True' type='single' color='#b3b3b3' offset='5px,5px'/>";
				ds +="<v:TextBox >" + dobj[i][1] +"("+ dobj[i][2] +")" + "</v:TextBox>";
				ds +="</v:RoundRect>";
			}

		var end = "</v:group>";

		var draws = start + is + ls + ds + end;

		return draws;
	}
</script>

</center>
</td>
</tr>
</table>
</div>
</body>
</html>

 

4、利用ECOTree提供的js 实现更为复杂的树形结构图

附件 graphic_javascript_tree_src.zip

效果如图:



 

 

<%@ page language="java"%>
<%@ page contentType="text/html;charset=GBK"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jstl/fmt"%>
<%@ taglib prefix="html" uri="http://struts.apache.org/tags-html"%>

<html xmlns:v="urn:schemas-microsoft-com:vml">
	<head>
		<title></title>
		<script type="text/javascript" src="../js/ECOTree.js"></script>
		<link rel="stylesheet" href="<c:url value='/css/ECOTree.css' />" />
		<link rel="stylesheet" href="<c:url value='/css/style.css' />" />	
		<style type="text/css">
		  v\:*{
		  behavior:url(#default#VML);
		  }
		    
		  v\:RoundRect{
		  text-align:center;
		  position:relative;
		  }
		    
		  v\:TextBox{
		  vertical-align:middle;
		  font-size:13px;
		  }
		  </style>
		<script>
			var t = null;
			
			function CreateTree() {
				t = new ECOTree('t','recallTreeDiv');						
				t.config.iRootOrientation = ECOTree.RO_LEFT;
				t.config.defaultNodeWidth = 246;
				t.config.defaultNodeHeight = 36;
				t.config.iSubtreeSeparation = 20;
				t.config.iSiblingSeparation = 10;										
				t.config.linkType = 'B';
				t.config.useTarget = false;
				t.config.nodeFill = ECOTree.NF_GRADIENT;
				t.config.colorStyle = ECOTree.CS_LEVEL;
				//t.config.levelColors = ["#966E00","#BC9400","#D9B100","#FFD700"];
				//t.config.levelBorderColors = ["#FFD700","#D9B100","#BC9400","#966E00"];
				t.config.nodeColor = "#FFD700";
				t.config.nodeBorderColor = "#FFD700";
				t.config.linkColor = "#5555FF";

				<%
				java.util.List list = (java.util.List)request.getAttribute("recallList"); 
				for(int i=0;i<list.size();i++) {
					Object obj = list.get(i);
					org.mcp.data.logic.BackwardNode2 backwardNode = (org.mcp.data.logic.BackwardNode2)obj;
				%>
				t.add('<%=backwardNode.getBatch()%>','<%=backwardNode.getPbatch()%>','<%=backwardNode.getBatch()%><br/><%=backwardNode.getEnterName()%>');
				<%
				}
				%>
				t.UpdateTree();
			}									
		</script>
	</head>
	<body onload="CreateTree();">
	
	<h4>供货商所有关联销售流向信息示意图&nbsp;&nbsp;&nbsp;&nbsp;<input type="button" value="返 回" onclick="javascript:window.history.go(-1)"></h4>
	<div id="recallTreeDiv"></div>
	</body>
</html>

 

 

 

 

  • 大小: 16.3 KB
  • 大小: 5.8 KB
分享到:
评论
1 楼 青云归来 2013-08-05  
楼主,这个在火狐和谷歌下面支持是不是有问题啊,我在IE下面显示正常,Chorme Safari 和firefox下面显示都有问题的

相关推荐

    vml-rose流程图

    在描述中提到的"基于vml的web绘图代码",意味着这个压缩包可能包含了一系列用JavaScript或者其他客户端脚本语言编写的代码,这些代码利用了VML来动态生成和操作流程图。在Web开发中,这种技术通常用于那些需要在不...

    vml+javascript直接在浏览器中绘制动态曲线图实例(源码-+Think in vml +vml+极道教程)

    在“vml+javascript直接在浏览器中绘制动态曲线图实例”中,我们主要学习如何通过JavaScript与VML结合,在不支持SVG(Scalable Vector Graphics)的老版IE浏览器中绘制动态曲线图。SVG是另一种更现代的矢量图形标准...

    EcoTree树型展示控件

    1. **ECOTree.css** - 这是EcoTree控件的样式表文件,包含用于定义树形结构显示样式的CSS规则。通过这些规则,可以定制节点的外观,如颜色、字体、边框、背景以及展开和折叠时的动画效果。 2. **advanced.htm, ...

    VML应用实例大全教程

    VML应用实例大全教程

    js绘制的 ECOTree,支持IE,FF

    ECOTree利用了这两个技术的互补性,确保在所有主流浏览器中都能提供一致的用户体验。对于支持Canvas的浏览器,它会利用Canvas API来绘制那些精美、复杂的流程图;而对于不支持Canvas的老版本IE,它则切换到VML模式,...

    经典VML绘画源代码(基本包括所有图形的VML绘制)

    VML(Vector Markup Language)是一种基于XML的矢量图形语言,主要在Internet Explorer浏览器中使用,用于在网页上创建和展示复杂的图形。以下是对标题、描述和标签中提及的VML绘画知识点的详细解释: 1. **饼图...

    一个精致的VML地图

    在“一个精致的VML地图”这个主题中,我们关注的是如何利用VML技术来制作和展示地图。 VML的优势在于它可以描绘出清晰、精确的图形,无论放大多少倍都不会失真,这对于地图绘制来说尤其重要。它允许开发者通过编程...

    使用JSP+VML动态绘制列车运行图.pdf

    在本文中,作者赵旭辉和冯俊杰利用JSP(JavaServer Pages)技术与VML相结合,实现了动态绘制列车运行图的功能。通过JSP从后台读取列车时刻表数据,这些数据包括列车的出发时间、到达时间、停留时间等,然后利用VML在...

    自制:ASP.NET利用VML绘制统计图

    在“自制:ASP.NET利用VML绘制统计图”这个主题中,我们将探讨如何利用VML技术在ASP.NET环境下生成3D饼图和3D柱状图,以实现立体视觉效果。 1. **VML介绍** VML是Visual Markup Language的缩写,它允许开发者在HTML...

    在网页中利用VML画图

    在描述中提到的应用场景,例如显示CPU使用率、内存使用率等系统监控图表,VML可以提供一种解决方案来动态绘制曲线和图形。 VML是基于XML的,这意味着它的语法与HTML相似,可以在HTML文档中嵌入,使得在网页中集成...

    vml技术相关详细文档,介绍的vml的相关函数的应用和介绍

    以下是对VML技术及其相关函数应用的详细解释。 1. **VML概述** - VML使用XML语法,需要定义一个命名空间,通常以“v”为前缀。例如,在HTML文档中,可以声明`&lt;html xmlns:v="urn:schemas-microsoft-com:vml"&gt;`来...

    vml+javascript直接在浏览器中绘制动态曲线图实例(源码-+Think+in+vml++vml+极道教程)

    JavaScript与VML结合,可以实现动态、交互式的图形绘制,比如在本实例中,我们将探讨如何利用这两种技术在浏览器中绘制动态曲线图。 在浏览器的早期版本,特别是那些不支持SVG(Scalable Vector Graphics)或者...

    利用VML实现动态关系图

    **标题:“利用VML实现动态关系图”** **一、引言** VML,全称为Vector Markup Language,是一种基于XML的矢量图形语言,主要用于在网页上创建和显示矢量图形。在2000年代初,当SVG(Scalable Vector Graphics)...

    vml实例,实现画流程

    下面我们将详细讨论VML的语法和如何利用它来创建流程图。 1. **VML基础语法**: VML使用XML标签来定义图形元素。例如,`&lt;v:shape&gt;`标签用于创建基本形状,`&lt;v:line&gt;`用于绘制线条,`&lt;v:textbox&gt;`用于添加文本。每...

    vml+flashVML

    例如,开发者可以利用VML创建各种类型的图表,如条形图、饼图、线图等,这些图表可用于数据可视化,帮助用户更好地理解和分析信息。同时,由于VML是基于XML的,所以数据可以直接嵌入到图形中,方便数据驱动的动态...

    vml技术大全(中文手册,极道教程,入门教程及大量实例等)

    7. **组织结构图与多边形**:"vml 演练 组织结构图 样式.doc"和"vml手绘多边形_代码实例.doc"教你如何用VML构建复杂的组织结构图和多边形,这些在企业级应用中常见。 8. **2级标记stroke边框**:"VML编程之------2...

    vml开发的流程图

    在描述中提到的“javascript+vml开发的流程图”,意味着开发者利用JavaScript的灵活性和强大的事件处理能力,结合VML的矢量绘图功能,构建了一个能够展示流程步骤、状态转换的可视化工具。 文件"新建.html"很可能是...

    一个简单的VML绘图工具

    学习VML的关键在于理解其XML结构,每一个图形元素都是由XML标签定义的,这些标签携带了关于图形的信息,如位置、大小、颜色等。此外,VML还支持事件处理,使得图形可以响应用户的交互,如点击或鼠标移动。 VML虽然...

    论文研究-基于VML的复句关系层次树的可视化研究.pdf

    在现代汉语复句教学和研究中,为了分析复句的逻辑语义关系,经常需要绘制复句关系层次结构图。传统的做法是利用手工方式绘制,以图片的形式存储,但这种方式具有存储容量大、绘制工作量大的缺点。采用VML技术,在...

    基于jquery+raphael实现的可拖动树形图

    综上所述,这个项目利用了jQuery的事件处理和DOM操作能力,Raphaël的矢量图形绘制功能,以及SVG的高性能渲染,创建了一个可自定义、可交互的树形图,适用于流程管理和决策分析。通过这样的技术组合,开发者能够为...

Global site tag (gtag.js) - Google Analytics