ArgumentError: Error #1063: BasicChart/dataFunc() 的参数数量不匹配。应该有 2 个,当前为 3 个。

1、错误描述

ArgumentError: Error #1063: BasicChart/dataFunc() 的参数数量不匹配。应该有 2 个,当前为 3 个。
	at mx.charts.chartClasses::Series/cacheDefaultValues()[E:\dev\4.0.0\frameworks\projects\datavisualization\src\mx\charts\chartClasses\Series.as:1260]
	at mx.charts.series::LineSeries/updateData()[E:\dev\4.0.0\frameworks\projects\datavisualization\src\mx\charts\series\LineSeries.as:1188]
	at mx.charts.chartClasses::Series/validateData()[E:\dev\4.0.0\frameworks\projects\datavisualization\src\mx\charts\chartClasses\Series.as:1950]
	at mx.charts.series::LineSeries/describeData()[E:\dev\4.0.0\frameworks\projects\datavisualization\src\mx\charts\series\LineSeries.as:1273]
	at mx.charts.chartClasses::DataTransform/describeData()[E:\dev\4.0.0\frameworks\projects\datavisualization\src\mx\charts\chartClasses\DataTransform.as:282]
	at mx.charts.chartClasses::AxisBase/describeData()[E:\dev\4.0.0\frameworks\projects\datavisualization\src\mx\charts\chartClasses\AxisBase.as:238]
	at mx.charts.chartClasses::NumericAxis/get dataDescriptions()[E:\dev\4.0.0\frameworks\projects\datavisualization\src\mx\charts\chartClasses\NumericAxis.as:1264]
	at mx.charts.chartClasses::NumericAxis/autoGenerate()[E:\dev\4.0.0\frameworks\projects\datavisualization\src\mx\charts\chartClasses\NumericAxis.as:1281]
	at mx.charts.chartClasses::NumericAxis/updateCache()[E:\dev\4.0.0\frameworks\projects\datavisualization\src\mx\charts\chartClasses\NumericAxis.as:974]
	at mx.charts.chartClasses::NumericAxis/update()[E:\dev\4.0.0\frameworks\projects\datavisualization\src\mx\charts\chartClasses\NumericAxis.as:1108]
	at mx.charts.chartClasses::NumericAxis/getLabelEstimate()[E:\dev\4.0.0\frameworks\projects\datavisualization\src\mx\charts\chartClasses\NumericAxis.as:833]
	at mx.charts::AxisRenderer/measureLabels()[E:\dev\4.0.0\frameworks\projects\datavisualization\src\mx\charts\AxisRenderer.as:2056]
	at mx.charts::AxisRenderer/calcRotationAndSpacing()[E:\dev\4.0.0\frameworks\projects\datavisualization\src\mx\charts\AxisRenderer.as:1701]
	at mx.charts::AxisRenderer/adjustGutters()[E:\dev\4.0.0\frameworks\projects\datavisualization\src\mx\charts\AxisRenderer.as:1565]
	at mx.charts.chartClasses::CartesianChart/updateAxisLayout()[E:\dev\4.0.0\frameworks\projects\datavisualization\src\mx\charts\chartClasses\CartesianChart.as:2182]
	at mx.charts.chartClasses::CartesianChart/updateDisplayList()[E:\dev\4.0.0\frameworks\projects\datavisualization\src\mx\charts\chartClasses\CartesianChart.as:1391]
	at mx.core::UIComponent/validateDisplayList()[E:\dev\4.0.0\frameworks\projects\framework\src\mx\core\UIComponent.as:8531]
	at mx.managers::LayoutManager/validateDisplayList()[E:\dev\4.0.0\frameworks\projects\framework\src\mx\managers\LayoutManager.as:663]
	at mx.managers::LayoutManager/doPhasedInstantiation()[E:\dev\4.0.0\frameworks\projects\framework\src\mx\managers\LayoutManager.as:718]
	at mx.managers::LayoutManager/doPhasedInstantiationCallback()[E:\dev\4.0.0\frameworks\projects\framework\src\mx\managers\LayoutManager.as:1072]

