コード例 #1
0
        /// <summary>
        /// 得到一个对象实体
        /// </summary>
        public CUSTOMRP.Model.REPORTCOLUMN GetModel(int UserID, int ID)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("SELECT TOP 1 rc.ID,rc.RPID,rc.COLUMNNAME,rc.COLUMNFUNC,rc.CRITERIA1,rc.CRITERIA2,rc.CRITERIA3,rc.CRITERIA4,rc.AUDODATE,")
            .Append(" rc.SOURCEVIEWCOLUMNID,rc.DISPLAYNAME,rc.COLUMNTYPE,rc.COLUMNCOMMENT,rc.FORMULAFIELDID,rc.HIDDEN,rc.SEQ,rc.EXCEL_COLWIDTH,rc.FONT_SIZE,rc.FONT_BOLD,rc.FONT_ITALIC,rc.HORIZONTAL_TEXT_ALIGN,rc.CELL_FORMAT,rc.BACKGROUND_COLOR,rc.FONT_COLOR,rc.IS_NUMERIC,rc.IS_ASCENDING,")
            .Append(" COALESCE(NULLIF(svc.DISPLAYNAME, ''), NULLIF(svc.DEFAULTDISPLAYNAME, ''), '') SVCDISPLAYNAME")
            .Append(" from REPORTCOLUMN rc")
            .Append(" INNER JOIN REPORT rp ON rc.RPID = rp.ID")
            .Append(" INNER JOIN SOURCEVIEW sv ON rp.SVID = sv.ID")
            .Append(" LEFT JOIN SOURCEVIEWCOLUMN svc ON sv.ID = svc.SVID AND rc.COLUMNNAME = svc.COLUMNNAME")
            .Append(" WHERE rc.ID=@ID")
            .Append(" AND (((svc.HIDDEN IS NULL) OR (svc.HIDDEN = 0)) OR (rc.COLUMNTYPE = 2))")
            .Append(" ORDER BY rc.COLUMNFUNC, rc.SEQ");

            SqlParameter[] parameters =
            {
                new SqlParameter("@ID", SqlDbType.Int, 4)
            };
            parameters[0].Value = ID;

            CUSTOMRP.Model.REPORTCOLUMN model = new CUSTOMRP.Model.REPORTCOLUMN();
            DataSet ds = DbHelperSQL.Query(UserID, strSql.ToString(), parameters);

            if (ds.Tables[0].Rows.Count > 0)
            {
                return(DataRowToModel(ds.Tables[0].Rows[0]));
            }
            else
            {
                return(null);
            }
        }
コード例 #2
0
        /// <summary>
        /// Update REPORTCOLUMN data similar to where REPLACE statement in MySQL works
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public bool Replace(int UserID, CUSTOMRP.Model.REPORTCOLUMN model)
        {
            bool result = false;

            if (model.ColumnType == Model.REPORTCOLUMN.ColumnTypes.Normal)
            {
                string strQuery = "SELECT [ID] FROM [REPORTCOLUMN] WHERE [RPID] = @RPID AND [COLUMNNAME] = @COLUMNNAME AND COLUMNFUNC = @COLUMNFUNC AND COLUMNTYPE = @COLUMNTYPE";

                try
                {
                    object columnid = DbHelperSQL.GetSingle(UserID, strQuery,
                                                            new SqlParameter("@RPID", model.RPID),
                                                            new SqlParameter("@COLUMNNAME", model.COLUMNNAME),
                                                            new SqlParameter("@COLUMNFUNC", model.COLUMNFUNC),
                                                            new SqlParameter("@COLUMNTYPE", model.COLUMNTYPE));
                    if (columnid == null)
                    {
                        result = (Add(UserID, model) != 0);
                    }
                    else
                    {
                        model.ID = (int)columnid;
                        result   = Update(UserID, model);
                    }
                }
                catch
                {
                    // operation failed, return false
                }
            }
            else
            {
                string strQuery = "SELECT [ID] FROM [REPORTCOLUMN] WHERE [RPID] = @RPID AND [DISPLAYNAME] = @DISPLAYNAME AND COLUMNFUNC = @COLUMNFUNC AND COLUMNTYPE = @COLUMNTYPE";

                try
                {
                    object columnid = DbHelperSQL.GetSingle(UserID, strQuery,
                                                            new SqlParameter("@RPID", model.RPID),
                                                            new SqlParameter("@DISPLAYNAME", model.DISPLAYNAME),
                                                            new SqlParameter("@COLUMNFUNC", model.COLUMNFUNC),
                                                            new SqlParameter("@COLUMNTYPE", model.COLUMNTYPE));
                    if (columnid == null)
                    {
                        result = (Add(UserID, model) != 0);
                    }
                    else
                    {
                        model.ID = (int)columnid;
                        result   = Update(UserID, model);
                    }
                }
                catch
                {
                    // operation failed, return false
                }
            }
            return(result);
        }
