silverlight 生成图表 WCF 解析XML代码.svc.cs 文件
silverlight 调用wcf 文件代码
private ListItem AnalyzeXML(string XMLCode, string Reportdate, string ChartName, string OildomName)
{
IDataBase oDB = DBFactory.GetDBInstance();
ListItem liChart = new ListItem();
XmlDocument config;
string basePath = System.AppDomain.CurrentDomain.BaseDirectory + "Silverlight\\Config\\SCYX\\";
string configPath = basePath + XMLCode;
if (!System.IO.File.Exists(configPath))
{
throw new Exception("指定配置文件不存在!");
}
config = new XmlDocument();
config.Load(configPath);
XmlNode rootNode = config.SelectSingleNode("/ChartSet");
if (rootNode == null)
{
throw new Exception("图集合的配置不存在!");
}
for (int i = 0; i < rootNode.ChildNodes.Count; i++)
{
try
{
DataTable dt;
XmlNode ChartNode = rootNode.ChildNodes[i];
if (ChartNode == null)
{
throw new Exception("图的配置不存在!");
}
#region 获取Chart基本信息
if (ChartNode == null)
{
throw new Exception("图的配置不存在!");
}
liChart.ChartName = ChartName;
liChart.Title = ChartNode.Attributes["Title"].Value;
liChart.Title = liChart.Title.Replace("{Date}", Reportdate);
liChart.Title = liChart.Title.Replace("{OildomName}", OildomName);
liChart.ChartType = ChartNode.Attributes["ChartType"].Value;
#endregion
#region 获取Command信息
XmlNode xnCommand = ChartNode.SelectSingleNode("Command");
string sSQL = "";
if (xnCommand == null && xnCommand.ChildNodes.Count == 0)
{
throw new Exception("未找到配置数据SQL");
}
else
{
// string strBeginRepordate = Reportdate.Substring(0, 6) + "01";//月初
//string strEndRepordate = DateTime.ParseExact(strBeginRepordate, "yyyyMMdd", System.Globalization.CultureInfo.CurrentCulture).AddMonths(1).AddDays(-1).ToString("yyyyMMdd");//月末
string strBeginRepordate = DateTime.ParseExact(Reportdate, "yyyyMMdd", System.Globalization.CultureInfo.CurrentCulture).AddMonths(-1).ToString("yyyyMMdd");//当前日期前一个月
sSQL = (xnCommand.ChildNodes[0]).InnerText;
sSQL = sSQL.Replace("{Reportdate}", Reportdate);
sSQL = sSQL.Replace("{strBeginRepordate}", strBeginRepordate);
sSQL = sSQL.Replace("{OildomName}", OildomName);
dt = oDB.GetDataTable(sSQL);
}
#endregion
#region 获取AxisX信息
XmlNode xnAxisX = ChartNode.SelectSingleNode("AxisX");
string[] sXAXIS = new string[dt.Rows.Count];
for (int h = 0; h < dt.Rows.Count; h++)
{
sXAXIS[h] = dt.Rows[h][xnAxisX.Attributes["XField"].Value].ToString();
}
liChart.XAXIS = sXAXIS;
#endregion
#region 获取AxisY信息
XmlNode xnAxisY = ChartNode.SelectSingleNode("AxisY");
if (xnAxisY.Attributes["Unit"] != null)
liChart.YUint = xnAxisY.Attributes["Unit"].Value;
string strYear = Reportdate.Substring(0, 4);//本年
string strBegReportDate = DateTime.ParseExact(Reportdate, "yyyyMMdd", System.Globalization.CultureInfo.InvariantCulture).AddYears(-1).ToString("yyyyMMdd").Substring(0, 4);//上一年
for (int j = 0; j < xnAxisY.ChildNodes.Count; j++)
{
XmlNode xnYChild = xnAxisY.ChildNodes[j];
YAXIS oYAXIS = new YAXIS();
oYAXIS.Name = xnYChild.Attributes["Name"].Value;
oYAXIS.Name = oYAXIS.Name.Replace("{Year-1}", strBegReportDate);
oYAXIS.Name = oYAXIS.Name.Replace("{Year}", strYear);
oYAXIS.Color = xnYChild.Attributes["Color"].Value;
oYAXIS.XField = xnYChild.Attributes["XField"].Value;
oYAXIS.YField = xnYChild.Attributes["YField"].Value;
double[] sYAXIS = new double[dt.Rows.Count];
for (int k = 0; k < dt.Rows.Count; k++)
{
sYAXIS[k] = Convert.ToDouble(dt.Rows[k][oYAXIS.YField]);
}
oYAXIS.YValue = sYAXIS;
liChart.YAXISs.Add(oYAXIS);
}
#endregion
}
catch (Exception e)
{
throw new Exception("获取配置文件失败!" + e.Message);
}
}
return liChart;
}
silverlight 生成图表 WCF 解析XML代码.svc.cs 文件的更多相关文章
- XML配置silverlight ,wcf 解析xml
XML 代码: <?xml version="1.0" encoding="utf-8" ?><ChartSet xmlns:xsi=&qu ...
- Android 生成和Pull解析xml
一.单个对象生成xml 生成以下xml,该怎么生成呢? <?xml version='1.0' encoding='UTF-8' standalone='yes' ?> <accou ...
- android 生成、pull解析xml文件
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools= ...
- Maven在jar中生成重复的pom.xml和pom.properties文件
eclispe maven打包的时候总是出现"生成的jar的META-INF中,重复的pom.xml和pom.properties文件.",maven命令直接打包则没有这个问题. ...
- WCF客户端C#代码 配置config文件
不多说了,直接上代码吧.... 服务端Web.config文件中bindings配置 <bindings> <wsHttpBinding> <binding name=& ...
- 在silverlight中通过WCF连接ORACLE DB数据库(转)
转自 http://hi.baidu.com/qianlihanse/item/458aa7c8d93d4e0cac092ff4 这不是我的原创,我也是上网学习的~ How to get data f ...
- WCF服务三:svc文件详解
在前面的文章中讲述过WCF服务的宿主程序主要包括:三种,在那篇文章中,简单的描述了如何把一个WCF服务寄宿到IIS上面,这篇文章中将具体讲述如何把一个WCF服务寄宿到IIS上面. 一.新建一个WCF服 ...
- Javaweb学习笔记——使用Jdom解析xml
一.前言 Jdom是什么? Jdom是一个开源项目,基于树形结构,利用纯java的技术对XML文档实现解析,生成,序列化以及多种操作.它是直接为java编程服务,利用java语言的特性(方法重载,集合 ...
- 解析XML的几种方法之SAX解析
假期总结不能停,坚持坚持....接下来总结一下XMl和json的解析和生成.. 解析XML的四种方法,即:DOM.SAX.JDOM和DOM4J 下面首先给出这四种方法的jar包下载地址: DOM:在现 ...
随机推荐
- Ajax--WebService返回List
WebService: using System.Web.Script.Services; [GenerateScriptType(typeof(people))] [WebMethod] publi ...
- js控制TR的显示影藏
在很多现实的场景中,有的文本框我们希望在选择“是”的按钮之后才出现,这就需要js控制TR的隐藏和显示,(div的影藏显示类似) 以下是一段选择是的按钮就显示身高和体重的文本框的代码.注意:ready方 ...
- HTML5画布(图像)
案例1: <!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8& ...
- DeDe调用指定栏目ID下的文章
*注: row: 调用条数 titlelen: 字数 typeid: 调用的栏目ID orderby: 按照升序对记录进行排序 idlist: 提取特定文档为空 infolen='40' 内容简介长度 ...
- 子类重载父类的方法“parent:方法名”
在PHP中不能定义重名的函数,也包括不能再同一个类中定义重名的方法,所以也就没有方法重载.单在子类中可以定义和父类重名的方法,因为父类的方法已经在子类中存在,这样在子类中就可以把从父类中继承过来的方法 ...
- MySQL STRAIGHT_JOIN
问题 最近在调试一条查询耗时5s多的sql语句,这条sql语句用到了多表关联(inner join),按时间字段排序(order by),时间字段上已经创建了索引(索引名IDX_published_a ...
- 使用laravel的任务调度(定时执行任务)
laravel中有一个很强大上的功能,只需要在服务器上添加一个cron条目,就可以定时执行所有的laravel任务. 现在有如下数据表: 我想让cron表中的cron字段的值每分钟增加1,那么我需要如 ...
- 阅读记录:Learning multiple layers of representation(杂乱笔记)
典型的浅层学习结构: 传统隐马尔可夫模型(HMM).条件随机场 (CRFs).最大熵模型(Maxent).支持向量机(SVM).核回归及仅含单隐层的多层感知器(MLP)等. 局部表示,分布式表示和稀疏 ...
- Delphi7下实现HTTP的Post操作 转
Delphi7下实现HTTP的Post操作 unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Gra ...
- OpenCV的矩阵合并方法
有的时候我们需要将几个矩阵按行或者按列进行合并成一个大矩阵,这在Matlab里面非常的简单,但在OpenCV里面并没有这样的方法,现在我在OpenCV的源码里面发现合并矩阵的方法,分享给大家. A = ...