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 文件的更多相关文章

  1. XML配置silverlight ,wcf 解析xml

    XML 代码: <?xml version="1.0" encoding="utf-8" ?><ChartSet  xmlns:xsi=&qu ...

  2. Android 生成和Pull解析xml

    一.单个对象生成xml 生成以下xml,该怎么生成呢? <?xml version='1.0' encoding='UTF-8' standalone='yes' ?> <accou ...

  3. android 生成、pull解析xml文件

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools= ...

  4. Maven在jar中生成重复的pom.xml和pom.properties文件

    eclispe maven打包的时候总是出现"生成的jar的META-INF中,重复的pom.xml和pom.properties文件.",maven命令直接打包则没有这个问题. ...

  5. WCF客户端C#代码 配置config文件

    不多说了,直接上代码吧.... 服务端Web.config文件中bindings配置 <bindings> <wsHttpBinding> <binding name=& ...

  6. 在silverlight中通过WCF连接ORACLE DB数据库(转)

    转自 http://hi.baidu.com/qianlihanse/item/458aa7c8d93d4e0cac092ff4 这不是我的原创,我也是上网学习的~ How to get data f ...

  7. WCF服务三:svc文件详解

    在前面的文章中讲述过WCF服务的宿主程序主要包括:三种,在那篇文章中,简单的描述了如何把一个WCF服务寄宿到IIS上面,这篇文章中将具体讲述如何把一个WCF服务寄宿到IIS上面. 一.新建一个WCF服 ...

  8. Javaweb学习笔记——使用Jdom解析xml

    一.前言 Jdom是什么? Jdom是一个开源项目,基于树形结构,利用纯java的技术对XML文档实现解析,生成,序列化以及多种操作.它是直接为java编程服务,利用java语言的特性(方法重载,集合 ...

  9. 解析XML的几种方法之SAX解析

    假期总结不能停,坚持坚持....接下来总结一下XMl和json的解析和生成.. 解析XML的四种方法,即:DOM.SAX.JDOM和DOM4J 下面首先给出这四种方法的jar包下载地址: DOM:在现 ...

随机推荐

  1. SignalR2.0开发实例之——创建房间聊天

    SignalR作为一个强大的集线器,已经在hub里面集成了Gorups,也就是分组管理,使用方法如下: //作用:将连接ID加入某个组 //Context.ConnectionId 连接ID,每个页面 ...

  2. 用ThreadLocal管理事务

    1.适用场景 一个service,操作两个dao,要求两个dao为同一个事务,要么全成功,要么全失败.

  3. CODEVS 1287 矩阵乘法

    1287 矩阵乘法  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold 题目描述 Description 小明最近在为线性代数而头疼,线性代数确实很抽象(也很无聊) ...

  4. CentOS 5.5安装图解教程

    说明:实际生产环境中,CentOS 5.5这个版本相当稳定,而且硬件兼容性也很好,是很多服务器装机者的首选系统,下面介绍CentOS 5.5的具体安装过程   说明:实际生产环境中,CentOS 5. ...

  5. traceroute小结 come from CSDN author:houdong

    traceroute程序可以使我们看到IP数据报从一台主机传到另一台主机的所经过的路由,并且可以使用IP源站路由选项. traceroute取代IP RR的原因 1 不是所有的路由器都支持IP RR选 ...

  6. 用jQuery与JSONP轻松解决跨域访问的问题【转】

    原文地址:http://www.jb51.net/article/46463.htm 好在,有jquery帮忙,跨域问题似乎没那么难缠了.这次也借此机会对跨域问题来给刨根问底,结合实际的开发项目,查阅 ...

  7. 贴近浏览器窗口右侧的jqueryui dialog快速从左侧调整大小时对话框大小设置不准确的问题

    之前在做两个相同的页面的事件同步时发现了这个问题,现在把它记录下来. 一.问题描述 页面中的jqueryui对话框,如果把它拖动到靠近浏览器窗口右侧边缘,并快速从对话框左侧调整对话框窗口大小时,对话框 ...

  8. HTML5屏幕适配标签设置

    开发HTML5游戏中,我们常用的一些mata标签: <meta name="viewport" content="width=device-width, initi ...

  9. html5 画布上的rotate使用

    作为刚进公司的毕业生,第一个项目便是开发html5游戏,于是网上搜寻各种有关html5的资料,把w3School中有关html5的教程通通过了一遍,发现里面的教程非常适合刚接触html5的人,作为菜鸟 ...

  10. vagrant 配置文件简析

    #自定义box名字 config.vm.box = "website" #以ip192.168.33.10访问 config.vm.network "private_ne ...