コード例 #1
0
        protected void lbtnNext_Click(object sender, EventArgs e)
        {
            BS_TEMPLATE_MAINBLL mbll = new BS_TEMPLATE_MAINBLL();

            CMICT.CSP.Model.BS_TEMPLATE_MAIN model = new CMICT.CSP.Model.BS_TEMPLATE_MAIN();
            string TemplateName   = txtTemplateName.Value.Trim();
            string TemplateDesc   = txtTemplateDesc.Value.Trim();
            string PageSize       = txtPageSize.Value.Trim();
            string TemplateStatus = (chkDisabled.Checked == true ? "禁用" : "草稿");

            model.TemplateName   = TemplateName;
            model.DiaplayType    = "";
            model.TemplateDesc   = TemplateDesc;
            model.Reminder       = "";
            model.PageSize       = Convert.ToDecimal(PageSize);
            model.ColumnSize     = 0;
            model.TemplateStatus = "草稿";
            model.SQL            = "";
            model.Created        = DateTime.Now;
            model.Modified       = DateTime.Now;
            model.Author         = "";
            model.Editor         = "";
            if (hidOperType.Value == "add")
            {
                if (!mbll.Add(model))
                {
                    Page.RegisterStartupScript("malert", "<script>alert('模板基本信息配置失败!');</script>");
                }
            }
            else
            {
                Guid TemplateID = Guid.Parse(Page.Request.QueryString["templateID"]);
                CMICT.CSP.Model.BS_TEMPLATE_MAIN modele = mbll.GetModel(TemplateID);
                model.TemplateID  = TemplateID;
                model.Created     = modele.Created;
                model.SQL         = modele.SQL;
                model.Reminder    = modele.Reminder;
                model.DiaplayType = modele.DiaplayType;
                model.ColumnSize  = modele.ColumnSize;
                model.Editor      = "";
                if (chkDisabled.Checked)
                {
                    model.TemplateStatus = "禁用";
                }
                else
                {
                    model.TemplateStatus = hidDisabled.Value;
                }
                if (!mbll.Update(model))
                {
                    Page.RegisterStartupScript("malert", "<script>alert('模板基本信息修改失败!');</script>");
                }
            }
        }
コード例 #2
0
        public override void SyncChanges()
        {
            EnsureChildControls();

            BusinessSearch.BusinessSearch webpart = this.WebPartToEdit as BusinessSearch.BusinessSearch;

            if (webpart == null)
            {
                return;
            }



            string templateID = webpart.TemplateID;

            string communicationID = webpart.CommunicationID;

            string isAuto = webpart.IsAutoSearch;

            string jsLink = webpart.JsScript;

            //ddlTemplateID.SelectedValue = templateID;
            ddlCommunicationID.SelectedValue = communicationID;
            cbIsAutoSearch.Checked           = isAuto == "Y";
            tbJSLink.Text = jsLink;
            tbTitle.Text  = webpart.BusSearchTitle;
            if (!string.IsNullOrEmpty(templateID))
            {
                BS_TEMPLATE_MAINBLL temp  = new BS_TEMPLATE_MAINBLL();
                BS_TEMPLATE_MAIN    model = temp.GetModel(Guid.Parse(templateID));
                if (model != null)
                {
                    ddlMainCategory.SelectedValue = model.BigCategory;

                    BindSmallCategory(model.BigCategory);
                    ddlSubCategory.SelectedValue = model.SmallCategory;


                    BindTemplate(templateID);
                }
            }
        }
