Example #1
0
        /// <summary>
        /// 得到一个对象实体
        /// </summary>
        public CUSTOMRP.Model.REPORT GetModel(int UserID, int ID)
        {
            CUSTOMRP.Model.REPORT result = null;
            StringBuilder         strSql = new StringBuilder();

            strSql.Append("select  top 1 ID,DATABASEID,SVID,REPORTNAME,AUDODATE,CATEGORY,TYPE,REPORTGROUPLIST,RPTITLE,ADDUSER,DEFAULTFORMAT,EXTENDFIELD,PRINT_ORIENTATION,PRINT_FITTOPAGE,REPORT_HEADER,REPORT_FOOTER,SUBCOUNT_LABEL,PDF_GRID_LINES,FONT_FAMILY from REPORT ");
            strSql.Append(" where ID=@ID");
            SqlParameter[] parameters =
            {
                new SqlParameter("@ID", SqlDbType.Int, 4)
            };
            parameters[0].Value = ID;

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

            if (ds.Tables[0].Rows.Count > 0)
            {
                result = DataRowToModel(ds.Tables[0].Rows[0]);

                REPORTCOLUMN bllRptCol = new REPORTCOLUMN();
                result.ReportColumns = bllRptCol.GetModelListForReport(UserID, ID);

                WORDFILE dalWF = new DAL.WORDFILE();
                result.WordFile = dalWF.GetModelByReportID(UserID, ID);
            }
            return(result);
        }
Example #2
0
        /// <summary>
        /// 增加一条数据
        /// </summary>
        public int Add(CUSTOMRP.Model.REPORT model)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("insert into REPORT(");
            strSql.Append("DATABASEID,SVID,REPORTNAME,AUDODATE,CATEGORY,TYPE,REPORTGROUPLIST,RPTITLE,ADDUSER,DEFAULTFORMAT,EXTENDFIELD,PRINT_ORIENTATION,PRINT_FITTOPAGE,REPORT_HEADER,REPORT_FOOTER,SUBCOUNT_LABEL,PDF_GRID_LINES,FONT_FAMILY)");
            strSql.Append(" values (");
            strSql.Append("@DATABASEID,@SVID,@REPORTNAME,@AUDODATE,@CATEGORY,@TYPE,@REPORTGROUPLIST,@RPTITLE,@ADDUSER,@DEFAULTFORMAT,@EXTENDFIELD,@PRINT_ORIENTATION,@PRINT_FITTOPAGE,@REPORT_HEADER,@REPORT_FOOTER,@SUBCOUNT_LABEL,@PDF_GRID_LINES,@FONT_FAMILY)");
            strSql.Append(";select @@IDENTITY");
            SqlParameter[] parameters =
            {
                new SqlParameter("@DATABASEID",        SqlDbType.Int,          4),
                new SqlParameter("@SVID",              SqlDbType.Int,          4),
                new SqlParameter("@REPORTNAME",        SqlDbType.NVarChar,    50),
                new SqlParameter("@AUDODATE",          SqlDbType.DateTime),
                new SqlParameter("@CATEGORY",          SqlDbType.Int,          4),
                new SqlParameter("@TYPE",              SqlDbType.Int,          4),
                new SqlParameter("@REPORTGROUPLIST",   SqlDbType.Int,          4),
                new SqlParameter("@RPTITLE",           SqlDbType.NVarChar,    50),
                new SqlParameter("@ADDUSER",           SqlDbType.Int,          4),
                new SqlParameter("@DEFAULTFORMAT",     SqlDbType.Int,          4),
                new SqlParameter("@EXTENDFIELD",       SqlDbType.NVarChar,  2000),
                new SqlParameter("@PRINT_ORIENTATION", SqlDbType.Int,          4),
                new SqlParameter("@PRINT_FITTOPAGE",   SqlDbType.SmallInt,     2),
                new SqlParameter("@REPORT_HEADER",     SqlDbType.NVarChar,   255),
                new SqlParameter("@REPORT_FOOTER",     SqlDbType.NVarChar,   255),
                new SqlParameter("@SUBCOUNT_LABEL",    SqlDbType.NVarChar,    15),
                new SqlParameter("@PDF_GRID_LINES",    SqlDbType.Bit),
                new SqlParameter("@FONT_FAMILY",       SqlDbType.NVarChar,   100),
            };
            parameters[0].Value  = model.DATABASEID;
            parameters[1].Value  = model.SVID;
            parameters[2].Value  = model.REPORTNAME;
            parameters[3].Value  = model.AUDODATE;
            parameters[4].Value  = model.CATEGORY;
            parameters[5].Value  = model.TYPE;
            parameters[6].Value  = model.REPORTGROUPLIST;
            parameters[7].Value  = model.RPTITLE;
            parameters[8].Value  = model.ADDUSER;
            parameters[9].Value  = model.DEFAULTFORMAT;
            parameters[10].Value = model.EXTENDFIELD;
            parameters[11].Value = model.PRINT_ORIENTATION;
            parameters[12].Value = model.PRINT_FITTOPAGE;
            parameters[13].Value = model.REPORT_HEADER;
            parameters[14].Value = model.REPORT_FOOTER;
            parameters[15].Value = model.SUBCOUNT_LABEL;
            parameters[16].Value = model.PDF_GRID_LINES;
            parameters[17].Value = model.FONT_FAMILY;

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

            if (obj == null)
            {
                return(0);
            }
            else
            {
                return(Convert.ToInt32(obj));
            }
        }
