Esempio n. 1
0
        /// 编辑及新增
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public ActionResult Edit(int id = 0)
        {
            //数据库
            ViewBag.DIC_DBS = BF_DATABASE.Instance.GetDictionary();
            ViewBag.xlId    = (int)Enums.FormInputType.拉单选框;
            ViewBag.duofx   = (int)Enums.FormInputType.多个复选框;
            ViewBag.treexl  = (int)Enums.FormInputType.拉树选择;

            GetTableMode();     //创建表模式
            GetFieldDataType(); //字段类型
            GetInputType();     //输入框类型
            GetSelectType();    //数据来源
            BF_FORM.Entity entity = new BF_FORM.Entity();
            entity.DB_ID = -1;

            if (id > 0)
            {
                entity = BF_FORM.Instance.GetEntityByKey <BF_FORM.Entity>(id);
                if (entity == null)
                {
                    return(ShowAlert("配置项不存在"));
                }
            }
            //检查表字段有没有变动
            entity = GetFormFields(entity);
            return(View(entity));
        }
Esempio n. 2
0
        public JsonResult Edit(BF_FORM.Entity entity)
        {
            JsonResultData result = new JsonResultData();
            int            i      = 0;

            try
            {
                if (entity.ID < 0)
                {
                    result.Message = "配置项不存在,不可编辑";
                    return(Json(result, JsonRequestBehavior.AllowGet));
                }

                entity.UPDATE_UID  = SystemSession.UserID;
                entity.UPDATE_TIME = DateTime.Now;
                if (entity.ID == 0)
                {
                    entity.IS_ENABLE   = 1;
                    entity.CREATE_UID  = SystemSession.UserID;
                    entity.CREATE_TIME = DateTime.Now;
                    i = BF_FORM.Instance.Add(entity);
                }
                else
                {
                    Dictionary <string, object> dic = new Dictionary <string, object>();
                    dic.Add("NAME", entity.NAME);
                    dic.Add("DB_ID", entity.DB_ID);
                    dic.Add("TABLE_NAME", entity.TABLE_NAME);
                    dic.Add("CREATE_TABLE_MODE", entity.CREATE_TABLE_MODE);
                    dic.Add("IS_ALLOW_DELETE", entity.IS_ALLOW_DELETE);
                    dic.Add("FIELDS", entity.FIELDS);
                    dic.Add("REMARK", entity.REMARK);
                    dic.Add("JS_CODE", entity.JS_CODE);
                    dic.Add("UPDATE_UID", entity.UPDATE_UID);
                    dic.Add("UPDATE_TIME", entity.UPDATE_TIME);
                    i = BF_FORM.Instance.UpdateByKey(dic, entity.ID);
                }

                if (i < 1)
                {
                    result.Message = "出现了未知错误";
                    return(Json(result, JsonRequestBehavior.AllowGet));
                }

                result.IsSuccess = true;
                result.Message   = "保存成功";
            }
            catch (Exception ex)
            {
                result.IsSuccess = false;
                result.Message   = ex.Message;
                BLog.Write(BLog.LogLevel.WARN, "编辑导入配置出错:" + ex.ToString());
            }

            return(Json(result, JsonRequestBehavior.AllowGet));
        }
