/// <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 bool Delete(int UserID, int ID) { Model.REPORT original = GetModel(UserID, ID); #region Clear columns from ReportColumn table first REPORTCOLUMN dalRC = new REPORTCOLUMN(); List <Model.REPORTCOLUMN> rclist = dalRC.GetModelListForReport(UserID, ID); foreach (Model.REPORTCOLUMN rc in rclist) { dalRC.Delete(UserID, rc.ID); } #endregion StringBuilder strSql = new StringBuilder(); strSql.Append("delete from REPORT "); strSql.Append(" where ID=@ID"); SqlParameter[] parameters = { new SqlParameter("@ID", SqlDbType.Int, 4) }; parameters[0].Value = ID; int rows = DbHelperSQL.ExecuteSql(UserID, strSql.ToString(), parameters); if (rows > 0) { Model.AUDITLOG auditobj = original.GetAuditLogObject(null); auditobj.UserID = UserID; auditobj.CreateDate = DateTime.Now; auditobj.MessageType = Model.AUDITLOG.Severity.Audit; auditobj.ModuleName = "DAL.REPORT.Delete"; auditobj.Message = String.Format(AppNum.AuditMessage.ReportDeleteSuccess, ID); AUDITLOG.Add(auditobj); return(true); } else { return(false); } }
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); }