コード例 #3
0
        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                if (!Page.IsPostBack)
                {
                    string bname = Page.Server.UrlDecode(Page.Request.QueryString["bname"]);
                    string sname = Page.Server.UrlDecode(Page.Request.QueryString["sname"]);
                    //BindBigCategory();
                    if (!string.IsNullOrEmpty(Page.Request.QueryString["sourceID"]))
                    {
                        hidsourceid.Value = Page.Request.QueryString["sourceID"];
                        ShowInfo(Page.Request.QueryString["sourceID"]);
                    }
                    else
                    {
                        string TemplateID = Page.Request.QueryString["templateID"];
                        if (!string.IsNullOrEmpty(TemplateID))
                        {
                            BS_TEMPLATE_MAINBLL mbll = new BS_TEMPLATE_MAINBLL();
                            CMICT.CSP.Model.BS_TEMPLATE_MAIN model = mbll.GetModel(Guid.Parse(TemplateID));
                            if (model != null)
                            {
                                BindBigCategory(bname, sname);
                                //ddlCATEGORY.SelectedValue = model.BigCategory;

                                // ddlsmallcategory.SelectedValue = model.SmallCategory;
                                BindDataSource(txtCATEGORY.Text, txtsmallcategory.Text);
                                // txtCATEGORY.Text = model.BigCategory;
                                //txtsmallcategory.Text = model.SmallCategory;
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                BaseComponent.Error("DataSourceConfig-PageLoad:" + ex.Message);
                ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "dsorceconfigerror", "layer.alert('页面加载出错,请联系管理员!',8);", true);
            }
        }
コード例 #4
0
        protected void lbtnNext_Click(object sender, EventArgs e)
        {
            bool result     = false;
            Guid TemplateID = Guid.NewGuid();

            try
            {
                BS_TEMPLATE_MAINBLL mbll = new BS_TEMPLATE_MAINBLL();
                CMICT.CSP.Model.BS_TEMPLATE_MAIN model = new CMICT.CSP.Model.BS_TEMPLATE_MAIN();
                string TemplateName   = txtTemplateName.Value.Trim();
                string TemplateDesc   = txtTemplateDesc.Value.Trim();
                string PageSize       = txtPageSize.Value.Trim();
                string TemplateStatus = "DRAFT";
                model.TemplateName   = TemplateName;
                model.DiaplayType    = "";
                model.TemplateDesc   = TemplateDesc;
                model.BigCategory    = txtCATEGORY.Text.Trim();
                model.SmallCategory  = txtsmallcategory.Text.Trim();
                model.Unit           = txtUnit.Value.Trim();
                model.Reminder       = "";
                model.PageSize       = Convert.ToDecimal(PageSize);
                model.ColumnSize     = 0;
                model.TemplateStatus = TemplateStatus;
                model.SQL            = "";
                model.Created        = DateTime.Now;
                model.Modified       = DateTime.Now;
                model.Author         = GetCurrentUserLoginId();
                model.Editor         = GetCurrentUserLoginId();
                string ReturnTID = string.Empty;
                if (hidOperType.Value == "add")
                {
                    ReturnTID = mbll.Add(model);
                    if (string.IsNullOrEmpty(ReturnTID))
                    {
                        ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "malert", "alert('模板基本信息配置失败!');", true);
                    }
                    else
                    {
                        result     = true;
                        TemplateID = Guid.Parse(ReturnTID);
                        //Page.Response.Redirect("DataSourceConfig.aspx?templateID=" + ReturnTID + "&sourceID=" + hidsourceid.Value.Trim(), true);
                    }
                }
                else
                {
                    TemplateID = Guid.Parse(Page.Request.QueryString["templateID"]);
                    CMICT.CSP.Model.BS_TEMPLATE_MAIN modele = mbll.GetModel(TemplateID);
                    model.TemplateID  = TemplateID;
                    model.Created     = modele.Created;
                    model.SQL         = modele.SQL;
                    model.Reminder    = modele.Reminder;
                    model.DiaplayType = modele.DiaplayType;
                    model.ColumnSize  = modele.ColumnSize;
                    model.Editor      = GetCurrentUserLoginId();
                    model.Author      = modele.Author;
                    if (!string.IsNullOrEmpty(hidsourceid.Value))
                    {
                        model.SourceID = Guid.Parse(hidsourceid.Value.Trim());
                    }
                    //if (chkDisabled.Checked)
                    //{
                    //    model.TemplateStatus = "DISABLE";
                    //}
                    //else
                    //{
                    model.TemplateStatus = "DRAFT";
                    //}
                    if (!mbll.Update(model))
                    {
                        ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "malert", "alert('模板基本信息修改失败!');", true);
                    }
                    else
                    {
                        BusinessSearchComponent bsbll = new BusinessSearchComponent();
                        bsbll.RemoveTemplateByGuid(TemplateID.ToString());
                        result = true;
                    }
                }
            }
            catch (Exception ee) { BaseComponent.Error(ee.Message); }
            if (result)
            {
                string edit = string.Empty;
                if (!string.IsNullOrEmpty(Page.Request.QueryString["type"]))
                {
                    edit = "&type=edit";
                }
                string bigname   = ddlCATEGORY.SelectedItem.Text;
                string smallname = ddlsmallcategory.SelectedItem.Text;
                Page.Response.Redirect("DataSourceConfig.aspx?bname=" + Page.Server.UrlEncode(bigname) + "&sname=" + Page.Server.UrlEncode(smallname) + "&templateID=" + TemplateID.ToString() + "&sourceID=" + hidsourceid.Value.Trim() + edit, true);
            }
        }
