/// <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); }
/// <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)); } }
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); }
/// <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); } }
/// <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); }
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); }
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; } }
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"); }
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>(); } } }