コード例 #3
0
 /// <summary>
 /// 得到一个对象实体
 /// </summary>
 public CUSTOMRP.Model.REPORTCOLUMN DataRowToModel(DataRow row)
 {
     CUSTOMRP.Model.REPORTCOLUMN model = new CUSTOMRP.Model.REPORTCOLUMN();
     if (row != null)
     {
         if (row["ID"] != null && row["ID"].ToString() != "")
         {
             model.ID = Int32.Parse(row["ID"].ToString());
         }
         if (row["RPID"] != null && row["RPID"].ToString() != "")
         {
             model.RPID = Int32.Parse(row["RPID"].ToString());
         }
         if (row["COLUMNNAME"] != null)
         {
             model.COLUMNNAME = row["COLUMNNAME"].ToString();
         }
         if (row["COLUMNFUNC"] != null && row["COLUMNFUNC"].ToString() != "")
         {
             model.COLUMNFUNC = Int32.Parse(row["COLUMNFUNC"].ToString());
         }
         if (row["CRITERIA1"] != null)
         {
             model.CRITERIA1 = row["CRITERIA1"].ToString();
         }
         if (row["CRITERIA2"] != null)
         {
             model.CRITERIA2 = row["CRITERIA2"].ToString();
         }
         if (row["CRITERIA3"] != null)
         {
             model.CRITERIA3 = row["CRITERIA3"].ToString();
         }
         if (row["CRITERIA4"] != null)
         {
             model.CRITERIA4 = row["CRITERIA4"].ToString();
         }
         if (row["AUDODATE"] != null && row["AUDODATE"].ToString() != "")
         {
             model.AUDODATE = DateTime.Parse(row["AUDODATE"].ToString());
         }
         if ((row["SOURCEVIEWCOLUMNID"] != null) && (!Convert.IsDBNull(row["SOURCEVIEWCOLUMNID"])))
         {
             model.SOURCEVIEWCOLUMNID = Convert.ToInt32(row["SOURCEVIEWCOLUMNID"]);
         }
         model.DISPLAYNAME           = row["DISPLAYNAME"] as string;
         model.COLUMNTYPE            = Convert.ToInt32(row["COLUMNTYPE"]);
         model.COLUMNCOMMENT         = row["COLUMNCOMMENT"] as string;
         model.FORMULAFIELDID        = Convert.IsDBNull(row["FORMULAFIELDID"]) ? (int?)null : Convert.ToInt32(row["FORMULAFIELDID"]);
         model.HIDDEN                = Convert.ToBoolean(row["HIDDEN"]);
         model.SEQ                   = Convert.ToInt32(row["SEQ"]);
         model.EXCEL_COLWIDTH        = Convert.ToDecimal(row["EXCEL_COLWIDTH"]);
         model.FONT_SIZE             = Convert.IsDBNull(row["FONT_SIZE"]) ? (int?)null : Convert.ToInt32(row["FONT_SIZE"]);
         model.FONT_BOLD             = Convert.ToBoolean(row["FONT_BOLD"]);
         model.FONT_ITALIC           = Convert.ToBoolean(row["FONT_ITALIC"]);
         model.HORIZONTAL_TEXT_ALIGN = Convert.ToInt32(row["HORIZONTAL_TEXT_ALIGN"]);
         model.CELL_FORMAT           = row["CELL_FORMAT"] as string;
         model.BACKGROUND_COLOR      = row["BACKGROUND_COLOR"] as string;
         model.FONT_COLOR            = row["FONT_COLOR"] as string;
         model.SVCDISPLAYNAME        = row["SVCDISPLAYNAME"] as string;
         model.IS_NUMERIC            = Convert.IsDBNull(row["IS_NUMERIC"]) ? true : Convert.ToBoolean(row["IS_NUMERIC"]);
         model.IS_ASCENDING          = Convert.IsDBNull(row["IS_ASCENDING"]) ? true : Convert.ToBoolean(row["IS_ASCENDING"]);
     }
     return(model);
 }
