示例#1
0
        public ISlideCollection _plus_jp_jiangbeizuizhiye_1(string str, int cjbh)
        {
            try
            {
                var param = Cache_param_zb._param_jp.Where(m => m.cjid == cjbh);
                var p     = new Presentation();
                var t     = p.Slides;
                t.RemoveAt(0);



                var pages = new Presentation(str).Slides;
                var jbz   = pages[0];

                #region 近8周江北区住宅市场环境
                DataTable zzsc = new DataTable();
                zzsc.Columns.Add("时间");
                zzsc.Columns.Add("预售新增供应量(单位: 万㎡)");
                zzsc.Columns.Add("成交量(单位: 万㎡)");
                zzsc.Columns.Add("建面均价(元 /㎡)");
                var jbz_cjba = (from a in Cache_data_cjjl.jbz.AsEnumerable()
                                where a["qy"].ToString() == qy && (a["yt"].ToString() == "别墅" || a["yt"].ToString() == "高层" || a["yt"].ToString() == "小高层" || a["yt"].ToString() == "洋房" || a["yt"].ToString() == "洋楼")
                                group a by new { zc = a["zc"], zcmc = a["zcmc"] } into s
                                select new
                {
                    zc = s.Key.zc,
                    zcmc = s.Key.zcmc,
                    cjje = s.Sum(a => a["cjje"].longs()),
                    jzmj = s.Sum(a => a["jzmj"].doubls()),
                }).OrderBy(m => m.zc).ToList();
                var jbz_xzys = (from a in Cache_data_xzys.jbz.AsEnumerable()
                                where a["qx1"].ToString() == qy && (a["tyyt"].ToString() == "别墅" || a["tyyt"].ToString() == "高层" || a["tyyt"].ToString() == "小高层" || a["tyyt"].ToString() == "洋房" || a["tyyt"].ToString() == "洋楼")
                                group a by new { zc = a["zc"] } into s
                                select new
                {
                    zc = s.Key.zc,
                    xzgy = s.Sum(a => a["jzmj"].doubls()),
                }).OrderBy(m => m.zc).ToList();
                var temp6 = (from a in jbz_cjba
                             join b in jbz_xzys on a.zc equals b.zc into temp
                             from tt in temp.DefaultIfEmpty()
                             select new
                {
                    zcmc = a.zcmc,
                    xzgyl = tt == null ? 0 : tt.xzgy,             //这里主要第二个集合有可能为空。需要判断
                    cjmj = a.jzmj,
                    jmjj = a.cjje / a.jzmj
                }).ToList();
                for (int i = 0; i < temp6.Count(); i++)
                {
                    DataRow dr = zzsc.NewRow();
                    dr[0] = temp6[i].zcmc;
                    dr[1] = temp6[i].xzgyl.mj_wf();
                    dr[2] = temp6[i].cjmj.mj_wf();
                    dr[3] = temp6[i].jmjj.je_y();
                    zzsc.Rows.Add(dr);
                }
                Office_Charts.Chart_gxfx(jbz, zzsc, 1);
                t.AddClone(jbz);
                #endregion

                #region 江北区周度住宅排名
                var temp_data_cj = from a in Cache_data_cjjl.bz.AsEnumerable()
                                   where a["qy"].ToString() == qy && (a["yt"].ToString() == "别墅" || a["yt"].ToString() == "高层" || a["yt"].ToString() == "小高层" || a["yt"].ToString() == "洋房" || a["yt"].ToString() == "洋楼")
                                   group a by new { lpmc = a["lpmc"] } into d
                    select new
                {
                    lpmc = d.Key.lpmc,
                    cjts = d.Sum(m => m["ts"].ints()),
                    cjtl = d.Sum(m => m["jzmj"].doubls()),
                    cjje = d.Sum(m => m["cjje"].doubls())
                };
                var       cjpm_ts = temp_data_cj.OrderByDescending(m => m.cjts).Take(10).ToList();
                var       cjpm_mj = temp_data_cj.OrderByDescending(m => m.cjtl).Take(10).ToList();
                var       cjpm_je = temp_data_cj.OrderByDescending(m => m.cjje).Take(10).ToList();
                DataTable cjpm    = new DataTable();
                cjpm.Columns.Add("序号");
                cjpm.Columns.Add("项目名称1");
                cjpm.Columns.Add("套数");
                cjpm.Columns.Add("项目名称2");
                cjpm.Columns.Add("成交面积");
                cjpm.Columns.Add("项目名称3");
                cjpm.Columns.Add("成交金额");
                for (int i = 0; i < 10; i++)
                {
                    DataRow dr = cjpm.NewRow();
                    dr["序号"] = i + 1;
                    if (cjpm_ts.Count() > i)
                    {
                        dr["项目名称1"] = cjpm_ts[i].lpmc;
                        dr["套数"]    = cjpm_ts[i].cjts;
                    }
                    else
                    {
                        dr["项目名称1"] = "";
                        dr["套数"]    = "";
                    }

                    if (cjpm_mj.Count() > i)
                    {
                        dr["项目名称2"] = cjpm_ts[i].lpmc;
                        dr["成交面积"]  = cjpm_mj[i].cjtl.ints();
                    }
                    else
                    {
                        dr["项目名称2"] = "";
                        dr["成交面积"]  = "";
                    }

                    if (cjpm_je.Count() > i)
                    {
                        dr["项目名称3"] = cjpm_ts[i].lpmc;
                        dr["成交金额"]  = cjpm_je[i].cjje.je_wy();
                    }
                    else
                    {
                        dr["项目名称3"] = "";
                        dr["成交金额"]  = "";
                    }
                    cjpm.Rows.Add(dr);
                }
                var cjpmp_temp = pages;
                var cjpmp_page = cjpmp_temp[1];

                IAutoShape cjpmwz = (IAutoShape)cjpmp_page.Shapes[2];
                cjpmwz.TextFrame.Text = string.Format(cjpmwz.TextFrame.Text, Base_date.GET_ZCMC(Base_date.bn, Base_date.bz));
                Office_Tables.SetChart(cjpmp_page, cjpm, 4, null, null);
                t.AddClone(cjpmp_page);
                #endregion

                #region 竞品



                foreach (var item in param)
                {
                    var tp   = new Presentation(str);
                    var temp = tp.Slides;
                    #region 格局统计


                    var        page = temp[2];
                    IAutoShape text = (IAutoShape)page.Shapes[1];
                    text.TextFrame.Text = string.Format(text.TextFrame.Text, item.bamc);
                    System.Data.DataTable dt = new System.Data.DataTable();
                    dt.Columns.Add(Base_Config_Jzgj.竞争格局名称);
                    dt.Columns.Add(Base_Config_Jzgj.项目名称);
                    dt.Columns.Add(Base_Config_Rgsj.本周_本周到访量);
                    dt.Columns.Add(Base_Config_Rgsj.本周_本周来电);
                    dt.Columns.Add(Base_Config_Rgsj.本周_新开套数);
                    dt.Columns.Add(Base_Config_Rgsj.本周_新开销售套数);
                    dt.Columns.Add(Base_Config_Rgsj.新开套内均价);

                    dt.Columns.Add(Base_Config_Cjba.周_备案套数);
                    dt.Columns.Add(Base_Config_Cjba.周_套内均价);
                    dt.Columns.Add(Base_Config_Rgsj.周_认购套数);
                    dt.Columns.Add(Base_Config_Rgsj.周_认购套内均价);

                    dt.Columns.Add(Base_Config_Cjba.本周_备案套数);
                    dt.Columns.Add(Base_Config_Cjba.本周_套内均价);
                    dt.Columns.Add(Base_Config_Rgsj.本周_认购套数);
                    dt.Columns.Add(Base_Config_Rgsj.本周_认购套内均价);

                    dt.Columns.Add(Base_Config_Rgsj.本周_成交套数环比);
                    dt.Columns.Add(Base_Config_Rgsj.本周_套内均价环比);
                    dt.Columns.Add(Base_Config_Rgsj.本周_变化原因);


                    if (item.jpxmlb != null && item.jpxmlb.Count > 0)
                    {
                        dt = GET_JPXM_BX(dt, item.jpxmlb);
                        Office_Tables.SetJP_JiangBeiZuiZhiYe_JPBX_Table(page, dt, 3, null, null);
                        t.AddClone(page);
                    }
                    #endregion
                }
                #endregion
                return(t);
            }
            catch (Exception e)
            {
                Base_Log.Log(e.Message);
                return(null);
            }
        }