コード例 #5
0
        private void AddTemplateByGuid(string guid)
        {
            Guid templateID = new Guid(guid);
            BS_TEMPLATE_MAINBLL templateBll = new BS_TEMPLATE_MAINBLL();
            BS_TEMPLATE_MAIN    template    = templateBll.GetModel(templateID);

            if (template == null)
            {
                return;                               //模板已删除
            }
            if (template.TemplateStatus == "DISABLE") //|| template.TemplateStatus == "DRAFT")
            {
                return;                               //模板为禁用状态
            }
            TemplateModel templateModel = new TemplateModel();

            templateModel.TemplateName = template.TemplateName;
            templateModel.TemplateDesc = template.TemplateDesc;
            templateModel.IsReleased   = (template.TemplateStatus == "FREE" || template.TemplateStatus == "ENABLE");
            //GridBuilder

            GridBuilder gb = new GridBuilder();

            gb.DisplayType            = template.DiaplayType;
            gb.ColumnSize             = template.ColumnSize;
            templateModel.GridBuilder = gb;

            //SQLBuilder
            templateModel.SQLBuilder = new SQLBuilder();
            BS_DATASOURCEBLL sourceBll = new BS_DATASOURCEBLL();
            BS_DATASOURCE    source    = sourceBll.GetModel(template.SourceID);

            templateModel.SQLBuilder.IsProcudure = source.ObjectType == "PROC";
            if (templateModel.SQLBuilder.IsProcudure)
            {
                templateModel.SQLBuilder.ProcCalColumns = new Dictionary <string, string>();
            }
            templateModel.SQLBuilder.ConnectionStrings = BuildConnection(source.SourceIP, source.UserName, source.Password, source.DBName);
            if (templateModel.SQLBuilder.IsProcudure)
            {
                templateModel.SQLBuilder.TableName = source.ObjectName;
            }
            else
            {
                templateModel.SQLBuilder.TableName = "[" + source.ObjectName + "]";
            }

            //Columns
            DisplayConfigComponent displayCom = new DisplayConfigComponent();

            DataTable columnsData    = displayCom.GetColumnListByTemplateID(templateID);
            DataTable computeColumns = displayCom.GetCalListByTemplateID(templateID);

            DataTable queryData = new DataTable();

            queryData.Columns.Add("IsCal");
            queryData.Columns.Add("ColumnName");
            queryData.Columns.Add("DisplayName");
            queryData.Columns.Add("Sequence", typeof(double));
            queryData.Columns.Add("MergeColumnName");
            queryData.Columns.Add("DecimalCount");

            if (columnsData != null && columnsData.Rows.Count > 0)
            {
                foreach (DataRow dr in columnsData.Rows)
                {
                    if (!bool.Parse(Convert.ToString(dr["Visiable"])))
                    {
                        continue;
                    }
                    DataRow newDr = queryData.NewRow();
                    newDr["IsCal"]           = "0";
                    newDr["ColumnName"]      = dr["ColumnName"];
                    newDr["DisplayName"]     = dr["DisplayName"];
                    newDr["Sequence"]        = string.IsNullOrEmpty(Convert.ToString(dr["Sequence"])) ? double.MaxValue : dr["Sequence"];
                    newDr["MergeColumnName"] = dr["MergeColumnName"];
                    newDr["DecimalCount"]    = "-1";
                    queryData.Rows.Add(newDr);
                }
            }
            if (computeColumns != null && computeColumns.Rows.Count > 0)
            {
                foreach (DataRow dr in computeColumns.Rows)
                {
                    DataRow newDr = queryData.NewRow();
                    newDr["IsCal"]           = "1";
                    newDr["ColumnName"]      = dr["ComputeColumn"];
                    newDr["DisplayName"]     = dr["DisplayName"];
                    newDr["Sequence"]        = string.IsNullOrEmpty(Convert.ToString(dr["Sequence"])) ? double.MaxValue : dr["Sequence"];
                    newDr["MergeColumnName"] = dr["MergeColumnName"];
                    newDr["DecimalCount"]    = dr["DecimalCount"];
                    queryData.Rows.Add(newDr);
                }
            }
            DataView dv = queryData.DefaultView;

            dv.Sort = "Sequence Asc,DisplayName Asc";
            DataTable sortedColumns = dv.ToTable();

            string columns      = ""; //列名
            string displayNames = ""; //显示名
            string mergeNames   = ""; //合并表头
            string queryFields  = ""; //用于拼sql语句

            int calSeq = 1;

            foreach (DataRow dr in sortedColumns.Rows)
            {
                if (Convert.ToString(dr["IsCal"]) == "0")
                {
                    displayNames += Convert.ToString(dr["DisplayName"]) + ",";
                    mergeNames   += Convert.ToString(dr["MergeColumnName"]) + ",";
                    queryFields  += Convert.ToString(dr["ColumnName"]) + ",";
                    if (!templateModel.SQLBuilder.IsProcudure)
                    {
                        columns += "[" + Convert.ToString(dr["ColumnName"]) + "],";
                    }
                }
                else
                {
                    string decimalcount = Convert.ToString(dr["DecimalCount"]);
                    if (string.IsNullOrEmpty(Convert.ToString(dr["Sequence"])))
                    {
                        continue;
                    }
                    queryFields += "bs_cal_col" + calSeq + ",";

                    mergeNames   += Convert.ToString(dr["MergeColumnName"]) + ",";
                    displayNames += Convert.ToString(dr["DisplayName"]) + ",";
                    string calstr     = Convert.ToString(dr["ColumnName"]);
                    string proccalstr = string.Empty;
                    if (!string.IsNullOrEmpty(decimalcount) && decimalcount != "-1")
                    {
                        //proccalstr = "(Convert((" + calstr + ") * 1000 + 0.000000001,'System.Int32') / 1000)+'d3'";
                        proccalstr = "(Convert(" + calstr + ",'System.String'))+'|" + decimalcount + "'";
                        calstr     = "Convert(decimal(20," + decimalcount + ")," + calstr + ")";
                    }
                    if (templateModel.SQLBuilder.IsProcudure)
                    {
                        templateModel.SQLBuilder.ProcCalColumns.Add("bs_cal_col" + calSeq, proccalstr);
                        //templateModel.SQLBuilder.ProcCalColumns.Add("bs_cal_col" + calSeq, Convert.ToString(dr["ColumnName"])); Convert(" + calstr + ",decimal(20," + decimalcount + "))
                    }
                    else
                    {
                        //columns += "(" + Convert.ToString(dr["ColumnName"]) + ") as bs_cal_col" + calSeq + ",";
                        columns += "(" + calstr + ") as bs_cal_col" + calSeq + ",";
                    }
                    calSeq++;
                }
            }
            //排序:Sequence为空时,排在最后
            foreach (DataRow dr in sortedColumns.Rows)
            {
                if (!string.IsNullOrEmpty(Convert.ToString(dr["Sequence"])))
                {
                    continue;
                }
                queryFields += "bs_cal_col" + calSeq + ",";
                string decimalcount = Convert.ToString(dr["DecimalCount"]);
                mergeNames   += Convert.ToString(dr["MergeColumnName"]) + ",";
                displayNames += Convert.ToString(dr["DisplayName"]) + ",";
                string calstr     = Convert.ToString(dr["ColumnName"]);
                string proccalstr = string.Empty;
                if (!string.IsNullOrEmpty(decimalcount) && decimalcount != "-1")
                {
                    //proccalstr = "(Convert((" + calstr + ") * 1000 + 0.000000001,'System.Int32') / 1000)+'d3'";
                    proccalstr = "(Convert(" + calstr + ",'System.String'))+'|" + decimalcount + "'";
                    calstr     = "Convert(decimal(20," + decimalcount + ")," + calstr + ")";
                }
                if (templateModel.SQLBuilder.IsProcudure)
                {
                    templateModel.SQLBuilder.ProcCalColumns.Add("bs_cal_col" + calSeq, proccalstr);
                }
                else
                {
                    columns += "(" + calstr + ") as bs_cal_col" + calSeq + ",";
                }
                calSeq++;
            }

            queryFields = queryFields.TrimEnd(',');
            columns     = columns.TrimEnd(',');
            if (!string.IsNullOrEmpty(mergeNames))
            {
                mergeNames = mergeNames.Substring(0, mergeNames.Length - 1);
            }
            displayNames = displayNames.TrimEnd(',');


            templateModel.SQLBuilder.ColumnNames      = queryFields;
            templateModel.SQLBuilder.DisplayNames     = displayNames;
            templateModel.SQLBuilder.MergeColumnNames = mergeNames;
            templateModel.SQLBuilder.SelectSQL        = columns;


            //隐藏列
            DataTable commColumns = GetCommunicationColumns(guid);

            if (commColumns != null && commColumns.Rows.Count > 0)
            {
                string hiddenColumns       = string.Empty;
                string hiddenSelectColumns = string.Empty;
                foreach (DataRow dr in commColumns.Rows)
                {
                    string hiddenColumn = Convert.ToString(dr["SourceColumnName"]);
                    if (!queryFields.Split(',').Contains(hiddenColumn))
                    {
                        hiddenSelectColumns += "[" + Convert.ToString(dr["SourceColumnName"]) + "],";
                        hiddenColumns       += Convert.ToString(dr["SourceColumnName"]) + ",";
                    }
                }

                if (!string.IsNullOrEmpty(hiddenColumns.TrimEnd(',')))
                {
                    templateModel.SQLBuilder.SelectSQL  += "," + hiddenSelectColumns.TrimEnd(',');
                    templateModel.SQLBuilder.HiddenNames = hiddenColumns.TrimEnd(',');
                }
            }



            //DefaultQuery
            QueryConfigComponent queryCom     = new QueryConfigComponent();
            StringBuilder        defaultQuery = new StringBuilder();

            defaultQuery.Append(" where 1=1 ");
            StringBuilder subQuery  = new StringBuilder();
            string        mainLogic = string.Empty;
            int           i         = 1;

            while (true)
            {
                DataTable queryDt = queryCom.GetDefaultQueryListInfoByTemplateID(templateID, i);
                if (queryDt == null || queryDt.Rows.Count == 0)
                {
                    break;
                }
                if (Convert.ToString(queryDt.Rows[0]["SubLogic"]) == "proc") //处理存储过程参数
                {
                    Dictionary <string, string> list = new Dictionary <string, string>();
                    foreach (DataRow dr in queryDt.Rows)
                    {
                        list.Add(Convert.ToString(dr["ColumnName"]), Convert.ToString(dr["CompareValue"]));
                    }
                    templateModel.SQLBuilder.Parameters = list;
                    i++;
                    continue;
                }
                mainLogic = Convert.ToString(queryDt.Rows[0]["MainLogic"]);
                string subLogic = Convert.ToString(queryDt.Rows[0]["SubLogic"]);
                subQuery.Append(" (");
                foreach (DataRow dr in queryDt.Rows)
                {
                    if (templateModel.SQLBuilder.IsProcudure)
                    {
                        subQuery.Append(Convert.ToString(dr["ColumnName"]) + " " + string.Format(FormatCompare(Convert.ToString(dr["Compare"]), templateModel.SQLBuilder.IsProcudure), Convert.ToString(dr["CompareValue"])));
                    }
                    else
                    {
                        subQuery.Append("[" + Convert.ToString(dr["ColumnName"]) + "] " + string.Format(FormatCompare(Convert.ToString(dr["Compare"]), templateModel.SQLBuilder.IsProcudure), Convert.ToString(dr["CompareValue"])));
                    }
                    subQuery.Append(" " + subLogic + " ");
                }
                subQuery.Remove(subQuery.Length - subLogic.Length - 1, subLogic.Length);
                subQuery.Append(") ");
                subQuery.Append(mainLogic);
                i++;
            }
            if (subQuery.Length != 0)
            {
                subQuery.Remove(subQuery.Length - mainLogic.Length, mainLogic.Length);
                defaultQuery.Append(" and (");
                defaultQuery.Append(subQuery.ToString());
                defaultQuery.Append(")");
            }

            templateModel.SQLBuilder.DefauleQuery = defaultQuery.ToString();


            //QueryControls
            QueryConfigComponent queryBll = new QueryConfigComponent();
            DataTable            query    = queryBll.GetUserQueryListByTemplateIDForModel(templateID);

            if (query != null && query.Rows.Count > 0)
            {
                templateModel.QueryControls = new List <QueryControls>();

                foreach (DataRow dr in query.Rows)
                {
                    QueryControls controls = new QueryControls();
                    controls.Reminder    = Convert.ToString(dr["Reminder"]);
                    controls.DefautValue = Convert.ToString(dr["DefaultValue"]);
                    if (templateModel.SQLBuilder.IsProcudure)
                    {
                        controls.ColumnName = Convert.ToString(dr["ColumnName"]);
                    }
                    else
                    {
                        controls.ColumnName = "[" + Convert.ToString(dr["ColumnName"]) + "]";
                    }

                    controls.DisplayName = Convert.ToString(dr["DisplayName"]);
                    controls.ControlType = Convert.ToString(dr["ControlType"]);
                    controls.Compare     = controls.ColumnName + FormatCompare(Convert.ToString(dr["Compare"]), templateModel.SQLBuilder.IsProcudure);
                    if (Convert.ToString(dr["Compare"]) == "CONTAIN" || Convert.ToString(dr["Compare"]) == "NOTCONTAIN")
                    {
                        controls.IsLike = true;
                    }
                    else
                    {
                        controls.IsLike = false;
                    }
                    if (controls.ControlType == "ENUM" || controls.ControlType == "MULTENUM" || controls.ControlType == "MATCH")
                    {
                        controls.SourceSql = "select distinct(" + controls.ColumnName + ") as EnumValue from " + templateModel.SQLBuilder.TableName + " " + templateModel.SQLBuilder.DefauleQuery;
                    }

                    templateModel.QueryControls.Add(controls);
                }
            }


            //DefaultOrderby
            DataTable orderby = displayCom.GetSortListByTemplateID(templateID);

            if (orderby != null && orderby.Rows.Count > 0)
            {
                string orderbySQL = "";
                foreach (DataRow dr in orderby.Rows)
                {
                    if (templateModel.SQLBuilder.IsProcudure)
                    {
                        orderbySQL += Convert.ToString(dr["SortColumn"]) + " " + Convert.ToString(dr["Type"]) + ",";
                    }
                    else
                    {
                        orderbySQL += "[" + Convert.ToString(dr["SortColumn"]) + "] " + Convert.ToString(dr["Type"]) + ",";
                    }
                }
                orderbySQL = orderbySQL.TrimEnd(',');

                templateModel.SQLBuilder.Orderby = orderbySQL;
            }

            //Groupby

            DataTable groupData = displayCom.GetGroupByListByTemplateID(templateID);

            if (groupData != null && groupData.Rows.Count > 0)
            {
                templateModel.GroupBy = new List <GroupBy>();
                foreach (DataRow dr in groupData.Rows)
                {
                    GroupBy group = new GroupBy();
                    group.Columns  = Convert.ToString(dr["Columns"]);
                    group.IsAtLast = Convert.ToString(dr["Location"]) == "LAST";
                    Dictionary <string, string> dic = new Dictionary <string, string>();
                    foreach (string groupSql in Convert.ToString(dr["ComputeColumn"]).Split(';'))
                    {
                        string[] gs = groupSql.Split(',');
                        //string key = groupSql.Substring(groupSql.IndexOf('(')).TrimEnd(')').TrimStart('(');
                        string key = gs[0].Substring(gs[0].IndexOf('(')).TrimEnd(')').TrimStart('(');
                        dic.Add(key, groupSql);
                    }
                    group.GroupByColumns = dic;
                    templateModel.GroupBy.Add(group);
                }
            }

            //Communication
            CommunicationConfigComponent communicationCom = new CommunicationConfigComponent();
            DataTable commData = communicationCom.GetCommunicationByTemplateID(guid);

            if (commData != null && commData.Rows.Count > 0)
            {
                templateModel.Communication = new List <Communication>();

                foreach (DataRow dr in commData.Rows)
                {
                    Communication comModel = new Communication();
                    comModel.SourceTemplateID = Convert.ToString(dr["SourceTemplateID"]);
                    comModel.CoumunicationID  = Convert.ToString(dr["CommunicationID"]);
                    comModel.Fields           = new Dictionary <string, string>();
                    DataTable commDetailData = communicationCom.GetCommunicationFields(Convert.ToString(dr["CommunicationID"]));
                    if (commDetailData != null && commDetailData.Rows.Count > 0)
                    {
                        foreach (DataRow dr2 in commDetailData.Rows)
                        {
                            if (dr2["SourceColumnName"] == null || string.IsNullOrEmpty(dr2["SourceColumnName"].ToString()))
                            {
                                continue;
                            }
                            comModel.Fields.Add(Convert.ToString(dr2["SourceColumnName"]), Convert.ToString(dr2["TargetColumnName"]));
                        }
                    }
                    templateModel.Communication.Add(comModel);
                }
            }


            templateModel.SQLBuilder.PageSize = Convert.ToString(template.PageSize);

            if (templateModel.SQLBuilder.IsProcudure != true && templateModel.GroupBy == null)
            {
                templateModel.IsTruePaged = true;
            }
            else
            {
                templateModel.IsTruePaged = false;
            }


            MemcachedCache mc = new MemcachedCache();

            mc.Put <TemplateModel>(cacheHeader + guid.ToLower(), templateModel);
        }