コード例 #4
0
        /// <summary>
        /// 增加一条数据
        /// </summary>
        public int Add(int UserID, CUSTOMRP.Model.REPORTCOLUMN model)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("insert into REPORTCOLUMN(");
            strSql.Append("RPID,COLUMNNAME,COLUMNFUNC,CRITERIA1,CRITERIA2,CRITERIA3,CRITERIA4,AUDODATE,SOURCEVIEWCOLUMNID,DISPLAYNAME,COLUMNTYPE,COLUMNCOMMENT,FORMULAFIELDID,HIDDEN,SEQ,EXCEL_COLWIDTH,FONT_SIZE,FONT_BOLD,FONT_ITALIC,HORIZONTAL_TEXT_ALIGN,CELL_FORMAT,BACKGROUND_COLOR,FONT_COLOR,IS_NUMERIC,IS_ASCENDING)");
            strSql.Append(" values (");
            strSql.Append("@RPID,@COLUMNNAME,@COLUMNFUNC,@CRITERIA1,@CRITERIA2,@CRITERIA3,@CRITERIA4,@AUDODATE,@SOURCEVIEWCOLUMNID,@DISPLAYNAME,@COLUMNTYPE,@COLUMNCOMMENT,@FORMULAFIELDID,@HIDDEN,@SEQ,@EXCEL_COLWIDTH,@FONT_SIZE,@FONT_BOLD,@FONT_ITALIC,@HORIZONTAL_TEXT_ALIGN,@CELL_FORMAT,@BACKGROUND_COLOR,@FONT_COLOR,@IS_NUMERIC,@IS_ASCENDING)");
            strSql.Append(";select @@IDENTITY");
            SqlParameter[] parameters =
            {
                new SqlParameter("@RPID",                  SqlDbType.Int,        4),
                new SqlParameter("@COLUMNNAME",            SqlDbType.NVarChar,  -1),
                new SqlParameter("@COLUMNFUNC",            SqlDbType.Int,        4),
                new SqlParameter("@CRITERIA1",             SqlDbType.NVarChar,  -1),
                new SqlParameter("@CRITERIA2",             SqlDbType.NVarChar,  -1),
                new SqlParameter("@CRITERIA3",             SqlDbType.NVarChar,  -1),
                new SqlParameter("@CRITERIA4",             SqlDbType.NVarChar,  -1),
                new SqlParameter("@AUDODATE",              SqlDbType.DateTime),
                new SqlParameter("@SOURCEVIEWCOLUMNID",    SqlDbType.Int,        4),
                new SqlParameter("@DISPLAYNAME",           SqlDbType.NVarChar,  -1),
                new SqlParameter("@COLUMNTYPE",            SqlDbType.Int,        4),
                new SqlParameter("@COLUMNCOMMENT",         SqlDbType.NVarChar,  -1),
                new SqlParameter("@FORMULAFIELDID",        SqlDbType.Int,        4),
                new SqlParameter("@HIDDEN",                SqlDbType.Bit),
                new SqlParameter("@SEQ",                   SqlDbType.Int,        4),
                new SqlParameter("@EXCEL_COLWIDTH",        SqlDbType.Decimal),
                new SqlParameter("@FONT_SIZE",             SqlDbType.Int,        4),
                new SqlParameter("@FONT_BOLD",             SqlDbType.Bit),
                new SqlParameter("@FONT_ITALIC",           SqlDbType.Bit),
                new SqlParameter("@HORIZONTAL_TEXT_ALIGN", SqlDbType.Int,        4),
                new SqlParameter("@CELL_FORMAT",           SqlDbType.NVarChar,  -1),
                new SqlParameter("@BACKGROUND_COLOR",      SqlDbType.NVarChar,  -1),
                new SqlParameter("@FONT_COLOR",            SqlDbType.NVarChar,  -1),
                new SqlParameter("@IS_NUMERIC",            SqlDbType.Bit),
                new SqlParameter("@IS_ASCENDING",          SqlDbType.Bit),
            };
            parameters[0].Value  = model.RPID;
            parameters[1].Value  = model.COLUMNNAME;
            parameters[2].Value  = model.COLUMNFUNC;
            parameters[3].Value  = model.CRITERIA1;
            parameters[4].Value  = model.CRITERIA2;
            parameters[5].Value  = model.CRITERIA3;
            parameters[6].Value  = model.CRITERIA4;
            parameters[7].Value  = model.AUDODATE;
            parameters[8].Value  = model.SOURCEVIEWCOLUMNID ?? -1;
            parameters[9].Value  = model.DISPLAYNAME;
            parameters[10].Value = model.COLUMNTYPE;
            parameters[11].Value = model.COLUMNCOMMENT ?? String.Empty;
            parameters[12].Value = model.FORMULAFIELDID ?? Convert.DBNull;
            parameters[13].Value = model.HIDDEN;
            parameters[14].Value = model.SEQ;
            parameters[15].Value = model.EXCEL_COLWIDTH;
            parameters[16].Value = model.FONT_SIZE ?? Convert.DBNull;
            parameters[17].Value = model.FONT_BOLD;
            parameters[18].Value = model.FONT_ITALIC;
            parameters[19].Value = model.HORIZONTAL_TEXT_ALIGN;
            parameters[20].Value = model.CELL_FORMAT;
            parameters[21].Value = model.BACKGROUND_COLOR;
            parameters[22].Value = model.FONT_COLOR;
            parameters[23].Value = model.IS_NUMERIC;
            parameters[24].Value = model.IS_ASCENDING;

            object obj = DbHelperSQL.GetSingle(UserID, strSql.ToString(), parameters);

            if (obj == null)
            {
                return(0);
            }
            else
            {
                return(Convert.ToInt32(obj));
            }
        }