Example #3
0
        protected void PDF(int rpid)
        {
            CUSTOMRP.Model.REPORT myReport = WebHelper.bllReport.GetModel(me.ID, rpid);

            string rpName  = myReport.REPORTNAME;
            string rpTitle = myReport.RPTITLE;

            List <string> comments = new List <string>();
            List <string> avgs     = new List <string>();
            List <string> sums     = new List <string>();
            List <string> groups   = new List <string>();
            List <string> subtotal = new List <string>();
            List <string> subavg   = new List <string>();
            List <string> subcount = new List <string>();
            List <string> count    = new List <string>();

            //v1.2.0 - Cheong - 2016/07/04 - Add option to hide duplicate items
            //DataTable dt = CUSTOMRP.BLL.AppHelper.getDataForReport(ref comments, ref avgs, ref sums, ref groups, ref subtotal, ref subavg, ref subcount, ref count, me, rpid, true);
            DataTable dt = CUSTOMRP.BLL.AppHelper.getDataForReport(me.ID, ref comments, ref avgs, ref sums, ref groups, ref subtotal, ref subavg, ref subcount, ref count, me,
                                                                   rpid, myReport.fHideDuplicate);

            string[] rptHeader = !String.IsNullOrEmpty(myReport.REPORT_HEADER) ? myReport.REPORT_HEADER.Split('\n') : null;
            string[] rptFooter = !String.IsNullOrEmpty(myReport.REPORT_FOOTER) ? myReport.REPORT_FOOTER.Split('\n') : null;

            //v1.0.0 - Cheong - 2016/03/17 - Add formatting to criteria
            comments = comments.Select(x => x.Remove(0, 6).TrimEnd(')')).ToList();

            string fontPath = PathHelper.getFontFolderName() + "simsun.ttc,1";

            bool showChangeOnly = myReport.EXTENDFIELD.Split(',')[CUSTOMRP.Model.REPORT.EXTENDFIELDs.ReportType] == CUSTOMRP.Model.REPORT.ExtReportType.ChangeOnly;
            bool hideHeaders    = myReport.EXTENDFIELD.Split(',')[CUSTOMRP.Model.REPORT.EXTENDFIELDs.ReportType] == CUSTOMRP.Model.REPORT.ExtReportType.DataExport;
            bool hideCriteria   = myReport.EXTENDFIELD.Split(',')[CUSTOMRP.Model.REPORT.EXTENDFIELDs.HideCriteria] == "1";

            Common.MyPdf.exp_Pdf(showChangeOnly, hideHeaders, hideCriteria,
                                 myReport.ReportColumns.Where(x => x.ColumnFunc == CUSTOMRP.Model.REPORTCOLUMN.ColumnFuncs.Content).ToDictionary(x => x.ColumnType == CUSTOMRP.Model.REPORTCOLUMN.ColumnTypes.Normal ? x.COLUMNNAME : x.DisplayName, y => y.DisplayName),
                                 subtotal, subavg, subcount, count, groups, avgs, sums, AppNum.companyName, rptHeader ?? comments.ToArray(), dt, rpTitle,
                                 fontPath, 14, 1, iTextSharp.text.BaseColor.BLACK,
                                 fontPath, 11, 1, iTextSharp.text.BaseColor.BLACK, //列头字体、大小、样式、颜色
                                 PathHelper.getTempFolderName(), rpName,
                                 fontPath, 11, 1, iTextSharp.text.BaseColor.BLACK, //正文字体、大小、样式、颜色
                                 rptFooter);
        }