コード例 #6
0
        //复制
        protected void btncopy_Click(object sender, EventArgs e)
        {
            try
            {
                string TemplateID  = hidtemplateid.Value.Trim();
                string CopyNewName = hidCopyName.Value.Trim();
                if (!string.IsNullOrEmpty(TemplateID) && !string.IsNullOrEmpty(CopyNewName))
                {
                    Guid temid = Guid.Parse(TemplateID);
                    //复制templatemain表
                    BS_TEMPLATE_MAINBLL tmain  = new BS_TEMPLATE_MAINBLL();
                    BS_TEMPLATE_MAIN    tmodel = tmain.GetModel(temid);
                    tmodel.TemplateName   = CopyNewName;
                    tmodel.Created        = DateTime.Now;
                    tmodel.Modified       = DateTime.Now;
                    tmodel.Author         = BaseWebPart.GetCurrentUserLoginId();
                    tmodel.Editor         = BaseWebPart.GetCurrentUserLoginId();
                    tmodel.TemplateStatus = "FREE";
                    string newtemplateid = tmain.Add(tmodel);
                    if (!string.IsNullOrEmpty(newtemplateid))
                    {
                        DisplayConfigComponent dcc = new DisplayConfigComponent();
                        #region  制表
                        Guid newtemplateguid = Guid.Parse(newtemplateid);
                        //复制bscompare表
                        DataTable dt = dcc.GetCalListByTemplateID(temid);
                        if (dt != null && dt.Rows.Count > 0)
                        {
                            BS_COMPUTEBLL cmain = new BS_COMPUTEBLL();
                            foreach (DataRow dr in dt.Rows)
                            {
                                BS_COMPUTE cmodel = cmain.GetModel(Guid.Parse(dr["id"].ToString()));
                                if (cmodel != null)
                                {
                                    cmodel.TemplateID = newtemplateguid;
                                    cmodel.Created    = DateTime.Now;
                                    cmodel.Modified   = DateTime.Now;
                                    cmodel.Author     = BaseWebPart.GetCurrentUserLoginId();
                                    cmodel.Editor     = BaseWebPart.GetCurrentUserLoginId();
                                    cmain.Add(cmodel);
                                }
                            }
                        }
                        //复制BS_CUSTOM_QUERY表
                        dt = tmbll.GetBS_CUSTOM_QUERYIDByTemplateID(temid);
                        if (dt != null && dt.Rows.Count > 0)
                        {
                            BS_CUSTOM_QUERYBLL cbll = new BS_CUSTOM_QUERYBLL();
                            foreach (DataRow dr in dt.Rows)
                            {
                                BS_CUSTOM_QUERY cqmodel = cbll.GetModel(Guid.Parse(dr["id"].ToString()));
                                if (cqmodel != null)
                                {
                                    cqmodel.TemplateID = newtemplateguid;
                                    cqmodel.Created    = DateTime.Now;
                                    cqmodel.Modified   = DateTime.Now;
                                    cqmodel.Author     = BaseWebPart.GetCurrentUserLoginId();
                                    cqmodel.Editor     = BaseWebPart.GetCurrentUserLoginId();
                                    cbll.Add(cqmodel);
                                }
                            }
                        }
                        //复制BS_CUSTOM_QUERY表
                        dt = tmbll.GetBS_DEFAULT_QUERYIDByTemplateID(temid);
                        if (dt != null && dt.Rows.Count > 0)
                        {
                            BS_DEFAULT_QUERYBLL dbll = new BS_DEFAULT_QUERYBLL();
                            foreach (DataRow dr in dt.Rows)
                            {
                                BS_DEFAULT_QUERY dmodel = dbll.GetModel(Guid.Parse(dr["id"].ToString()));
                                if (dmodel != null)
                                {
                                    dmodel.TemplateID = newtemplateguid;
                                    dmodel.Created    = DateTime.Now;
                                    dmodel.Modified   = DateTime.Now;
                                    dmodel.Author     = BaseWebPart.GetCurrentUserLoginId();
                                    dmodel.Editor     = BaseWebPart.GetCurrentUserLoginId();
                                    dbll.Add(dmodel);
                                }
                            }
                        }
                        //复制BS_GROUPBY表
                        dt = tmbll.GetBS_GROUPBYIDByTemplateID(temid);
                        if (dt != null && dt.Rows.Count > 0)
                        {
                            BS_GROUPBYBLL gbll = new BS_GROUPBYBLL();
                            foreach (DataRow dr in dt.Rows)
                            {
                                BS_GROUPBY gmodel = gbll.GetModel(Guid.Parse(dr["id"].ToString()));
                                if (gmodel != null)
                                {
                                    gmodel.TemplateID = newtemplateguid;
                                    gmodel.Created    = DateTime.Now;
                                    gmodel.Modified   = DateTime.Now;
                                    gmodel.Author     = BaseWebPart.GetCurrentUserLoginId();
                                    gmodel.Editor     = BaseWebPart.GetCurrentUserLoginId();
                                    gbll.Add(gmodel);
                                }
                            }
                        }
                        //复制BS_TEMPLATE_COLUMNS表
                        dt = tmbll.GetBS_TEMPLATE_COLUMNSIDByTemplateID(temid);
                        if (dt != null && dt.Rows.Count > 0)
                        {
                            BS_TEMPLATE_COLUMNSBLL tbll = new BS_TEMPLATE_COLUMNSBLL();
                            foreach (DataRow dr in dt.Rows)
                            {
                                BS_TEMPLATE_COLUMNS tcmodel = tbll.GetModel(Guid.Parse(dr["id"].ToString()));
                                if (tcmodel != null)
                                {
                                    tcmodel.TemplateID = newtemplateguid;
                                    tcmodel.Created    = DateTime.Now;
                                    tcmodel.Modified   = DateTime.Now;
                                    tcmodel.Author     = BaseWebPart.GetCurrentUserLoginId();
                                    tcmodel.Editor     = BaseWebPart.GetCurrentUserLoginId();
                                    tbll.Add(tcmodel);
                                }
                            }
                        }

                        //复制BS_TEMPLATE_SORT表
                        dt = tmbll.GetBS_TEMPLATE_SORTIDByTemplateID(temid);
                        if (dt != null && dt.Rows.Count > 0)
                        {
                            BS_TEMPLATE_SORTBLL sbll = new BS_TEMPLATE_SORTBLL();
                            foreach (DataRow dr in dt.Rows)
                            {
                                BS_TEMPLATE_SORT smodel = sbll.GetModel(Guid.Parse(dr["id"].ToString()));
                                if (smodel != null)
                                {
                                    smodel.TemplateID = newtemplateguid;
                                    smodel.Created    = DateTime.Now;
                                    smodel.Modified   = DateTime.Now;
                                    smodel.Author     = BaseWebPart.GetCurrentUserLoginId();
                                    smodel.Editor     = BaseWebPart.GetCurrentUserLoginId();
                                    sbll.Add(smodel);
                                }
                            }
                        }
                        //复制BS_COMMUNICATION_MAIN表
                        dt = tmbll.GetBS_COMMUNICATION_MAINIDByTemplateID(temid);
                        if (dt != null && dt.Rows.Count > 0)
                        {
                            BS_COMMUNICATION_MAINBLL   sbll      = new BS_COMMUNICATION_MAINBLL();
                            BS_COMMUNICATION_DETAILBLL detailbll = new BS_COMMUNICATION_DETAILBLL();
                            foreach (DataRow dr in dt.Rows)
                            {
                                Guid commid = Guid.NewGuid();
                                BS_COMMUNICATION_MAIN smodel = sbll.GetModel(Guid.Parse(dr["CommunicationID"].ToString()));
                                if (smodel != null)
                                {
                                    smodel.CommunicationID  = commid;
                                    smodel.TargetTemplateID = newtemplateguid;
                                    smodel.Created          = DateTime.Now;
                                    smodel.Modified         = DateTime.Now;
                                    smodel.Author           = BaseWebPart.GetCurrentUserLoginId();
                                    smodel.Editor           = BaseWebPart.GetCurrentUserLoginId();
                                    sbll.Add(smodel);
                                }
                                DataTable dtdetail = tmbll.GetBS_COMMUNICATION_DETAILByID(Guid.Parse(dr["CommunicationID"].ToString()));
                                if (dtdetail != null && dtdetail.Rows.Count > 0)
                                {
                                    foreach (DataRow drd in dtdetail.Rows)
                                    {
                                        BS_COMMUNICATION_DETAIL sdmodel = detailbll.GetModel(Guid.Parse(drd["id"].ToString()));
                                        if (smodel != null)
                                        {
                                            sdmodel.ID = Guid.NewGuid();
                                            sdmodel.CommunicationID = commid;
                                            sdmodel.Created         = DateTime.Now;
                                            sdmodel.Modified        = DateTime.Now;
                                            sdmodel.Author          = BaseWebPart.GetCurrentUserLoginId();
                                            sdmodel.Editor          = BaseWebPart.GetCurrentUserLoginId();
                                            detailbll.Add(sdmodel);
                                        }
                                    }
                                }
                            }
                        }
                        #endregion
                        ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "sucadd", "layer.alert('模板复制成功!',9);", true);
                        BindTemplateList();
                    }
                    else
                    {
                        ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "erroradd", "layer.alert('模板复制失败!',8);", true);
                    }
                }
                else
                {
                    ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "errora", "layer.alert('未获取到模板源信息,无法复制!',8);", true);
                }
            }
            catch (Exception ee)
            {
                ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "erroradd", "layer.alert('模板复制失败!',8);", true);
                BaseComponent.Error(ee.Message);
            }
        }