Esempio n. 3
0
        private BF_FORM.Entity GetFormFields(BF_FORM.Entity entity)
        {
            int    dbid      = entity.DB_ID;//得到数据库ID
            string tableName = entity.TABLE_NAME;

            if (dbid < 0 || string.IsNullOrWhiteSpace(tableName))
            {
                return(entity);
            }
            List <BF_FIELD.Entity>   list       = BF_DATABASE.Instance.GetFieldsList(dbid, tableName);                      //最新表的情况
            List <BF_FORM.FieldInfo> fieldsList = JsonConvert.DeserializeObject <List <BF_FORM.FieldInfo> >(entity.FIELDS); //当前表的情况

            if (list == null || list.Count <= 0)
            {
                return(entity);
            }

            List <BF_FIELD.Entity> isNotList = new List <BF_FIELD.Entity>();//记录变化的字段

            foreach (BF_FIELD.Entity item in list)
            {
                bool isSelect = false;//记录是否查到字段
                if (fieldsList == null || fieldsList.Count <= 0)
                {
                    return(entity);
                }

                foreach (BF_FORM.FieldInfo info in fieldsList)
                {
                    if (item.EN_NAME == info.EN_NAME)
                    {
                        isSelect = true;
                        break;
                    }
                }
                if (isSelect == false)
                {
                    isNotList.Add(item);
                }
            }

            //将变化的字段添加到当前字段中
            if (isNotList.Count <= 0)
            {
                return(entity);
            }

            //添加变化的字段
            foreach (BF_FIELD.Entity info in isNotList)
            {
                BF_FORM.FieldInfo field = new BF_FORM.FieldInfo();
                field.CN_NAME           = info.CN_NAME;
                field.DEFAULT           = "";
                field.EN_NAME           = info.EN_NAME;
                field.FIELD_DATA_TYPE   = info.FIELD_DATA_TYPE;
                field.INPUT_TYPE        = (int)FormInputType.普通文字框;
                field.IS_AUTO_INCREMENT = 0;
                field.IS_INSERT         = 0;
                field.IS_KEY_FIELD      = 0;
                field.IS_NOT_NULL       = 0;
                field.IS_READONLY       = 0;
                field.IS_UNIQUE         = 0;
                field.IS_UPDATE         = 0;
                field.ORDER_NUM         = 0;
                fieldsList.Add(field);
            }
            entity.FIELDS = JSON.DecodeToStr <List <BF_FORM.FieldInfo> >(fieldsList);
            return(entity);
        }