Example #4
0
        /// <summary>
        /// 更新一条数据
        /// </summary>
        public bool Update(CUSTOMRP.Model.REPORT model)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("update REPORT set ");
            strSql.Append("DATABASEID=@DATABASEID,");
            strSql.Append("SVID=@SVID,");
            strSql.Append("REPORTNAME=@REPORTNAME,");
            strSql.Append("AUDODATE=@AUDODATE,");
            strSql.Append("CATEGORY=@CATEGORY,");
            strSql.Append("TYPE=@TYPE,");
            strSql.Append("REPORTGROUPLIST=@REPORTGROUPLIST,");
            strSql.Append("RPTITLE=@RPTITLE,");
            strSql.Append("ADDUSER=@ADDUSER,");
            strSql.Append("DEFAULTFORMAT=@DEFAULTFORMAT,");
            strSql.Append("EXTENDFIELD=@EXTENDFIELD,");
            strSql.Append("PRINT_ORIENTATION=@PRINT_ORIENTATION,");
            strSql.Append("PRINT_FITTOPAGE=@PRINT_FITTOPAGE,");
            strSql.Append("REPORT_HEADER=@REPORT_HEADER,");
            strSql.Append("REPORT_FOOTER=@REPORT_FOOTER,");
            strSql.Append("SUBCOUNT_LABEL=@SUBCOUNT_LABEL,");
            strSql.Append("PDF_GRID_LINES=@PDF_GRID_LINES,");
            strSql.Append("FONT_FAMILY=@FONT_FAMILY");
            strSql.Append(" where ID=@ID");
            SqlParameter[] parameters =
            {
                new SqlParameter("@DATABASEID",        SqlDbType.Int,          4),
                new SqlParameter("@SVID",              SqlDbType.Int,          4),
                new SqlParameter("@REPORTNAME",        SqlDbType.NVarChar,    50),
                new SqlParameter("@AUDODATE",          SqlDbType.DateTime),
                new SqlParameter("@CATEGORY",          SqlDbType.Int,          4),
                new SqlParameter("@TYPE",              SqlDbType.Int,          4),
                new SqlParameter("@REPORTGROUPLIST",   SqlDbType.Int,          4),
                new SqlParameter("@RPTITLE",           SqlDbType.NVarChar,    50),
                new SqlParameter("@ADDUSER",           SqlDbType.Int,          4),
                new SqlParameter("@DEFAULTFORMAT",     SqlDbType.Int,          4),
                new SqlParameter("@EXTENDFIELD",       SqlDbType.NVarChar,  2000),
                new SqlParameter("@PRINT_ORIENTATION", SqlDbType.Int,          4),
                new SqlParameter("@PRINT_FITTOPAGE",   SqlDbType.SmallInt,     2),
                new SqlParameter("@REPORT_HEADER",     SqlDbType.NVarChar,   255),
                new SqlParameter("@REPORT_FOOTER",     SqlDbType.NVarChar,   255),
                new SqlParameter("@SUBCOUNT_LABEL",    SqlDbType.NVarChar,    15),
                new SqlParameter("@PDF_GRID_LINES",    SqlDbType.Bit),
                new SqlParameter("@FONT_FAMILY",       SqlDbType.NVarChar,   100),
                new SqlParameter("@ID",                SqlDbType.Int, 4)
            };
            parameters[0].Value  = model.DATABASEID;
            parameters[1].Value  = model.SVID;
            parameters[2].Value  = model.REPORTNAME;
            parameters[3].Value  = model.AUDODATE;
            parameters[4].Value  = model.CATEGORY;
            parameters[5].Value  = model.TYPE;
            parameters[6].Value  = model.REPORTGROUPLIST;
            parameters[7].Value  = model.RPTITLE;
            parameters[8].Value  = model.ADDUSER;
            parameters[9].Value  = model.DEFAULTFORMAT;
            parameters[10].Value = model.EXTENDFIELD;
            parameters[11].Value = model.PRINT_ORIENTATION;
            parameters[12].Value = model.PRINT_FITTOPAGE;
            parameters[13].Value = model.REPORT_HEADER;
            parameters[14].Value = model.REPORT_FOOTER;
            parameters[15].Value = model.SUBCOUNT_LABEL;
            parameters[16].Value = model.PDF_GRID_LINES;
            parameters[17].Value = model.FONT_FAMILY;
            parameters[18].Value = model.ID;

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

            if (rows > 0)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
