Exemple #1
0
        void readdata(ASort asort, string asortname, DataTable dt)
        {
            asort.name = asortname + "-收益率敏感性";
            IEnumerable <string> g = dt.AsEnumerable().Where(p => p.Field <string>("asort") == asortname && p.Field <string>("csort") != "基本方案").GroupBy(p => p.Field <string>("csort")).Select(p => p.Key);

            foreach (string key in g)
            {
                Ana ana = new Ana();
                asort.anas.Add(ana);
                IEnumerable <DataRow> drs = dt.AsEnumerable().Where(p => p.Field <string>("asort") == asortname && (p.Field <string>("csort") == key || p.Field <string>("csort") == "基本方案")).OrderBy(p => p.Field <double>("v1"));
                ana.kp   = new Point[drs.Count()];
                ana.name = key;
                int idx = 0;
                foreach (DataRow dr in drs)
                {
                    GridDataRow gd = new GridDataRow()
                    {
                        name = key
                    };
                    double tmp = double.Parse(dr["v1"].ToString());
                    gd.changeorg = (tmp > 0 ? "+" : "") + tmp.ToString("f0") + "%";
                    double tmp1 = double.Parse(dr["v2"].ToString());
                    gd.changedest = tmp1.ToString("f2") + "%";
                    double tmp2 = double.Parse(dr["v3"].ToString());
                    gd.changerate = tmp == 0 ? "" : (tmp2.ToString("f2") + "%");
                    gd.senesitive = tmp == 0?0: tmp2 / tmp;// tmp==0?"": (tmp2 / tmp).ToString("f2");
                    ana.griddata.Add(gd);
                    ana.kp[idx] = new Point(tmp, tmp1);
                    idx++;
                }
            }
        }
Exemple #2
0
        private void UserControl_Initialized(object sender, EventArgs e)
        {
            string    sql = "select t1 as asort, t2 as csort, v1, v2, v3  from map_data2 where sort='收益率敏感分析' order by ord";
            DataTable dt  = DataLayer.DataProvider.getDataTableFromSQL(sql);

            IEnumerable <string> g = dt.AsEnumerable().GroupBy(p => p.Field <string>("asort")).Select(p => p.Key);

            foreach (string sortname in g)
            {
                ASort asort = new ASort();
                viewmodel.sorts.Add(asort);
                readdata(asort, sortname, dt);
            }

            viewmodel.cal();

            grdMain.DataContext = viewmodel;
        }