Example #1
0
int DrawChart(CDataInterface *pData, CEnvParam *pEnv, Interaction *itt,
			 string VO, string &ppOutStruct,CResult **ppRst)
{	
	AnaWord aw;
	aw.Import(VO);
	CTString szChartType = aw.GetAt(0);//调用的算法名字
	
	if (szChartType == CHART_LINE)          //直线图
	{
		CLine line;
		(*ppRst) = line.OnChart(pData, VO);  
	}
	else if (szChartType == CHART_BAR)      //条状图
	{
		CBar Bar;
		(*ppRst) = Bar.OnChart(pData, VO);
	}
	else if (szChartType == CHART_PIE)      //饼图
	{
		CPie Pie;
		(*ppRst) = Pie.OnChart(pData, VO);
	}
	else if (szChartType == CHART_AREA)     //面积图
	{
		CArea Area;
		(*ppRst) = Area.OnChart(pData, VO);
	}
	else if (szChartType == CHART_BOXPLOT)  //盒状图
	{
		CBox Box;
		(*ppRst) = Box.OnChart(pData, VO);
	}
	else if (szChartType == CHART_HISTOGRAM)//直方图
	{
		CHistogram Histogram;
		(*ppRst) = Histogram.OnChart(pData, VO);
	}
	else if (szChartType == CHART_SCATTER)  //散点图
	{
		CScatter Scatter;
		(*ppRst) = Scatter.OnChart(pData, VO);
	}
	else if (szChartType == CHART_SELFCORRELATIONS) //自相关
	{
		CSelfCorrelation SelfCorr;
		(*ppRst) = SelfCorr.OnChart(pData,VO);
	}
	else if (szChartType == CHART_CROSSCORRELATIONS) //互相关
	{
		CCrossCorrelation CrossCorr;
		(*ppRst) = CrossCorr.OnChart(pData,VO);
	}
	else if (szChartType == CHART_EMP)
	{
		CEmp Emp;
		(*ppRst) = Emp.OnChart(pData,VO);
	}
	else
	{
		CResult *pResult = new CResult("图形接口算法调用错误");
		CTString szWarning = "没有相应的图形接口,请与供应商联系!";
		CRsltElementText *pWarningTextRslt = new CRsltElementText("错误!");
		pWarningTextRslt->AddString(szWarning);
		pResult->Add(pWarningTextRslt);
		(*ppRst) = pResult; 
		(*ppRst)->Print();
		return 1;
	}

	if (ppRst == NULL)
	{
		CResult *pResult = new CResult("图形接口算法调用错误");
		CTString szWarning = "您所选择的数据不适合相应的图形接口算法,请重新运行!";
		CRsltElementText *pWarningTextRslt = new CRsltElementText( "错误!" );
		pWarningTextRslt->AddString(szWarning);
		pResult->Add(pWarningTextRslt);
		(*ppRst) = pResult; 
		(*ppRst)->Print();
		return 1;
	}
	else
	{
		(*ppRst)->Print();
		return 0;
	}
}