Example #5
0
 /// <summary>
 /// 得到一个对象实体
 /// </summary>
 public CUSTOMRP.Model.REPORT DataRowToModel(DataRow row)
 {
     CUSTOMRP.Model.REPORT model = new CUSTOMRP.Model.REPORT();
     if (row != null)
     {
         if (row["ID"] != null && row["ID"].ToString() != "")
         {
             model.ID = Int32.Parse(row["ID"].ToString());
         }
         if (row["DATABASEID"] != null && row["DATABASEID"].ToString() != "")
         {
             model.DATABASEID = Int32.Parse(row["DATABASEID"].ToString());
         }
         if (row["SVID"] != null && row["SVID"].ToString() != "")
         {
             model.SVID = Int32.Parse(row["SVID"].ToString());
         }
         if (row["REPORTNAME"] != null)
         {
             model.REPORTNAME = row["REPORTNAME"].ToString();
         }
         if (row["AUDODATE"] != null && row["AUDODATE"].ToString() != "")
         {
             model.AUDODATE = DateTime.Parse(row["AUDODATE"].ToString());
         }
         if (row["CATEGORY"] != null && row["CATEGORY"].ToString() != "")
         {
             model.CATEGORY = Int32.Parse(row["CATEGORY"].ToString());
         }
         if (row["TYPE"] != null && row["TYPE"].ToString() != "")
         {
             model.TYPE = Int32.Parse(row["TYPE"].ToString());
         }
         if (row["REPORTGROUPLIST"] != null && row["REPORTGROUPLIST"].ToString() != "")
         {
             model.REPORTGROUPLIST = Int32.Parse(row["REPORTGROUPLIST"].ToString());
         }
         if (row["RPTITLE"] != null)
         {
             model.RPTITLE = row["RPTITLE"].ToString();
         }
         if (row["ADDUSER"] != null && row["ADDUSER"].ToString() != "")
         {
             model.ADDUSER = Int32.Parse(row["ADDUSER"].ToString());
         }
         if (row["DEFAULTFORMAT"] != null && row["DEFAULTFORMAT"].ToString() != "")
         {
             model.DEFAULTFORMAT = Int32.Parse(row["DEFAULTFORMAT"].ToString());
         }
         if (row["EXTENDFIELD"] != null)
         {
             model.EXTENDFIELD = row["EXTENDFIELD"].ToString();
         }
         if (row["PRINT_ORIENTATION"] != null)
         {
             model.PRINT_ORIENTATION = Convert.ToInt32(row["PRINT_ORIENTATION"]);
         }
         if (row["PRINT_FITTOPAGE"] != null)
         {
             model.PRINT_FITTOPAGE = Convert.ToInt16(row["PRINT_FITTOPAGE"]);
         }
         if (row["REPORT_HEADER"] != null)
         {
             model.REPORT_HEADER = row["REPORT_HEADER"].ToString();
         }
         if (row["REPORT_FOOTER"] != null)
         {
             model.REPORT_FOOTER = row["REPORT_FOOTER"].ToString();
         }
         if (row["SUBCOUNT_LABEL"] != null)
         {
             model.SUBCOUNT_LABEL = row["SUBCOUNT_LABEL"].ToString();
         }
         if (row["PDF_GRID_LINES"] != null)
         {
             model.PDF_GRID_LINES = Convert.ToBoolean(row["PDF_GRID_LINES"]);
         }
         if (row["FONT_FAMILY"] != null)
         {
             model.FONT_FAMILY = row["FONT_FAMILY"].ToString();
         }
     }
     return(model);
 }
