Exemple #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);
        }
Exemple #2
0
        /// <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);
            }
        }
Exemple #3
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);
        }