Esempio n. 4
0
        public JsonResult Template(FormCollection collection)
        {
            #region 得到参数验证数据
            string formId   = Request["formId"];
            string op       = Request["op"];
            string rowKey   = Request["rowKey"];
            string yyyy     = Request["YYYY"];
            string yyyymm   = Request["YYYYMM"];
            string yyyymmdd = Request["YYYYMMDD"];

            JsonResultData result = new JsonResultData();
            if (string.IsNullOrEmpty(formId) || string.IsNullOrEmpty(op))
            {
                result.IsSuccess = false;
                result.Message   = "对不起!表单没有找到formId或op参数,请联系管理员。";
                return(Json(result, JsonRequestBehavior.AllowGet));
            }
            else if (op != "0" && string.IsNullOrEmpty(rowKey) == true)
            {
                result.IsSuccess = false;
                result.Message   = "对不起!表单没有找rowKey参数值,请联系管理员。";
                return(Json(result, JsonRequestBehavior.AllowGet));
            }
            #endregion

            #region 提取配置信息
            BF_FORM.Entity entity = BF_FORM.Instance.GetEntityByKey <BF_FORM.Entity>(formId);

            List <BF_FORM.FieldInfo> FieldList = JsonConvert.DeserializeObject <List <BF_FORM.FieldInfo> >(entity.FIELDS);
            if (FieldList.Count <= 0)
            {
                result.IsSuccess = false;
                result.Message   = "对不起!表对应的字段有误,请联系管理员。";
                return(Json(result, JsonRequestBehavior.AllowGet));
            }
            #endregion


            try
            {
                List <string> strFields  = new List <string>();
                List <object> strValues  = new List <object>();
                string        strMessage = "";
                bool          bitResult  = false;
                if (op == "0")                                                           //数据添加
                {
                    entity.TABLE_NAME = BF_FORM.Instance.CreateTable(entity, FieldList); //动态创建数据库表
                    if (entity.TABLE_NAME == "")
                    {
                        result.IsSuccess = false;
                        result.Message   = "对不起!数据库表有误,请联系管理员。";
                        BLog.Write(BLog.LogLevel.WARN, "动态创建数据库表出现异常:表为空了");
                        return(Json(result, JsonRequestBehavior.AllowGet));
                    }

                    #region 数据添加
                    foreach (BF_FORM.FieldInfo item in FieldList)
                    {
                        string val = "";
                        if (item.IS_INSERT == 1)
                        {
                            if (item.INPUT_TYPE == (int)Enums.FormInputType.显示字段)
                            {
                                //添加默认值
                                string strDefault = item.DEFAULT == null ? "" : item.DEFAULT.Trim();
                                if (strDefault != "")
                                {
                                    val = BF_FORM.Instance.GetReadParam(strDefault); //将函数转为具体的值
                                }
                            }
                            else
                            {
                                val = collection[item.EN_NAME] == null ? "" : collection[item.EN_NAME].ToString();
                                if (string.IsNullOrWhiteSpace(val) && item.INPUT_TYPE == (int)Enums.FormInputType.单个复选框)//针对单个复选框由于只存在是或否的关系所以如果不选择时,有默认值,就按默认值走,如果没有就为0
                                {
                                    val = "0";
                                }
                            }

                            #region 数据有效性验证
                            string errorMessage = BF_FORM.Instance.ValidateField(item, val, rowKey, entity.DB_ID, entity.TABLE_NAME, FieldList);
                            if (string.IsNullOrWhiteSpace(errorMessage) == false)
                            {
                                result.IsSuccess = false;
                                result.Message   = errorMessage;
                                return(Json(result, JsonRequestBehavior.AllowGet));
                            }
                            #endregion

                            if (string.IsNullOrWhiteSpace(val) == false)
                            {
                                strFields.Add(item.EN_NAME);
                                switch (item.FIELD_DATA_TYPE)
                                {
                                case (int)Enums.FieldDataType.数值:
                                    strValues.Add(Convert.ToDecimal(val));
                                    break;

                                case (int)Enums.FieldDataType.日期:
                                    strValues.Add(Convert.ToDateTime(val));
                                    break;

                                default:
                                    strValues.Add(val);
                                    break;
                                }
                            }
                        }
                        else if (item.IS_KEY_FIELD == 1 && item.IS_AUTO_INCREMENT == 0)
                        {
                            strFields.Add(item.EN_NAME);
                            strValues.Add(GetNextValueFromSeqDef(entity.TABLE_NAME));
                        }
                    }
                    //entity.TABLE_NAME = BF_FORM.Instance.CreateTable(entity, FieldList);//动态创建数据库表

                    bitResult = BF_FORM.Instance.insertData(entity.DB_ID, entity.TABLE_NAME, strFields, strValues);
                    #endregion
                }
                else if (op == "1")//数据更新
                {
                    #region 数据更新
                    strFields.Clear();
                    strValues.Clear();
                    foreach (BF_FORM.FieldInfo item in FieldList)
                    {
                        if (item.IS_UPDATE == 1)
                        {
                            strFields.Add(item.EN_NAME + "=?");
                            string val = "";
                            if (item.INPUT_TYPE == (int)Enums.FormInputType.显示字段)
                            {
                                //添加默认值
                                string strDefault = item.DEFAULT == null ? "" : item.DEFAULT.Trim();
                                if (strDefault != "")
                                {
                                    val = BF_FORM.Instance.GetReadParam(strDefault); //将函数转为具体的值
                                }
                            }
                            else
                            {
                                val = collection[item.EN_NAME] == null ? "" : collection[item.EN_NAME].ToString();
                                if (string.IsNullOrWhiteSpace(val) && item.INPUT_TYPE == (int)Enums.FormInputType.单个复选框)//针对单个复选框由于只存在是或否的关系所以如果不选择时,有默认值,就按默认值走,如果没有就为0
                                {
                                    val = "0";
                                }
                            }
                            #region 数据有效性验证
                            string errorMessage = BF_FORM.Instance.ValidateField(item, val, rowKey, entity.DB_ID, entity.TABLE_NAME, FieldList);
                            if (string.IsNullOrWhiteSpace(errorMessage) == false)
                            {
                                result.IsSuccess = false;
                                result.Message   = errorMessage;
                                return(Json(result, JsonRequestBehavior.AllowGet));
                            }
                            #endregion

                            if (string.IsNullOrWhiteSpace(val))//为空时特殊处理
                            {
                                if (item.FIELD_DATA_TYPE == (int)Enums.FieldDataType.数值 || item.FIELD_DATA_TYPE == (int)Enums.FieldDataType.日期)
                                {
                                    strValues.Add(null);
                                }
                                else
                                {
                                    strValues.Add("");
                                }
                            }
                            else
                            {
                                //添加值
                                switch (item.FIELD_DATA_TYPE)
                                {
                                case (int)Enums.FieldDataType.数值:
                                    strValues.Add(Convert.ToDecimal(val));
                                    break;

                                case (int)Enums.FieldDataType.日期:
                                    strValues.Add(Convert.ToDateTime(val));
                                    break;

                                default:
                                    strValues.Add(val);
                                    break;
                                }
                            }
                        }
                    }
                    entity.TABLE_NAME = BF_FORM.Instance.GetTableName(entity, yyyy, yyyymm, yyyymmdd, ref strMessage);//得到动态表名
                    if (string.IsNullOrEmpty(strMessage) && string.IsNullOrEmpty(entity.TABLE_NAME) == false)
                    {
                        bitResult = BF_FORM.Instance.UpdataData(entity.DB_ID, entity.TABLE_NAME, strFields, strValues, FieldList, rowKey);
                    }
                    #endregion
                }
                else if (op == "2")//删除
                {
                    #region  除
                    entity.TABLE_NAME = BF_FORM.Instance.GetTableName(entity, yyyy, yyyymm, yyyymmdd, ref strMessage);//得到动态表名
                    if (string.IsNullOrEmpty(strMessage) && string.IsNullOrEmpty(entity.TABLE_NAME) == false)
                    {
                        bitResult = BF_FORM.Instance.DeleteData(entity.DB_ID, entity.TABLE_NAME, FieldList, rowKey);
                    }
                    #endregion
                }

                if (bitResult)
                {
                    result.Message = "数据提交成功!";
                }
                else
                {
                    result.Message = "对不起!数据提交失败,请联系管理员。";
                }

                result.IsSuccess = bitResult;
                return(Json(result, JsonRequestBehavior.AllowGet));
            }
            catch (Exception ex)
            {
                result.IsSuccess = false;
                result.Message   = ex.Message;
                BLog.Write(BLog.LogLevel.WARN, "模板操作异常:" + ex.ToString());
            }

            return(Json(result, JsonRequestBehavior.AllowGet));
        }