Example #6
0
        public bool Replace(CUSTOMRP.Model.REPORT model)
        {
            bool result = false;
            bool isNew  = false;

            CUSTOMRP.Model.REPORT original = null;
            if (model.ID == 0)
            {
                model.ID = Add(model);
                result   = model.ID != 0;
                isNew    = true;
            }
            else
            {
                original = GetModel(model.ADDUSER, model.ID);

                result = Update(model);
            }
            if (!result)
            {
                return(false);
            }                               // error occurred

            // prepare AuditLog object
            Model.AUDITLOG auditobj = model.GetAuditLogObject(original);
            auditobj.UserID     = model.ADDUSER;
            auditobj.CreateDate = DateTime.Now;

            #region Report Columns handling

            try
            {
                CUSTOMRP.DAL.REPORTCOLUMN dalRC = new REPORTCOLUMN();

                //v1.0.0 - Cheong - 2015/06/30 - delete removed columns
                if (!isNew)
                {
                    Model.REPORTCOLUMN[] dbRC = (from oldrc in dalRC.GetModelListForReport(model.ADDUSER, model.ID)
                                                 join newrc in model.ReportColumns on new { oldrc.COLUMNNAME, oldrc.COLUMNFUNC, oldrc.COLUMNTYPE } equals new { newrc.COLUMNNAME, newrc.COLUMNFUNC, newrc.COLUMNTYPE } into g
                                                 from gjoin in g.DefaultIfEmpty()
                                                 where gjoin == null
                                                 select oldrc).ToArray();

                    foreach (Model.REPORTCOLUMN rc in dbRC)
                    {
                        dalRC.Delete(model.ADDUSER, rc.ID);
                    }
                }

                //v1.0.0 - Cheong - 2016/03/23 - Preserve order on criteria and group columns
                int contentSEQ  = 1;
                int criteriaSEQ = 1;
                int sortonSEQ   = 1;
                int groupSEQ    = 1;
                foreach (CUSTOMRP.Model.REPORTCOLUMN rc in model.ReportColumns)
                {
                    rc.RPID = model.ID;
                    switch (rc.COLUMNFUNC)
                    {
                    case 1:
                    {
                        rc.SEQ = contentSEQ;
                        contentSEQ++;
                    }
                    break;

                    case 2:
                    {
                        rc.SEQ = criteriaSEQ;
                        criteriaSEQ++;
                    }
                    break;

                    case 3:
                    {
                        rc.SEQ = sortonSEQ;
                        sortonSEQ++;
                    }
                    break;

                    case 6:
                    {
                        rc.SEQ = groupSEQ;
                        groupSEQ++;
                    }
                    break;

                    default:
                    {
                        rc.SEQ = -1;
                    }
                    break;
                    }
                    //if (rc.COLUMNFUNC == 1)
                    //{
                    //    rc.SEQ = contentSEQ;
                    //    contentSEQ++;
                    //}
                    //else if (rc.COLUMNFUNC == 3)
                    //{
                    //    rc.SEQ = sortonSEQ;
                    //    sortonSEQ++;
                    //}
                    //else
                    //{
                    //    rc.SEQ = -1;
                    //}
                    result = dalRC.Replace(model.ADDUSER, rc);
                    if (!result)
                    {
                        return(false);
                    }
                }
            }
            catch
            {
                result = false;
            }

            #endregion Report Columns handling

            #region WordFile handling
            try
            {
                if (model.WordFile != null)
                {
                    DAL.WORDFILE   dalWF = new WORDFILE();
                    Model.WORDFILE wf    = dalWF.GetModelByReportID(model.ADDUSER, model.ID);
                    if (wf == null)
                    {
                        if (model.WordFile.RPID == 0)
                        {
                            model.WordFile.RPID = model.ID;
                        }
                        dalWF.AddFile(model.WordFile);
                    }
                    else
                    {
                        wf.Description  = model.WordFile.Description;
                        wf.WordFileName = model.WordFile.WordFileName;
                        wf.OrigFileName = model.WordFile.OrigFileName;
                        wf.ModifyUser   = model.WordFile.ModifyUser;
                        wf.ModifyDate   = model.WordFile.ModifyDate;
                        dalWF.UpdateFile(wf);
                    }
                }
            }
            catch
            {
                result = false;
            }

            #endregion WordFile handling

            auditobj.MessageType = Model.AUDITLOG.Severity.Audit;
            auditobj.ModuleName  = "DAL.REPORT.REPLACE";
            auditobj.Message     = String.Format(isNew ? AppNum.AuditMessage.ReportInsertSuccess : AppNum.AuditMessage.ReportUpdateSuccess, model.ID);

            AUDITLOG.Add(auditobj);

            return(result);
        }
Example #7
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                if (string.IsNullOrEmpty(Request.QueryString["rpid"]) == false)
                {
                    if (Session[rpexcel.strSessionKeyMyReport] != null)
                    {
                        myReport = (CUSTOMRP.Model.REPORT)Session[rpexcel.strSessionKeyMyReport];
                    }
                    else
                    {
                        int rpid = Int32.Parse(Request.QueryString["rpid"]);
                        myReport = WebHelper.bllReport.GetModel(me.ID, rpid);

                        if (myReport != null)
                        {
                            this.ltr.Text = myReport.REPORTNAME;
                            HtmlExport1(myReport.ID);
                        }
                        else
                        {
                            Common.JScript.AlertAndRedirect(AppNum.ErrorMsg.parameter_error, "rplist.aspx");
                            Response.End();
                        }
                    }
                }
                else if (string.IsNullOrEmpty(Request.QueryString["active"]) == false)
                {
                    if (Session[rpexcel.strSessionKeyMyReport] != null)
                    {
                        myReport = (CUSTOMRP.Model.REPORT)Session[rpexcel.strSessionKeyMyReport];
                    }

                    QueryReport.Controls.RptSavePage prepage = (QueryReport.Controls.RptSavePage)Context.Handler;
                    DataTable     rpdt    = prepage.rpdt;
                    List <string> rpci    = prepage.rpcr;
                    string        rptitle = prepage.container.ReportTitle;
                    this.ltr.Text = prepage.container.ReportName;
                    //string showType = prepage.container.fChangeValueOnly ? "1" : "0";
                    string ExtendedFields = prepage.container.ExtendedFields;

                    List <string> sums = prepage.container.sumColumn != null?prepage.container.sumColumn.Select(x => x.ColumnName).ToList() : new List <string>();

                    List <string> avgs = prepage.container.avgColumn != null?prepage.container.avgColumn.Select(x => x.ColumnName).ToList() : new List <string>();

                    List <string> groups = prepage.container.groupColumn != null?prepage.container.groupColumn.Select(x => x.ColumnName).ToList() : new List <string>();

                    List <string> subtotal = prepage.container.grouptotalColumn != null?prepage.container.grouptotalColumn.Select(x => x.ColumnName).ToList() : new List <string>();

                    List <string> subavg = prepage.container.groupavgColumn != null?prepage.container.groupavgColumn.Select(x => x.ColumnName).ToList() : new List <string>();

                    List <string> subcount = prepage.container.groupcountColumn != null?prepage.container.groupcountColumn.Select(x => x.ColumnName).ToList() : new List <string>();

                    List <string> count = prepage.container.rpcountColumn != null?prepage.container.rpcountColumn.Select(x => x.ColumnName).ToList() : new List <string>();

                    var           tmp           = myReport.ReportColumns.Where(x => x.ColumnFunc == CUSTOMRP.Model.REPORTCOLUMN.ColumnFuncs.SortOn);
                    List <string> sortonCols    = tmp.Select(x => x.ColumnType == CUSTOMRP.Model.REPORTCOLUMN.ColumnTypes.Normal ? x.COLUMNNAME : x.DisplayName).ToList();
                    List <bool>   isAscending   = tmp.Select(x => x.IS_ASCENDING).ToList();
                    List <int>    seq           = tmp.Select(x => x.SEQ).ToList();
                    string        subcountLabel = !String.IsNullOrEmpty(myReport.SUBCOUNT_LABEL) ? myReport.SUBCOUNT_LABEL : null;
                    bool          pdfGridLines  = myReport.PDF_GRID_LINES;

                    List <string> hideRows = myReport.ReportColumns
                                             .Where(x => x.ColumnFunc == CUSTOMRP.Model.REPORTCOLUMN.ColumnFuncs.Content &&
                                                    x.ColumnType == CUSTOMRP.Model.REPORTCOLUMN.ColumnTypes.Normal &&
                                                    x.EXCEL_COLWIDTH == 0m)
                                             .Select(x => x.COLUMNNAME).ToList();

                    HtmlExport2(ExtendedFields.Split(','),
                                //prepage.container.contentColumn.ToDictionary(x => x.ColumnName, y => y.DisplayName),
                                myReport.ReportColumns.Where(x => x.ColumnFunc == CUSTOMRP.Model.REPORTCOLUMN.ColumnFuncs.Content).ToDictionary(x => x.ColumnType == CUSTOMRP.Model.REPORTCOLUMN.ColumnTypes.Normal ? x.COLUMNNAME : x.DisplayName, y => y.DisplayName),
                                subtotal, subavg, subcount, count, rpdt, rpci, rptitle, sums, avgs, groups, subcountLabel, sortonCols, isAscending, seq, hideRows);
                }
            }
        }
        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;
            }
        }