コード例 #5
0
        /// <summary>
        /// 更新一条数据
        /// </summary>
        public bool Update(int UserID, CUSTOMRP.Model.REPORTCOLUMN model)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("update REPORTCOLUMN set ");
            strSql.Append("RPID=@RPID,");
            strSql.Append("COLUMNNAME=@COLUMNNAME,");
            strSql.Append("COLUMNFUNC=@COLUMNFUNC,");
            strSql.Append("CRITERIA1=@CRITERIA1,");
            strSql.Append("CRITERIA2=@CRITERIA2,");
            strSql.Append("CRITERIA3=@CRITERIA3,");
            strSql.Append("CRITERIA4=@CRITERIA4,");
            strSql.Append("AUDODATE=@AUDODATE,");
            strSql.Append("SOURCEVIEWCOLUMNID=@SOURCEVIEWCOLUMNID,");
            strSql.Append("DISPLAYNAME=@DISPLAYNAME,");
            strSql.Append("COLUMNTYPE=@COLUMNTYPE,");
            strSql.Append("COLUMNCOMMENT=@COLUMNCOMMENT,");
            strSql.Append("FORMULAFIELDID=@FORMULAFIELDID,");
            strSql.Append("HIDDEN=@HIDDEN,");
            strSql.Append("SEQ=@SEQ,");
            strSql.Append("EXCEL_COLWIDTH=@EXCEL_COLWIDTH,");
            strSql.Append("FONT_SIZE=@FONT_SIZE,");
            strSql.Append("FONT_BOLD=@FONT_BOLD,");
            strSql.Append("FONT_ITALIC=@FONT_ITALIC,");
            strSql.Append("HORIZONTAL_TEXT_ALIGN=@HORIZONTAL_TEXT_ALIGN,");
            strSql.Append("CELL_FORMAT=@CELL_FORMAT,");
            strSql.Append("BACKGROUND_COLOR=@BACKGROUND_COLOR,");
            strSql.Append("FONT_COLOR=@FONT_COLOR,");
            strSql.Append("IS_NUMERIC=@IS_NUMERIC,");
            strSql.Append("IS_ASCENDING=@IS_ASCENDING");
            strSql.Append(" where ID=@ID");

            SqlParameter[] parameters =
            {
                new SqlParameter("@RPID",                  model.RPID),
                new SqlParameter("@COLUMNNAME",            model.COLUMNNAME),
                new SqlParameter("@COLUMNFUNC",            model.COLUMNFUNC),
                new SqlParameter("@CRITERIA1",             model.CRITERIA1),
                new SqlParameter("@CRITERIA2",             model.CRITERIA2),
                new SqlParameter("@CRITERIA3",             model.CRITERIA3),
                new SqlParameter("@CRITERIA4",             model.CRITERIA4),
                new SqlParameter("@AUDODATE",              model.AUDODATE),
                new SqlParameter("@SOURCEVIEWCOLUMNID",    model.SOURCEVIEWCOLUMNID ?? -1),
                new SqlParameter("@DISPLAYNAME",           model.DISPLAYNAME),
                new SqlParameter("@COLUMNTYPE",            model.COLUMNTYPE),
                new SqlParameter("@COLUMNCOMMENT",         model.COLUMNCOMMENT ?? String.Empty),
                new SqlParameter("@FORMULAFIELDID",        model.FORMULAFIELDID),
                new SqlParameter("@HIDDEN",                model.HIDDEN),
                new SqlParameter("@SEQ",                   model.SEQ),
                new SqlParameter("@EXCEL_COLWIDTH",        model.EXCEL_COLWIDTH),
                new SqlParameter("@FONT_SIZE",             model.FONT_SIZE),
                new SqlParameter("@FONT_BOLD",             model.FONT_BOLD),
                new SqlParameter("@FONT_ITALIC",           model.FONT_ITALIC),
                new SqlParameter("@HORIZONTAL_TEXT_ALIGN", model.HORIZONTAL_TEXT_ALIGN),
                new SqlParameter("@CELL_FORMAT",           model.CELL_FORMAT),
                new SqlParameter("@BACKGROUND_COLOR",      model.BACKGROUND_COLOR),
                new SqlParameter("@FONT_COLOR",            model.FONT_COLOR),
                new SqlParameter("@IS_NUMERIC",            model.IS_NUMERIC),
                new SqlParameter("@IS_ASCENDING",          model.IS_ASCENDING),
                new SqlParameter("@ID",                    model.ID),
            };

            int rows = DbHelperSQL.ExecuteSql(UserID, strSql.ToString(), parameters);

            if (rows > 0)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
