一个显示图例的coldfusion程序

原创 2012年03月29日 05:58:20

这个程序只是让使用者更简单地显示图例。希望对大家有帮助。在IE,Firefox和Chrome测试过。当然,可能要大家自己测试一下才行。

调用如下:

<cf_这个程序 color1="red" text1="你好" color2=“blue” text2=“大家好”>

显示结果如下:

你好大家好

 

代码如下:

<cfsilent>
<cfparam name="attributes.height" default="10">
<cfparam name="attributes.width" default="10">
<cfparam name="attributes.topmargin" default="3">
<cfparam name="attributes.float" default=""> <!--- empty, left or right --->
<cfparam name="attributes.PaddingBetweenLegend" default="4">
<cfparam name="attributes.PaddingBetweenColorAndText" default="2">
<cfset legendSequence = "">
<cfloop collection="#attributes#" item="attribute">
	<cfset numberSequence = "">
	<cfif isvalid("regex", lcase(attribute), "color(\d+)$")>
		<cfset numberSequence = replacenocase(attribute,"color", "")>
	</cfif>
	<cfif isvalid("regex", lcase(attribute), "text(\d+)$")>
		<cfset numberSequence = replacenocase(attribute,"text", "")>
	</cfif>
	<cfif listfind(legendSequence, numberSequence) eq 0>
		<cfset legendSequence = listappend(legendSequence, numberSequence)>
	</cfif>
</cfloop>
<cfset legendSequence = listsort(legendSequence, "numeric")>
<cfif legendSequence eq ""><cfexit></cfif>
<cfset displayString = "">
<cfloop list="#legendSequence#" index="keyLegend">
	<cfif isdefined("attributes.color#keyLegend#")>
		<cfset colorName = attributes["color" & keyLegend]>
	<cfelse>
		<cfset colorName = "##ffffff">
	</cfif>
	<cfif isdefined("attributes.text#keyLegend#")>
		<cfset textName = attributes["text" & keyLegend]>
	<cfelse>
		<cfset textName = "N/A">
	</cfif>	
	<cfoutput><cfsavecontent variable="displaySubstring"><span style="width:#attributes.width#px; height:#attributes.height#px; font-size:5px; padding:0px;margin:0px; display:inline-block; background-color:#colorName#; border:1px solid black;"></span><span style="margin-left:#attributes.PaddingBetweenColorAndText#px;margin-right:#attributes.PaddingBetweenLegend#px;"> #textName#</span></cfsavecontent></cfoutput>
	<cfset displayString = displayString & displaySubstring>
</cfloop>
<cfset cssFloat = attributes.float>
<cfif cssFloat neq "">
	<cfset cssFloat = "float:" & cssFloat & ";">
</cfif>
<cfset cssMarginTop = attributes.topmargin>
<cfif cssMarginTop neq "">
	<cfset cssMarginTop = "margin-top:" & cssMarginTop & ";">
</cfif>
</cfsilent>
<cfoutput><div style="#cssMarginTop# #cssFloat#">#displayString#</div></cfoutput>

相关文章推荐

hicharts 每次显示一个图例的数据

var chart = null; $(function () { chart = new Highcharts.Chart({ chart: { ...
  • wd4java
  • wd4java
  • 2015年10月21日 11:40
  • 778

Coldfusion里一个不错的检测函数isvalid

isvalid是一个不错的函数。以前bluedragon不兼容它,所以没有用。现在新的版本可以兼容了,所以留意到它了。它能很简单检测不同的类型。如:电话号码,信用卡号码,一个范围内的整数等等。能检测的...
  • dogfish
  • dogfish
  • 2011年01月29日 03:07
  • 701

soot生成java程序的控制流图例子

  • 2017年03月23日 20:42
  • 11.98MB
  • 下载

三角函数图例程序

  • 2013年08月08日 11:31
  • 336KB
  • 下载

Echarts中legend图例默认只有一个为选中状态

问题:Echarts中legend图例默认全部选中,折线图全部显示 方法:使用legend.selected,例的选中状态,让对应data[i]的值为false 代码: lege...

一个简单的win32截图例子

该代码为把当前屏幕截图并保存为文件的代码。 SaveBitmapToFile.cpp文件在我前面一章文章中:点此进入 #include "SaveBitmapToFile.cpp" #inclu...

【已解决】Echarts报表表头过多情况下,图例与图表线条重叠显示

当Echarts报表表头过多时,虽然Echarts会做自适应,但是由于图例文字可能过长等,图例与图表线条难免会重叠显示。如下图所示:     参考这篇文章,以及Echarts的官方文档,得出以下解决方...
  • doleria
  • doleria
  • 2016年09月11日 14:26
  • 8322

【Qt编程】基于QWT的曲线绘制及图例显示操作

在《QWT在QtCreator中的安装与使用》一文中,我们完成了QWT的安装,这篇文章我们讲讲基础曲线的绘制功能。     首先,我们新建一个Qt应用程序,然后一路默认即可。这时,你会发现总共有:ma...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:一个显示图例的coldfusion程序
举报原因:
原因补充:

(最多只允许输入30个字)