Example #9
0
        protected void btnNext_Click(object sender, EventArgs e)
        {
            if (!this.ValidateParameters())
            {
                return;
            }

            CUSTOMRP.Model.REPORT            myReport    = null;
            List <CUSTOMRP.Model.ColumnInfo> columninfos = null;

            string path          = g_Config["WordTemplatePath"];
            string savedFileName = String.Empty;

            try
            {
                savedFileName = this.SaveTemplateFile();
            }
            catch
            {
                this.lblJavascript.Text = String.Format("<script type=\"text/javascript\">alert(\"{0}\");</script>", AppNum.ErrorMsg.uploadFailed);
                return;
            }

            string strReportName = this.txtReportName.Text.Trim();
            int    svID          = Convert.ToInt32(this.ddlQueryName.SelectedValue);

            #region Read CustomProps from file

            System.Collections.Specialized.NameValueCollection nvc = QueryReport.Code.MailMerge.ReadCustomPropsFromFile(path + savedFileName);
            if (String.IsNullOrWhiteSpace(strReportName))
            {
                strReportName = nvc["RptName"];
                if (strReportName != null)
                {
                    strReportName = strReportName.Trim();
                }
            }
            string strQueryName = nvc["QueryName"];
            if (!String.IsNullOrWhiteSpace(strQueryName))
            {
                CUSTOMRP.Model.SOURCEVIEW svFromFile = WebHelper.bllSOURCEVIEW.GetModelByQueryName(me.ID, strQueryName.Trim(), me.DatabaseID);
                svID = (svFromFile != null) ? svFromFile.ID : -1;
            }

            #endregion

            if (String.IsNullOrWhiteSpace(strReportName))
            {
                this.lblJavascript.Text = String.Format("<script type=\"text/javascript\">alert(\"{0}\");</script>",
                                                        String.Format(AppNum.ErrorMsg.fieldcannotbeempty, "Report Name"));
                return;
            }

            if (svID == -1)
            {
                this.lblJavascript.Text = String.Format("<script type=\"text/javascript\">alert(\"{0}\");</script>",
                                                        String.Format(AppNum.ErrorMsg.pleaseselectvalidvaluefrom, "Query Name"));
                return;
            }

            CUSTOMRP.Model.RPCATEGORY  rpcat = WebHelper.bllcategory.GetModelList(me.ID, "DATABASEID='" + me.DatabaseID + "'").FirstOrDefault();
            CUSTOMRP.Model.REPORTGROUP rpgrp = WebHelper.bllrpGroup.GetModelList(me.ID, "DATABASEID='" + me.DatabaseID + "'").FirstOrDefault();

            #region Save columninfos

            CUSTOMRP.Model.SOURCEVIEW sv = WebHelper.bllSOURCEVIEW.GetModel(me.ID, svID);
            List <CUSTOMRP.Model.SOURCEVIEWCOLUMN> svclist = WebHelper.bllSOURCEVIEWCOLUMN.GetModelsForSourceView(me.ID, sv.ID).OrderBy(x => x.DisplayName).ToList();
            string[] colnames = svclist.Select(x => x.DisplayName).ToArray();

            switch (sv.SourceType)
            {
            case CUSTOMRP.Model.SOURCEVIEW.SourceViewType.View:
            case CUSTOMRP.Model.SOURCEVIEW.SourceViewType.Table:
            {
                try
                {
                    columninfos = CUSTOMRP.BLL.AppHelper.GetColumnInfoForTblView(me.ID, me.DatabaseNAME, sv.TBLVIEWNAME);
                }
                catch (Exception ex)
                {
                    System.Diagnostics.Debug.WriteLine(ex.ToString());
                    columninfos             = new List <CUSTOMRP.Model.ColumnInfo>();
                    this.lblJavascript.Text = String.Format("<script type=\"text/javascript\">alert('Error in retrieving columns for [{0}]. Please check view defination.');</script>", sv.TBLVIEWNAME);
                }
                if (colnames == null)
                {
                    colnames = CUSTOMRP.BLL.AppHelper.GetColumnNamesForTblView(me.ID, me.DatabaseNAME, sv.TBLVIEWNAME);
                }
            }
            break;

            case CUSTOMRP.Model.SOURCEVIEW.SourceViewType.StoredProc:
            {
                try
                {
                    columninfos = CUSTOMRP.BLL.AppHelper.GetColumnInfoForStoredProc(me.ID, me.DatabaseNAME, sv.ID);
                }
                catch (Exception ex)
                {
                    System.Diagnostics.Debug.WriteLine(ex.ToString());
                    columninfos             = new List <CUSTOMRP.Model.ColumnInfo>();
                    this.lblJavascript.Text = String.Format("<script type=\"text/javascript\">alert('Error in retrieving columns for [{0}]. Please check stored proc defination.');</script>", sv.TBLVIEWNAME);
                }
                if (colnames == null)
                {
                    colnames = CUSTOMRP.BLL.AppHelper.GetColumnNamesForStoredProc(me.ID, me.DatabaseNAME, sv.TBLVIEWNAME);
                }
            }
            break;
            }
            // Filter result to only columns that is requested
            columninfos = columninfos.Where(x => colnames.Contains(x.ColName)).ToList();

            #endregion Save columninfos

            #region myReport
            DateTime currTime = DateTime.Now;
            int      UserID   = me.ID;

            myReport                 = new CUSTOMRP.Model.REPORT();
            myReport.REPORTNAME      = strReportName;
            myReport.RPTITLE         = myReport.REPORTNAME;
            myReport.DATABASEID      = me.DatabaseID;
            myReport.SVID            = svID;
            myReport.CATEGORY        = rpcat != null ? rpcat.ID : -1;
            myReport.REPORTGROUPLIST = rpgrp != null ? rpgrp.ID : -1;
            myReport.DEFAULTFORMAT   = 0;
            myReport.ADDUSER         = UserID;
            myReport.AUDODATE        = currTime;
            myReport.ADDUSER         = UserID;

            myReport.ReportColumns = new List <CUSTOMRP.Model.REPORTCOLUMN>();
            foreach (CUSTOMRP.Model.ColumnInfo c in columninfos)
            {
                CUSTOMRP.Model.SOURCEVIEWCOLUMN svc = svclist.Where(x => x.COLUMNNAME == c.ColName).First();
                myReport.ReportColumns.Add(new CUSTOMRP.Model.REPORTCOLUMN()
                {
                    COLUMNNAME         = c.ColName,
                    COLUMNFUNC         = (int)CUSTOMRP.Model.REPORTCOLUMN.ColumnFuncs.Content,
                    CRITERIA1          = String.Empty,
                    CRITERIA2          = String.Empty,
                    CRITERIA3          = String.Empty,
                    CRITERIA4          = String.Empty,
                    AUDODATE           = currTime,
                    SOURCEVIEWCOLUMNID = svc.ID,
                    DISPLAYNAME        = svc.DISPLAYNAME,
                    COLUMNTYPE         = (int)CUSTOMRP.Model.REPORTCOLUMN.ColumnTypes.Normal,
                    COLUMNCOMMENT      = String.Empty,
                    HIDDEN             = false,
                });
            }

            myReport.WordFile              = new CUSTOMRP.Model.WORDFILE();
            myReport.WordFile.Description  = String.Format("Word file for {0}", myReport.RPTITLE);
            myReport.WordFile.OrigFileName = Path.GetFileName(fUploadTemplate.PostedFile.FileName).Replace(' ', '_');
            myReport.WordFile.WordFileName = savedFileName;
            myReport.WordFile.CreateDate   = currTime;
            myReport.WordFile.CreateUser   = UserID;
            myReport.WordFile.ModifyDate   = currTime;
            myReport.WordFile.ModifyUser   = UserID;

            #endregion myReport

            Session[rpexcel.strSessionKeyMyReport]   = myReport;
            Session[rpexcel.strSessionKeyColumnInfo] = columninfos;

            Response.Redirect("rpworddetail.aspx");
        }
