public ActionResult Detail(int id, int? pageNo, string parm, OpenBidProjectQuery query)
        {
            Dictionary<string, string> sitemaster = GetSiteMaster();
            ViewData["SiteMaster"] = sitemaster;

            if (sitemaster["istest"] == "1")
            {
                int uid = Int32.Parse(sitemaster["userid"]);
                IList<int> openprojectlist = CRMMapper.Get().QueryForList<int>("OpenBidNumForTest.myselectopen", uid);
                //先检查一共看的数目
                if (openprojectlist.Count > 0)
                {
                    //如果有看得记录,先检查是否是看过的
                    Hashtable htt = new Hashtable();
                    htt["pid"] = id;
                    htt["uid"] = uid;
                    IList<int> sawid = CRMMapper.Get().QueryForList<int>("OpenBidNumForTest.myselectopenpid", htt);
                    //如果没看过,就检查是否超过最大值
                    if (sawid.Count == 0)
                    {
                        if (openprojectlist.Count < 5)
                        {
                            //没超过就写入记录
                            OpenBidNumForTest ob = new OpenBidNumForTest();
                            ob.OpenprojectNum = id;
                            ob.UserID = uid;
                            new OpenBidNumForTestDao().Insert(ob);
                        }
                        else
                        {
                            //超过了
                            return RedirectToAction("List");
                        }
                    }
                }
                else
                {
                    //之前没有看过也写入记录
                    OpenBidNumForTest ob = new OpenBidNumForTest();
                    ob.OpenprojectNum = id;
                    ob.UserID = uid;
                    new OpenBidNumForTestDao().Insert(ob);
                }
            }

            DOpenProjectDao mDOpenProjectDao = new DOpenProjectDao();
            DOpenProject mDOpenProject = mDOpenProjectDao.Find(id);

            int interval = 0;
            if (EnterPriseMemberInfo.Memberlevel == 201)
                interval = 6;
            if (EnterPriseMemberInfo.Memberlevel == 301)
                interval = 12;
            DateTime limitedate = DateTime.Now.AddMonths(interval);

            if ((EnterPriseMemberInfo.Memberlevel == 201 || EnterPriseMemberInfo.Memberlevel == 301) && mDOpenProject.OpenDate > limitedate)
            {
                return RedirectToAction("MemberLevelError", "Base");
            }
            ViewData["ProjectDescription"] = mDOpenProject.NewProjectDescription;
            ViewData["Summary"] = mDOpenProject.Summary;
            ViewData["OID"] = mDOpenProject.OID;

            //如果有参数
            if (query.IsHaveProperty())
            {
                parm = query.GetParameter();
                ViewData["Query"] = query;
                return RedirectToAction("Detail", new { id = id, pageNo = 1, parm = parm });
            }
            else
            {
                int PageNo = pageNo ?? 1;
                //表明第一次进来
                if (query.CommonName != null)
                {
                    query.LoadProperties(parm);
                }
                if (string.IsNullOrEmpty(query.CommonName) && string.IsNullOrEmpty(query.ProductEnterpriseName) && string.IsNullOrEmpty(query.TenderEnterpriseName) && query.CommonName.Length < 3)
                {
                    pageNo = 1;
                }
                else
                {
                    query.IsSearched = "1";
                }
                //页码与记录数
                int count = 0;
                //是否竞品条件
                bool compete = false;
                //取数据与记录数
                List<string> th = new List<string>();
                DOpenMedicineDao m = new DOpenMedicineDao();
                DataTable data = m.GetData(id, PageNo, PageSizeDetail, query, out count, ref compete,ref th);

                #region 数据处理
                if (data == null)
                {
                    data = new DataTable();
                }
                if (!data.Columns.Contains("ID"))
                {
                    DataColumn dc = new DataColumn();
                    dc.ColumnName = "ID";
                    data.Columns.Add(dc);
                }

                int beginNo = 0;
                if (!compete)
                {
                    beginNo = (PageNo - 1) * PageSizeDetail;
                }

                for (int i = 1; i<= data.Rows.Count; i++)
                {
                    data.Rows[i-1]["ID"] =(beginNo+ i).ToString();
                }
                if (data.Columns.Contains("ROWID"))
                {
                    data.Columns.Remove("ROWID");
                }
                if (data.Columns.Contains("OID"))
                {
                    data.Columns.Remove("OID");
                }
                List<DataRow> listRow = new List<DataRow>();
                foreach (DataRow dr in data.Rows)
                {
                    listRow.Add(dr);
                }
                PagedList<DataRow> list;
                if (compete)
                {
                    list = new PagedList<DataRow>(listRow, PageNo, PageSizeDetail);
                }
                else
                {
                    list = new PagedList<DataRow>(listRow, PageNo, PageSizeDetail, count);
                }
                ViewData["Compete"] = compete;
                ViewData["Query"] = query;
                ViewData["Count"] = count;
                ViewData["Th"] = th;
                #endregion

                #region excel
                if (sitemaster["istest"] == "0" && query.Excel == "1")
                {
                    ExcelExport mx = new ExcelExport();
                    mx.InitTh();
                    if (query.CommonName != null)
                        mx._fileName = query.CommonName + DateTime.Now.ToShortDateString() + ".xls";
                    else
                    {
                        if (query.ProductEnterpriseName != null)
                            mx._fileName = query.ProductEnterpriseName + DateTime.Now.ToShortDateString() + ".xls";
                        else
                            mx._fileName = query.TenderEnterpriseName + DateTime.Now.ToShortDateString() + ".xls";
                    }

                    //项目名称
                    TableItemStyle tiName = new TableItemStyle();
                    tiName.Font.Size = 14;
                    tiName.ForeColor = System.Drawing.Color.Red;
                    tiName.HorizontalAlign = HorizontalAlign.Center;
                    mx.HeadExtrInfo.Add(mDOpenProject.NewProjectName, tiName);
                    //项目备注
                    TableItemStyle tiRemark = new TableItemStyle();
                    tiRemark.Font.Size = 13;
                    tiRemark.ForeColor = System.Drawing.Color.Red;
                    tiRemark.HorizontalAlign = HorizontalAlign.Left;
                    mx.HeadExtrInfo.Add("项目备注说明:", tiRemark);
                    //项目备注
                    TableItemStyle tiRemarkContent = new TableItemStyle();
                    tiRemarkContent.Font.Size = 12;
                    tiRemarkContent.HorizontalAlign = HorizontalAlign.Left;
                    mx.HeadExtrInfo.Add(mDOpenProject.NewProjectDescription, tiRemarkContent);

                    TableItemStyle tiCount = new TableItemStyle();
                    tiCount.Font.Size = 12;
                    tiCount.HorizontalAlign = HorizontalAlign.Left;
                    mx.HeadExtrInfo.Add("共有" + count.ToString() + "条", tiCount);

                    if (data.Columns.Contains("ID"))
                    {
                        data.Columns.Remove("ID");
                    }
                    //20111019修改按显示表头导出,去掉多余列
                    if (data.Columns.Contains("Mine"))
                    {
                        data.Columns.Remove("Mine");
                    }
                    mx._thName = th.ToArray();//20111019修改按显示表头导出
                    mx.DataTableToExcel(data);
                }
                #endregion
                return View(list);

            }
        }
        public ActionResult Detail(int id, int? pageNo, string parm, OpenBidProjectQuery query)
        {
            Dictionary<string, string> sitemaster = GetSiteMaster();
            ViewData["SiteMaster"] = sitemaster;
            //SingleProjectDao mDOpenProjectDao = new SingleProjectDao();
            SingleProject mDOpenProject = EmedDataCenterMapper.Get().QueryForObject<SingleProject>("SingleProject.Find", id);

            ViewData["ProjectDescription"] = mDOpenProject.NewProjectDescription;
            ViewData["Summary"] = mDOpenProject.Summary;
            ViewData["OID"] = mDOpenProject.OID;

            //如果有参数
            if (query.IsHaveProperty())
            {
                parm = query.GetParameter();
                ViewData["Query"] = query;
                return RedirectToAction("Detail", new { id = id, pageNo = 1, parm = parm });
            }
            else
            {
                int PageNo = pageNo ?? 1;
                //表明第一次进来
                if (query.CommonName != null)
                {
                    query.LoadProperties(parm);
                }
                if (string.IsNullOrEmpty(query.CommonName) && string.IsNullOrEmpty(query.ProductEnterpriseName) && string.IsNullOrEmpty(query.TenderEnterpriseName) && query.CommonName.Length < 3)
                {
                    pageNo = 1;
                }
                else
                {
                    query.IsSearched = "1";
                }
                //页码与记录数
                int count = 0;
                //是否竞品条件
                bool compete = false;
                //取数据与记录数
                List<string> th = new List<string>();
                SingleMedicineDao m = new SingleMedicineDao();
                DataTable data = m.GetData(id, PageNo, PageSizeDetail, query, out count, ref compete, ref th);

                #region 数据处理
                if (data == null)
                {
                    data = new DataTable();
                }
                if (!data.Columns.Contains("ID"))
                {
                    DataColumn dc = new DataColumn();
                    dc.ColumnName = "ID";
                    data.Columns.Add(dc);
                }

                int beginNo = 0;
                if (!compete)
                {
                    beginNo = (PageNo - 1) * PageSizeDetail;
                }

                for (int i = 1; i <= data.Rows.Count; i++)
                {
                    data.Rows[i - 1]["ID"] = (beginNo + i).ToString();
                }
                if (data.Columns.Contains("ROWID"))
                {
                    data.Columns.Remove("ROWID");
                }
                if (data.Columns.Contains("OID"))
                {
                    data.Columns.Remove("OID");
                }
                List<DataRow> listRow = new List<DataRow>();
                foreach (DataRow dr in data.Rows)
                {
                    listRow.Add(dr);
                }
                foreach (DataRow dr in listRow)
                {
                    if (dr.Table.Columns.Contains("FirstToLimit"))
                    {
                        string strFirstToLimit = dr["FirstToLimit"].ToString();
                        if (strFirstToLimit.Length > 0)
                        {
                            string subFirstToLimit = strFirstToLimit.Substring(0, strFirstToLimit.Length - 1);
                            decimal fFirstToLimit = decimal.Parse(subFirstToLimit);
                            string resultFirstToLimit = Math.Round(fFirstToLimit, 2).ToString() + "%";
                            dr["FirstToLimit"] = resultFirstToLimit;
                        }
                    }

                    if (dr.Table.Columns.Contains("SecondToLimit"))
                    {
                        string strSecondToLimit = dr["SecondToLimit"].ToString();
                        if (strSecondToLimit.Length > 0)
                        {
                            string subSecondToLimit = strSecondToLimit.Substring(0, strSecondToLimit.Length - 1);
                            decimal fSecondToLimit = decimal.Parse(subSecondToLimit);
                            string resultSecondToLimit = Math.Round(fSecondToLimit, 2).ToString() + "%";
                            dr["SecondToLimit"] = resultSecondToLimit;
                        }
                    }

                    if (dr.Table.Columns.Contains("SSecondToFirst"))
                    {
                        string strSSecondToFirst = dr["SSecondToFirst"].ToString();
                        if (strSSecondToFirst.Length > 0)
                        {
                            string subSSecondToFirst = strSSecondToFirst.Substring(0, strSSecondToFirst.Length - 1);
                            decimal fSSecondToFirst = decimal.Parse(subSSecondToFirst);
                            string resultSSecondToFirst = Math.Round(fSSecondToFirst, 2).ToString() + "%";
                            dr["SSecondToFirst"] = resultSSecondToFirst;
                        }
                    }

                    if (dr.Table.Columns.Contains("SBidToFinal"))
                    {
                        string strSBidToFinal = dr["SBidToFinal"].ToString();
                        if (strSBidToFinal.Length > 0)
                        {
                            string subSBidToFinal = strSBidToFinal.Substring(0, strSBidToFinal.Length - 1);
                            decimal fSBidToFinal = decimal.Parse(subSBidToFinal);
                            string resultSBidToFinal = Math.Round(fSBidToFinal, 2).ToString() + "%";
                            dr["SBidToFinal"] = resultSBidToFinal;
                        }
                    }

                    if (dr.Table.Columns.Contains("SBidToLimit"))
                    {
                        string strSBidToLimit = dr["SBidToLimit"].ToString();
                        if (strSBidToLimit.Length > 0)
                        {
                            string subSBidToLimit = strSBidToLimit.Substring(0, strSBidToLimit.Length - 1);
                            decimal fSBidToLimit = decimal.Parse(subSBidToLimit);
                            string resultSBidToLimit = Math.Round(fSBidToLimit, 2).ToString() + "%";
                            dr["SBidToLimit"] = resultSBidToLimit;
                        }
                    }
                    if (dr.Table.Columns.Contains("STBidToTender"))
                    {
                        string strSTBidToTender = dr["STBidToTender"].ToString();
                        if (strSTBidToTender.Length > 0)
                        {
                            string subSTBidToTender = strSTBidToTender.Substring(0, strSTBidToTender.Length - 1);
                            decimal fSBidToTender = decimal.Parse(subSTBidToTender);
                            string resultSfSBidToTender = Math.Round(fSBidToTender, 2).ToString() + "%";
                            dr["STBidToTender"] = resultSfSBidToTender;
                        }
                    }

                }
                PagedList<DataRow> list;
                if (compete)
                {
                    list = new PagedList<DataRow>(listRow, PageNo, PageSizeDetail);
                }
                else
                {
                    list = new PagedList<DataRow>(listRow, PageNo, PageSizeDetail, count);
                }
                ViewData["Compete"] = compete;
                ViewData["Query"] = query;
                ViewData["Count"] = count;
                ViewData["Th"] = th;
                #endregion

                #region excel
                if (sitemaster["istest"]=="0" && query.Excel == "1")
                {
                    ExcelExport mx = new ExcelExport();
                    mx.InitTh();
                    mx._fileName = "Emed-KB-" + DateTime.Now.ToShortDateString() + ".xls";

                    //项目名称
                    TableItemStyle tiName = new TableItemStyle();
                    tiName.Font.Size = 14;
                    tiName.ForeColor = System.Drawing.Color.Red;
                    tiName.HorizontalAlign = HorizontalAlign.Center;
                    mx.HeadExtrInfo.Add(mDOpenProject.NewProjectName, tiName);
                    //项目备注
                    TableItemStyle tiRemark = new TableItemStyle();
                    tiRemark.Font.Size = 13;
                    tiRemark.ForeColor = System.Drawing.Color.Red;
                    tiRemark.HorizontalAlign = HorizontalAlign.Left;
                    mx.HeadExtrInfo.Add("项目备注说明:", tiRemark);
                    //项目备注
                    TableItemStyle tiRemarkContent = new TableItemStyle();
                    tiRemarkContent.Font.Size = 12;
                    tiRemarkContent.HorizontalAlign = HorizontalAlign.Left;
                    mx.HeadExtrInfo.Add(mDOpenProject.NewProjectDescription, tiRemarkContent);

                    TableItemStyle tiCount = new TableItemStyle();
                    tiCount.Font.Size = 12;
                    tiCount.HorizontalAlign = HorizontalAlign.Left;
                    mx.HeadExtrInfo.Add("共有" + count.ToString() + "条", tiCount);

                    if (data.Columns.Contains("ID"))
                    {
                        data.Columns.Remove("ID");
                    }
                    mx.DataTableToExcel(data);
                }
                #endregion
                return View(list);

            }
        }