Esempio n. 5
0
        /// <summary>
        /// 表单模板(如果选择了修改和删除必须要传rowKey)
        /// </summary>
        /// <param name="formId">表单ID</param>
        /// <param name="op">功能选择(0:添加;1:修改;2:删除)</param>
        /// <param name="rowKey">主键值</param>
        /// <returns></returns>fromId
        public ActionResult Template(int formId = 0, int op = 0, string rowKey = "", string yyyy = "", string yyyymm = "", string yyyymmdd = "")
        {
            #region 验证数据参数
            if (formId <= 0 || op >= 2)
            {
                ViewBag.Message = "对不起!表单没有找到formId或op参数,请联系管理员。";
                //  ShowAlert(ViewBag.Message);//跳转至错误页
                return(View());
            }

            if (op != 0)
            {
                if (rowKey == null || rowKey.Trim() == "")
                {
                    ViewBag.Message = "对不起!表单没有找rowKey参数值,请联系管理员。";
                    return(View());
                }
                rowKey = rowKey.Trim();
            }
            #endregion

            #region 查询基本信息
            BF_FORM.Entity           entity    = BF_FORM.Instance.GetEntityByKey <BF_FORM.Entity>(formId);
            string                   tableName = entity.TABLE_NAME;//表名
            List <BF_FORM.FieldInfo> FieldList = JsonConvert.DeserializeObject <List <BF_FORM.FieldInfo> >(entity.FIELDS);
            if (FieldList.Count <= 0)
            {
                ViewBag.Message = "对不起!表对应的字段有误,请联系管理员。";
                return(View());
            }

            DataRow dataRow = null;
            #region 查询要编辑的数据
            if (op == 1)
            {
                string strMessage = "";
                entity.TABLE_NAME = BF_FORM.Instance.GetTableName(entity, yyyy, yyyymm, yyyymmdd, ref strMessage);//得到动态表名
                if (string.IsNullOrEmpty(strMessage) == false || string.IsNullOrEmpty(entity.TABLE_NAME))
                {
                    BLog.Write(BLog.LogLevel.WARN, strMessage);
                    ViewBag.Message = strMessage;
                    // ShowAlert(strMessage);//跳转至错误页
                    return(View());
                }
                DataTable data = BF_FORM.Instance.GetData(entity.DB_ID, entity.TABLE_NAME, "*", FieldList, rowKey);
                if (data != null && data.Rows.Count > 0)
                {
                    dataRow = data.Rows[0];
                }
            }
            #endregion
            #endregion
            string strHtml = BF_FORM.Instance.GenerateTemplate(op, FieldList, dataRow);//生成模板
            if (string.IsNullOrEmpty(strHtml))
            {
                ViewBag.Message = "模板生成出现异常!请联系管理";
                return(View());
            }
            ViewBag.js_Code  = (string.IsNullOrWhiteSpace(entity.JS_CODE) ? "" : "<div class=\"layui-form-item\">" + entity.JS_CODE + "</div>");
            ViewBag.formHtml = strHtml;//生成的表单
            return(View());
        }