Example #10
0
        private bool p_fSuppressRender = false;     // Whether to render page contents

        #region Event Handlers

        protected void Page_Init(object sender, EventArgs e)
        {
            if (Session[rpexcel.strSessionKeyColumnInfo] != null)
            {
                columninfos = (List <CUSTOMRP.Model.ColumnInfo>)Session[rpexcel.strSessionKeyColumnInfo];
            }

            if (Session[rpexcel.strSessionKeyFormulaFields] != null)
            {
                formulaFields = (List <CUSTOMRP.Model.REPORTCOLUMN>)Session[rpexcel.strSessionKeyFormulaFields];
            }
            else
            {
                formulaFields = new List <CUSTOMRP.Model.REPORTCOLUMN>();
                Session[rpexcel.strSessionKeyFormulaFields] = formulaFields;
            }

            if ((myReport == null) && (Session[rpexcel.strSessionKeyMyReport] != null))
            {
                myReport = (CUSTOMRP.Model.REPORT)Session[rpexcel.strSessionKeyMyReport];
            }

            if (!this.IsPostBack)
            {
                if (!String.IsNullOrEmpty(Request.QueryString["id"]))
                {
                    int id = Int32.Parse(Request.QueryString["id"]);
                    myReport = WebHelper.bllReport.GetModel(me.ID, id);

                    this.btnDelete.Visible = true;
                    if (myReport == null)
                    {
                        Common.JScript.AlertAndRedirect(AppNum.ErrorMsg.parameter_error, "rplist.aspx");
                        Response.End();
                    }
                    else
                    {
                        Session[rpexcel.strSessionKeyMyReport] = myReport;
                        CUSTOMRP.BLL.SOURCEVIEW svBLL = new CUSTOMRP.BLL.SOURCEVIEW();
                        mySV = svBLL.GetModel(me.ID, myReport.SVID);
                    }
                }
                else
                {
                    // creating new report
                    myReport    = (CUSTOMRP.Model.REPORT)Session[rpexcel.strSessionKeyMyReport];
                    columninfos = (List <CUSTOMRP.Model.ColumnInfo>)Session[rpexcel.strSessionKeyColumnInfo];
                }
            }
            else
            {
                // v1.2.0 Kim 2016.11.22 do this both IsPostBack or not
                //if ((myReport == null) && (Session[rpexcel.strSessionKeyMyReport] != null))
                //{
                //    myReport = (CUSTOMRP.Model.REPORT)Session[rpexcel.strSessionKeyMyReport];
                //}

                if (!String.IsNullOrEmpty(Request.QueryString["id"]))
                {
                    int id = Int32.Parse(Request.QueryString["id"]);

                    if (Session[rpexcel.strSessionKeyReportParameterContainer] != null)
                    {
                        ReportParameterContainer container        = (ReportParameterContainer)Session[rpexcel.strSessionKeyReportParameterContainer];
                        CUSTOMRP.Model.REPORT    rptFromContainer = container.GetReportModel(me, columninfos, id);

                        //v1.7.0 - Cheong - 2016/07/04 - Since we also need to receive setting data from rpword.aspx, instead of directly assigning
                        // report object decoded, we try to merge settings here instead.
                        #region Merge myReport data

                        if (myReport == null)
                        {
                            myReport = rptFromContainer;
                        }
                        else
                        {
                            myReport.REPORTNAME      = rptFromContainer.REPORTNAME;
                            myReport.CATEGORY        = rptFromContainer.CATEGORY;
                            myReport.REPORTGROUPLIST = rptFromContainer.REPORTGROUPLIST;
                            myReport.RPTITLE         = rptFromContainer.RPTITLE;
                            myReport.EXTENDFIELD     = rptFromContainer.EXTENDFIELD;
                        }

                        #endregion Merge myReport data
                    }
                }
            }

            if (!IsPostBack)
            {
                if (myReport != null)
                {
                    selectedColumns = myReport.ReportColumns;
                }
                else
                {
                    selectedColumns = new List <CUSTOMRP.Model.REPORTCOLUMN>();
                }
            }
        }