2、错误原因

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
			   xmlns:s="library://ns.adobe.com/flex/spark"
			   xmlns:mx="library://ns.adobe.com/flex/mx"
			   width="100%" height="100%" fontSize="12"
			   fontFamily="微软雅黑">
	<s:layout>
		<s:BasicLayout/>
	</s:layout>
	<fx:Script>
		<![CDATA[
			import mx.charts.ChartItem;
			import mx.charts.chartClasses.Series;
			import mx.charts.series.items.LineSeriesItem;
			import mx.collections.ArrayCollection;
			import mx.events.FlexEvent;
			import mx.graphics.Stroke;

			[Bindable]
			//折线图数据绑定
			private var lineArray:ArrayCollection = new ArrayCollection([
				{seasons:"春季",rate:"0.48677"},
				{seasons:"夏季",rate:"0.122343232"},
				{seasons:"秋季",rate:"0.5657645"},
				{seasons:"冬季",rate:"0.67484889"}
			]);

			/**
			 * 设置折线图中比率的位数
			 */
			public function myDataFunction(series:Series, item:Object, fieldName:String):Object
			{
				var temp:Number = item.rate;
				var number:String = formatter.format(temp);
				return number;
			}  

			public function myFillFunction(item:ChartItem, index:Number):String
			{
				var curItem:LineSeriesItem = LineSeriesItem(item);
				var num:String = formatter.format(curItem.yNumber);
				return num;
			}

			public function myFilterFunction(item:Object):String
			{
				var temp:Number = item.rate;
				var number:String = formatter.format(temp);
				return number;
			}

			public function myDataFunction1(series:Series, item:Object, fieldName:String):Object
			{
				if (fieldName == 'yValue')
					return(formatter.format(item.rate));
				else if (fieldName == "xValue")
					return(formatter.format(item.seasons));
				else
					return null;
			}

			private function dataFunc( series:LineSeries, item : Object ):Object
			{
				var df : NumberFormatter = new NumberFormatter();
				df.precision = "2";
				df.rounding = "up";
				return df.format( item.rate);
			}

		]]>
	</fx:Script>
	<fx:Declarations>
		<mx:NumberFormatter id="formatter" precision="2" rounding="up"/>
	</fx:Declarations>

	<mx:VBox width="100%" height="100%" paddingBottom="10" paddingLeft="10" paddingRight="15"
			 paddingTop="10" horizontalAlign="center">
		<mx:LineChart id="line" width="100%" height="90%" dataProvider="{lineArray}" showDataTips="true">
			<mx:horizontalAxis>
				<mx:CategoryAxis categoryField="seasons" displayName="四季"/>
			</mx:horizontalAxis>

			<mx:horizontalAxisRenderers>
				<mx:AxisRenderer placement="bottom" tickLength="1" tickStroke="{new Stroke(0xFF0000,1)}"
								 axisStroke="{new Stroke(0xFF0000,1)}">
					<mx:axis>
						<mx:LinearAxis id="bottomAxis"/>
					</mx:axis>
				</mx:AxisRenderer>
			</mx:horizontalAxisRenderers>

			<mx:verticalAxisRenderers>
				<mx:AxisRenderer placement="left" tickLength="1" tickStroke="{new Stroke(0xFF0000,1)}"
								 axisStroke="{new Stroke(0xFF0000,1)}">
					<mx:axis>
						<mx:LinearAxis id="leftAxis"/>
					</mx:axis>
				</mx:AxisRenderer>
			</mx:verticalAxisRenderers>

			<mx:series>
				<mx:LineSeries verticalAxis="{leftAxis}" displayName="比率" xField="seasons" yField="rate"
							  dataFunction="dataFunc"/>
			</mx:series>

			<mx:filters>
				<fx:Array/>
			</mx:filters>
		</mx:LineChart>
		<mx:Legend dataProvider="{line}"/>

	</mx:VBox>
</s:Application>

3、解决办法

时间: 2024-11-04 23:54:08

ArgumentError: Error #1063: BasicChart/dataFunc() 的参数数量不匹配。应该有 2 个,当前为 3 个。的相关文章

MFC之调用DLL的问题:error C2664: “LoadLibraryW”: 不能将参数 1 从“const char *”转换为“LPCWSTR

今天在项目中遇到了一个小小的问题,在调用别人动态连接库(DLL)的时候,总是出现如下提示,导致程序无法正常运行,编程环境:VS2010+MFC 问题提示:error C2664: "LoadLibraryW": 不能将参数 1 从"const char *"转换为"LPCWSTR 经过查找资料,问题得以解决,感谢: 解决方法来源于:http://blog.sina.com.cn/s/blog_6a2236590100xbgl.html 1 静态调用Lib