コード例 #6
0
        protected void Page_Init(object sender, EventArgs e)
        {
            this.lblJavascript.Text = String.Empty;
            if (Session[rpexcel.strSessionKeyMyReport] != null)
            {
                myReport = (CUSTOMRP.Model.REPORT)Session[rpexcel.strSessionKeyMyReport];
            }

            if (myReport == null)
            {
                string querystring = Request.UrlReferrer.Query;
                if (!String.IsNullOrEmpty(querystring))
                {
                    string[] queries = querystring.Substring(1).Split('&');
                    foreach (string query in queries)
                    {
                        if (query.StartsWith("id"))
                        {
                            int id = Int32.Parse(query.Split('=')[1]);
                            myReport = WebHelper.bllReport.GetModel(me.ID, id);

                            if (myReport == null)
                            {
                                this.lblJavascript.Text = String.Format("<script type=\"text/javascript\">alert{\"{0}\"};window.close();</script>", AppNum.ErrorMsg.parameter_error);
                                HttpContext.Current.ApplicationInstance.CompleteRequest();
                                return;
                            }

                            Session[rpexcel.strSessionKeyMyReport] = myReport;
                        }
                    }
                }
            }

            if (Session[rpexcel.strSessionKeyColumnInfo] != null)
            {
                columninfos = (List <CUSTOMRP.Model.ColumnInfo>)Session[rpexcel.strSessionKeyColumnInfo];
            }

            if (Session[rpexcel.strSessionKeyReportParameterContainer] != null)
            {
                container = (ReportParameterContainer)Session[rpexcel.strSessionKeyReportParameterContainer];
                //v1.0.0 - Cheong - 2015/07/13 - Patch SEQ
                if (myReport != null)
                {
                    foreach (CUSTOMRP.Model.REPORTCOLUMN rc in myReport.ReportColumns)
                    {
                        rc.SEQ = -1;
                    }
                    CUSTOMRP.Model.REPORTCOLUMN l_ReportColumn = null;
                    int contentSEQ = 1;
                    foreach (Fields f in container.contentColumn)
                    {
                        l_ReportColumn = myReport.ReportColumns.Where(x => x.COLUMNFUNC == 1 && x.DisplayName == f.DisplayName).FirstOrDefault();
                        if (l_ReportColumn != null)
                        {
                            l_ReportColumn.SEQ = contentSEQ;
                            contentSEQ++;
                        }
                    }
                    //v1.0.0 - Cheong - 2016/03/23 - Preserve order on criteria and group columns
                    int criteriaSEQ = 1;
                    foreach (Fields f in container.criteriaColumn)
                    {
                        l_ReportColumn = myReport.ReportColumns.Where(x => x.COLUMNFUNC == 2 && x.DisplayName == f.DisplayName).FirstOrDefault();
                        if (l_ReportColumn != null)
                        {
                            l_ReportColumn.SEQ = criteriaSEQ;
                            criteriaSEQ++;
                        }
                    }
                    int sortonSEQ = 1;
                    foreach (Fields f in container.sortonColumn)
                    {
                        l_ReportColumn = myReport.ReportColumns.Where(x => x.COLUMNFUNC == 3 && x.DisplayName == f.DisplayName).FirstOrDefault();
                        if (l_ReportColumn != null)
                        {
                            l_ReportColumn.SEQ = sortonSEQ;
                            sortonSEQ++;
                        }
                    }
                    //v1.0.0 - Cheong - 2016/03/23 - Preserve order on criteria and group columns
                    int groupSEQ = 1;
                    foreach (Fields f in container.groupColumn)
                    {
                        l_ReportColumn = myReport.ReportColumns.Where(x => x.COLUMNFUNC == 6 && x.DisplayName == f.DisplayName).FirstOrDefault();
                        if (l_ReportColumn != null)
                        {
                            l_ReportColumn.SEQ = groupSEQ;
                            groupSEQ++;
                        }
                    }
                    myReport.ReportColumns.OrderBy(x => x.COLUMNFUNC).ThenBy(x => x.SEQ);
                }
            }
            else if (!ReportParameterContainer.LoadReport(myReport.ID, me, out container, out columninfos)) // try load default from table
            {
                this.lblJavascript.Text = String.Format("<script type=\"text/javascript\">alert{\"{0}\"};window.close();</script>", AppNum.ErrorMsg.parameter_error);
                HttpContext.Current.ApplicationInstance.CompleteRequest();
                return;
            }
        }