error c2572重定义默认参数

由于想省事,在声明过函数之后直接复制粘贴去实现,结果出现error c2572重定义默认参数 顾名思义,该默认参数被定义多次,在一个文件(或一个作用域)中,只能为形参指定默认 实参一次,在编译的时候会把头文件和源文件结合,就会出现多次指定默认形参的情况. 因此我们只需要在头文件,或者源文件中声明一次该默认参数,习惯上在头文件中声明. 注:该错误只是编译系统问题,有的编译系统对此并不会报错! error c2572重定义默认参数

error C2664: “FindFirstFileW”: 不能将参数 1 从“char [261]”转换为“LPCWSTR” 解决

在写Tracking的代码的时候遇到这样的问题: error C2664: "FindFirstFileW": 不能将参数 1 从"char [261]"转换为"LPCWSTR". 这个代码是读入一个文件夹里面所有的图片的文件名.因为在TLD, CT算法里面都是会遇到的.会遇到这样的错误. 解决的方式是:选中项目属性-->配置属性-->常规-->字符集,就字符集选为"使用多字节字符集"即可编译通过. 希望可以

error C2664: “CreateFileW”: 不能将参数 1 从“char *”转换为“LPCWSTR”

错误 1 error C2664: “CreateFileW”: 不能将参数 1 从“char [7]”转换为“LPCWSTR” e:/mystudy/09/myvirtualdisk11/myvirtualdiskdll/diskdll.cpp 112 错误 2 error C2664: “DefineDosDeviceW”: 不能将参数 2 从“char *__w64 ”转换为“LPCWSTR” e:/mystudy/09/myvirtualdisk11/myvirtualdiskdll/d

参数计数不匹配,未处理System.Reflection.TargetParameterCountException

系统出现异常:参数计数不匹配,未处理System.Reflection.TargetParameterCountException, 系统会显示如下的异常信息,但异常信息往往与实际异常位置差十万八千量: 未处理 System.Reflection.TargetParameterCountException Message=参数计数不匹配. Source=mscorlib StackTrace: 在 System.Reflection.RuntimeMethodInfo.Invoke(Object

【错误总结之(一)】error LNK2038: 检測到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”

1>cvblob.lib(cvblob.obj) : error LNK2038: 检測到"_ITERATOR_DEBUG_LEVEL"的不匹配项: 值"0"不匹配值"2"(the_first.obj 中) 1>cvblob.lib(cvtrack.obj) : error LNK2038: 检測到"_ITERATOR_DEBUG_LEVEL"的不匹配项: 值"0"不匹配值"2&quo

error C2664: “MessageBoxW”: 不能将参数 2 从“const char [14]”转换为“LPCWSTR”

vs2008提示 error C2664: “CWnd::MessageBoxW”: 不能将参数 1 从“const char [17]”转换为“LPCTSTR” 在外面用vs2005编写mfc程序的时候经常要MessageBox("提示信息")函数,在vc6.0是没有问题的,但是在vs2005却会有下面的提示: error C2664: “CWnd::MessageBoxW”: 不能将参数 1 从“const char [17]”转换为“LPCTSTR” 这个错误提示的原因是VS20

error C2664: “LoadLibraryW”: 不能将参数 1 从“const char *”转换为“LPCWSTR”

在使用VS2010编写运行时动态链接dll文件时出现的一个问题,问题解决得益于此文章: http://blog.sina.com.cn/s/blog_6a2236590100xbgl.html 通过调用这个函数:LoadLibrary出现的该问题.原因 :工程只支持UNICODE字符解决方法:1.在解决方案资源管理器中的工程上右键属性->配置属性-->常规--->字符集---->使用多字节符字符集 2.也就是宽字符,所以下面这行代码,应该编译有错误hinst=LoadLibrary

Java:参数数量可变的方法

许多Java新人在看到下面的这段代码的时候,都会问一个问题:dealArray方法里那三个小点点是什么啊? [java] view plaincopy public class TestVarArgus { public static void dealArray(int... intArray){ } public static void main(String args[]){ } } 可变的参数类型,也称为不定参数类型.英文缩写是varargus,还原一下就是variable argume