コード例 #7
0
        protected void btnSave_Click(object sender, EventArgs e)
        {
            string containername = this.btnSave.UniqueID.Replace(this.btnSave.ID, "");

            #region update setting to myReport

            if (!String.IsNullOrWhiteSpace(Request.Params[this.ddl_print_orientation.UniqueID]))
            {
                myReport.PRINT_ORIENTATION = Convert.ToInt32(Request.Params[this.ddl_print_orientation.UniqueID]);
            }
            if (!String.IsNullOrWhiteSpace(Request.Params[this.txt_print_fittopage.UniqueID]))
            {
                myReport.PRINT_FITTOPAGE = Convert.ToInt16(Request.Params[this.txt_print_fittopage.UniqueID]);
            }
            myReport.REPORT_HEADER  = ProcessMultilineText(Request.Params[this.txtReportHeader.UniqueID]);
            myReport.REPORT_FOOTER  = ProcessMultilineText(Request.Params[this.txtReportFooter.UniqueID]);
            myReport.SUBCOUNT_LABEL = Request.Params[this.txtSubCntLbl.UniqueID];
            myReport.FONT_FAMILY    = Request.Params[this.txtFontFamily.UniqueID];
            myReport.PDF_GRID_LINES = Request.Params.AllKeys.Contains(this.chkPdfGridLines.UniqueID) ? (Request.Params[this.chkPdfGridLines.UniqueID].Equals("on") ? true : false) : false;

            CUSTOMRP.Model.REPORTCOLUMN[] contents = myReport.ReportColumns.Where(x => x.ColumnFunc == CUSTOMRP.Model.REPORTCOLUMN.ColumnFuncs.Content).ToArray();
            string target;
            var    regexColorCode = new System.Text.RegularExpressions.Regex("^#[a-fA-F0-9]{6}$");
            for (int i = 0; i < contents.Length; i++)
            {
                if (!String.IsNullOrWhiteSpace(Request.Params[String.Format("{0}hid_colname_{1}", containername, i)]))
                {
                    target = Request.Params[String.Format("{0}hid_colname_{1}", containername, i)].Trim();
                    int target_coltype;
                    if (!Int32.TryParse(Request.Params[String.Format("{0}hid_coltype_{1}", containername, i)].Trim(), out target_coltype))
                    {
                        target_coltype = 1;
                    }
                    CUSTOMRP.Model.REPORTCOLUMN content = myReport.ReportColumns.Where(x => (x.ColumnFunc == CUSTOMRP.Model.REPORTCOLUMN.ColumnFuncs.Content) &&
                                                                                       ((target_coltype == 1 ? x.COLUMNNAME : x.DISPLAYNAME) == target)).FirstOrDefault();
                    if (content != null)
                    {
                        if (!String.IsNullOrWhiteSpace(Request.Params[String.Format("{0}txt_displayname_{1}", containername, i)]))
                        {
                            content.DISPLAYNAME = Request.Params[String.Format("{0}txt_displayname_{1}", containername, i)].Trim();
                        }

                        //// v1.8.8 Alex 2018.10.11 - Add Sort Order - Begin
                        //string isAscendingStr = Request.Params[String.Format("{0}select_sortorder_{1}", containername, i)];
                        //content.IS_ASCENDING = Convert.ToBoolean(int.Parse(isAscendingStr));
                        //// v1.8.8 Alex 2018.10.11 - Add Sort Order - End

                        //// v1.8.8 Alex 2018.10.12 - Add Sort Sequence - Begin
                        //if (!String.IsNullOrWhiteSpace(Request.Params[String.Format("{0}txt_sortsequence_{1}", containername, i)]))
                        //{
                        //    try
                        //    {
                        //        content.SORT_SEQUENCE = int.Parse(Request.Params[String.Format("{0}txt_sortsequence_{1}", containername, i)]);
                        //    }
                        //    catch
                        //    {
                        //        this.lblJavascript.Text = String.Format("<script type=\"text/javascript\">alert('{0}');</script>", String.Format("Excel sort sequence must be an integer.", 255 - NPOIHelper.TrailingBlank));
                        //        return;
                        //    }
                        //}
                        //else
                        //{
                        //    this.lblJavascript.Text = String.Format("<script type=\"text/javascript\">alert('{0}');</script>", String.Format("Excel sort sequence cannot be empty.", 255 - NPOIHelper.TrailingBlank));
                        //    return;
                        //}
                        //// v1.8.8 Alex 2018.10.12 - Add Sort Sequence - End


                        if (!String.IsNullOrWhiteSpace(Request.Params[String.Format("{0}txt_width_{1}", containername, i)]))
                        {
                            if ("auto".Equals((Request.Params[String.Format("{0}txt_width_{1}", containername, i)] ?? String.Empty).ToLower()))
                            {
                                content.EXCEL_COLWIDTH = -1;
                            }
                            else
                            {
                                try
                                {
                                    content.EXCEL_COLWIDTH = Decimal.Parse(Request.Params[String.Format("{0}txt_width_{1}", containername, i)]);
                                }
                                catch
                                {
                                    this.lblJavascript.Text = String.Format("<script type=\"text/javascript\">alert('{0}');</script>", String.Format("Excel column width must be less than or equal {0} characters.", 255 - NPOIHelper.TrailingBlank));
                                    return;
                                }
                            }
                        }
                        string backgroundColorStr = Request.Params[String.Format("{0}txt_backgroundColor_{1}", containername, i)];
                        if (!String.IsNullOrEmpty(backgroundColorStr))
                        {
                            if (regexColorCode.IsMatch(backgroundColorStr.Trim()))
                            {
                                content.BACKGROUND_COLOR = backgroundColorStr;
                            }
                            else
                            {
                                this.lblJavascript.Text = String.Format("<script type=\"text/javascript\">alert('{0}');</script>", "Invalid color code '" + backgroundColorStr + "'.");
                                return;
                            }
                        }
                        else
                        {
                            content.BACKGROUND_COLOR = "";
                        };
                        string fontColorStr = Request.Params[String.Format("{0}txt_fontColor_{1}", containername, i)];
                        if (!String.IsNullOrEmpty(fontColorStr))
                        {
                            if (regexColorCode.IsMatch(fontColorStr.Trim()))
                            {
                                content.FONT_COLOR = fontColorStr;
                            }
                            else
                            {
                                this.lblJavascript.Text = String.Format("<script type=\"text/javascript\">alert('{0}');</script>", "Invalid color code '" + fontColorStr + "'.");
                                return;
                            }
                        }
                        else
                        {
                            content.FONT_COLOR = "";
                        };
                        string fontSizeStr = Request.Params[String.Format("{0}txt_fontSize_{1}", containername, i)];
                        if (!String.IsNullOrEmpty(fontSizeStr))
                        {
                            try
                            {
                                content.FONT_SIZE = int.Parse(fontSizeStr);
                            }
                            catch
                            {
                                this.lblJavascript.Text = String.Format("<script type=\"text/javascript\">alert('{0}');</script>", "Invalid font size '" + fontSizeStr + "'.");
                                return;
                            }
                        }
                        else
                        {
                            content.FONT_SIZE = null;
                        };

                        string fontBoldStr = Request.Params[String.Format("{0}chk_fontBold_{1}", containername, i)];
                        if (!String.IsNullOrEmpty(fontBoldStr))
                        {
                            content.FONT_BOLD = true;
                        }
                        else
                        {
                            content.FONT_BOLD = false;
                        };

                        string fontItalicStr = Request.Params[String.Format("{0}chk_fontItalic_{1}", containername, i)];
                        if (!String.IsNullOrEmpty(fontItalicStr))
                        {
                            content.FONT_ITALIC = true;
                        }
                        else
                        {
                            content.FONT_ITALIC = false;
                        };

                        string horizontalTextAlignStr = Request.Params[String.Format("{0}select_horizontalTextAlign_{1}", containername, i)];
                        content.HORIZONTAL_TEXT_ALIGN = int.Parse(horizontalTextAlignStr);

                        string cellFormatStr = Request.Params[String.Format("{0}txt_cellFormat_{1}", containername, i)];
                        content.CELL_FORMAT = cellFormatStr;
                    }
                }
            }

            #endregion update setting to myReport

            // v1.8.8 Alex 2018.10.22 - Group Indent Column Width - Begin
            for (int i = 0; i < myReport.ReportColumns.Where(x => x.ColumnFunc == CUSTOMRP.Model.REPORTCOLUMN.ColumnFuncs.Group).Count(); i++)
            {
                if (!String.IsNullOrWhiteSpace(Request.Params[String.Format("{0}hid_colname_grp_{1}", containername, i)]))
                {
                    target = Request.Params[String.Format("{0}hid_colname_grp_{1}", containername, i)].Substring(8);
                    int target_coltype;
                    if (!Int32.TryParse(Request.Params[String.Format("{0}hid_coltype_grp_{1}", containername, i)].Trim(), out target_coltype))
                    {
                        target_coltype = 1;
                    }
                    CUSTOMRP.Model.REPORTCOLUMN content_group = myReport.ReportColumns.Where(x => (x.ColumnFunc == CUSTOMRP.Model.REPORTCOLUMN.ColumnFuncs.Group) &&
                                                                                             ((target_coltype == 1 ? x.COLUMNNAME : x.DISPLAYNAME) == target)).FirstOrDefault();



                    if (!String.IsNullOrWhiteSpace(Request.Params[String.Format("{0}txt_width_grp_{1}", containername, i)]))
                    {
                        if ("auto".Equals((Request.Params[String.Format("{0}txt_width_grp_{1}", containername, i)] ?? String.Empty).ToLower()))
                        {
                            content_group.EXCEL_COLWIDTH = -1;
                        }
                        else
                        {
                            try
                            {
                                content_group.EXCEL_COLWIDTH = Decimal.Parse(Request.Params[String.Format("{0}txt_width_grp_{1}", containername, i)]);
                            }
                            catch
                            {
                                this.lblJavascript.Text = String.Format("<script type=\"text/javascript\">alert('{0}');</script>", String.Format("Excel column width must be less than or equal {0} characters.", 255 - NPOIHelper.TrailingBlank));
                                return;
                            }
                        }
                    }
                }
            }
            // v1.8.8 Alex 2018.10.22 - Group Indent Column Width - End

            #region Update container content for displayname

            for (int i = 0; i < container.contentColumn.Length; i++)
            {
                if (!String.IsNullOrWhiteSpace(Request.Params[String.Format("{0}hid_colname_{1}", containername, i)]))
                {
                    target = Request.Params[String.Format("{0}hid_colname_{1}", containername, i)].Trim();
                    int target_coltype;
                    if (!Int32.TryParse(Request.Params[String.Format("{0}hid_coltype_{1}", containername, i)].Trim(), out target_coltype))
                    {
                        target_coltype = 1;
                    }
                    Fields content = container.contentColumn.Where(x => ((target_coltype == 1 ? x.ColumnName : x.DisplayName) == target)).FirstOrDefault();
                    if (content != null)
                    {
                        if (!String.IsNullOrWhiteSpace(Request.Params[String.Format("{0}txt_displayname_{1}", containername, i)]))
                        {
                            content.DisplayName = Request.Params[String.Format("{0}txt_displayname_{1}", containername, i)].Trim();
                        }
                    }
                }
            }

            #endregion

            Session[rpexcel.strSessionKeyReportParameterContainer] = container;
            Session[rpexcel.strSessionKeyMyReport] = myReport;
            this.lblJavascript.Text = "<script type=\"text/javascript\">closeMe();</script>";
        }