Exemple #1
0
        //创建测试数据
        private static DynamicEntity CreateDemoHeader()
        {
            //添加实体定义
            DynamicEntity saleOrderHeaderDefine = new DynamicEntity();

            saleOrderHeaderDefine.ID          = Guid.NewGuid().ToString();
            saleOrderHeaderDefine.Name        = "销售单";
            saleOrderHeaderDefine.Description = "销售单";
            saleOrderHeaderDefine.CategoryID  = Define.TestCategoryID;  //集团公司/管道板块/运输

            //SaleOrderHeader.SortNo = 0;
            saleOrderHeaderDefine.BuidCodeName();

            saleOrderHeaderDefine.Fields.Add(new DynamicEntityField()
            {
                ID = Guid.NewGuid().ToString(), Name = "总金额", FieldType = FieldTypeEnum.Decimal, Length = 18, SortNo = 0, DefaultValue = "99"
            });

            DynamicEntityField field = new DynamicEntityField()
            {
                ID = Guid.NewGuid().ToString(),
                //CodeName = "销售明细",
                Name      = "销售明细",
                FieldType = FieldTypeEnum.Collection,
                Length    = 999,
                SortNo    = 1
            };

            field.ReferenceEntityCodeName = "/集团公司/管道板块/运输/销售单明细";
            saleOrderHeaderDefine.Fields.Add(field);

            DEObjectOperations.InstanceWithoutPermissions.AddEntity(saleOrderHeaderDefine);

            #region Mapping关系
            //抬头对应
            EntityMapping mapping = new EntityMapping();
            mapping.InnerEntity     = saleOrderHeaderDefine;
            mapping.OuterEntityID   = Guid.NewGuid().ToString();
            mapping.OuterEntityName = "Tcode_test";
            mapping.EntityFieldMappingCollection.ToArray();

            //saleOrderHeaderDefine.Fields.ToArray().Where(p => p.FieldType != FieldTypeEnum.Collection).ToList().ForEach(f =>
            //{
            //    var outerField = mapping.EntityFieldMappingCollection.FirstOrDefault(p => p.FieldName.Equals(f.Name));
            //    outerField.OuterFieldID = Guid.NewGuid().ToString();
            //    outerField.OuterFieldName = f.Name + "_Mapping";
            //});

            //var collfield = mapping.EntityFieldMappingCollection.FirstOrDefault(p => p.FieldTypeName == FieldTypeEnum.Collection.ToString());
            //collfield.OuterFieldID = Guid.NewGuid().ToString();
            //collfield.OuterFieldName = "Tcode_test_Item";

            DEObjectOperations.InstanceWithoutPermissions.AddEntityMapping(mapping);
            #endregion

            return(saleOrderHeaderDefine);
        }
Exemple #2
0
        //创建测试数据
        private static DynamicEntity CreateDemoItem()
        {
            DynamicEntity saleOrderItemDefine = new DynamicEntity();

            saleOrderItemDefine.ID          = Guid.NewGuid().ToString();
            saleOrderItemDefine.Name        = "销售单明细";
            saleOrderItemDefine.Description = "销售单明细";
            saleOrderItemDefine.CategoryID  = Define.TestCategoryID;  //集团公司/管道板块/运输
            saleOrderItemDefine.BuidCodeName();
            //SaleOrderItem.SortNo = 1;
            saleOrderItemDefine.CreateDate = DateTime.Now;

            saleOrderItemDefine.Fields.Add(new DynamicEntityField()
            {
                ID = Guid.NewGuid().ToString(), Name = "物料名称", FieldType = FieldTypeEnum.String, Length = 255, SortNo = 0, DefaultValue = "测试默认值"
            });
            saleOrderItemDefine.Fields.Add(new DynamicEntityField()
            {
                ID = Guid.NewGuid().ToString(), Name = "物料数量", FieldType = FieldTypeEnum.Int, Length = 4, SortNo = 1
            });
            saleOrderItemDefine.Fields.Add(new DynamicEntityField()
            {
                ID = Guid.NewGuid().ToString(), Name = "单价", FieldType = FieldTypeEnum.Decimal, Length = 18, SortNo = 2
            });

            DEObjectOperations.InstanceWithoutPermissions.AddEntity(saleOrderItemDefine);

            #region Mapping关系
            //明细对应
            EntityMapping mapping = new EntityMapping();
            mapping.InnerEntity     = saleOrderItemDefine;
            mapping.OuterEntityID   = Guid.NewGuid().ToString();
            mapping.OuterEntityName = "Tcode_test_Item";
            mapping.EntityFieldMappingCollection.ToArray();

            //saleOrderItemDefine.Fields.ForEach(f =>
            //{
            //    var outerField = mapping.EntityFieldMappingCollection.FirstOrDefault(p => p.FieldName.Equals(f.Name));

            //    outerField.OuterFieldID = Guid.NewGuid().ToString();
            //    outerField.OuterFieldName = f.Name + "_Mapping";
            //});

            DEObjectOperations.InstanceWithoutPermissions.AddEntityMapping(mapping);
            #endregion

            return(saleOrderItemDefine);
        }
Exemple #3
0
        //创建字表测试数据
        private static DynamicEntity CreateDemoItemEntity(string strlenth)
        {
            DynamicEntity SaleOrderItem = new DynamicEntity();

            SaleOrderItem.ID          = Guid.NewGuid().ToString();
            SaleOrderItem.Name        = "销售单明细字表" + strlenth;
            SaleOrderItem.Description = "销售单明细字表" + strlenth;
            SaleOrderItem.CategoryID  = Define.TestCategoryID;  //集团公司/管道板块/运输
            SaleOrderItem.BuidCodeName();
            SaleOrderItem.SortNo     = 1;
            SaleOrderItem.CreateDate = DateTime.Now;

            SaleOrderItem.Fields.Add(new DynamicEntityField()
            {
                ID        = Guid.NewGuid().ToString(),
                Name      = "物料名称",
                FieldType = FieldTypeEnum.String,
                Length    = 255,
                SortNo    = 0
            });
            SaleOrderItem.Fields.Add(new DynamicEntityField()
            {
                ID           = Guid.NewGuid().ToString(),
                Name         = "物料数量",
                FieldType    = FieldTypeEnum.Int,
                Length       = 4,
                SortNo       = 1,
                DefaultValue = "1"
            });
            SaleOrderItem.Fields.Add(new DynamicEntityField()
            {
                ID           = Guid.NewGuid().ToString(),
                Name         = "单价",
                FieldType    = FieldTypeEnum.Decimal,
                Length       = 18,
                SortNo       = 2,
                DefaultValue = "99"
            });

            DEObjectOperations.InstanceWithoutPermissions.AddEntity(SaleOrderItem);
            return(SaleOrderItem);
        }
Exemple #4
0
        /// <summary>
        /// 添加实体
        /// </summary>
        /// <param name="entity"></param>
        public void AddEntity(DynamicEntity entity)
        {
            DEObjectExecutor executor = null;

            entity.NullCheck <ArgumentNullException>("待添加的实体不能为Null");

            if (this._NeedCheckPermissions)
            {
                CheckPermissions(DEOperationType.AddEntity, null, "AddEntity", string.Empty);
            }

            //生成CodeName
            entity.BuidCodeName();

            //验证实体数据
            entity.Validate();

            executor = new DEMemberCollectionRelativeExecutor(DEOperationType.AddEntity, entity, entity.Fields.ToSchemaObjects())
            {
                SaveContainerData = true, NeedValidation = this.NeedValidationAndStatusCheck
            };

            ExecuteWithActions(DEOperationType.AddEntity, () => SCActionContext.Current.DoActions(() => executor.Execute()));
        }
Exemple #5
0
        public static DynamicEntity CreatEntityWithAllTypeData()
        {
            DynamicEntity entity = new DynamicEntity();

            entity.ID          = Guid.NewGuid().ToString();
            entity.Name        = "测试实体";
            entity.Description = "测试实体";
            entity.CategoryID  = Define.TestCategoryID;  //集团公司/管道板块/运输
            entity.BuidCodeName();

            entity.Fields.Add(new DynamicEntityField()
            {
                ID = Guid.NewGuid().ToString(), Name = "Bool", FieldType = FieldTypeEnum.Bool, Length = 1, DefaultValue = "true"
            });
            //entiy.Fields.Add(new DynamicEntityField() { ID = Guid.NewGuid().ToString(), Name = "Collection", FieldType = FieldTypeEnum.Collection, Length = 1 });
            entity.Fields.Add(new DynamicEntityField()
            {
                ID = Guid.NewGuid().ToString(), Name = "DateTime", FieldType = FieldTypeEnum.DateTime, Length = 10, DefaultValue = "2014-3-3"
            });
            entity.Fields.Add(new DynamicEntityField()
            {
                ID = Guid.NewGuid().ToString(), Name = "Decimal", FieldType = FieldTypeEnum.Decimal, Length = 10, DefaultValue = "99"
            });
            entity.Fields.Add(new DynamicEntityField()
            {
                ID = Guid.NewGuid().ToString(), Name = "Int", FieldType = FieldTypeEnum.Int, Length = 10, DefaultValue = "99"
            });
            entity.Fields.Add(new DynamicEntityField()
            {
                ID = Guid.NewGuid().ToString(), Name = "String", FieldType = FieldTypeEnum.String, Length = 10, DefaultValue = "haoyk"
            });

            DEObjectOperations.InstanceWithoutPermissions.AddEntity(entity);

            return(entity);
        }
Exemple #6
0
        /// <summary>
        /// 创建主表测试数据,无子表
        /// </summary>
        /// <returns></returns>
        private static DynamicEntity CreateDemoHeaderEntity()
        {
            DynamicEntity SaleOrderItem = new DynamicEntity();

            SaleOrderItem.ID          = Guid.NewGuid().ToString();
            SaleOrderItem.Name        = "销售单明细";
            SaleOrderItem.Description = "销售单明细";
            SaleOrderItem.CategoryID  = Define.TestCategoryID;  //集团公司/管道板块/运输
            SaleOrderItem.BuidCodeName();
            SaleOrderItem.SortNo     = 1;
            SaleOrderItem.CreateDate = DateTime.Now;

            DynamicEntity saleOrderEntityItem1 = CreateDemoItemEntity("第一个");
            DynamicEntity saleOrderEntityItem2 = CreateDemoItemEntity("第二个");

            SaleOrderItem.Fields.Add(new DynamicEntityField()
            {
                ID         = Guid.NewGuid().ToString(),
                Name       = "物料名称",
                FieldType  = FieldTypeEnum.String,
                Length     = 255,
                SortNo     = 0,
                CreateDate = SaleOrderItem.CreateDate
            });
            SaleOrderItem.Fields.Add(new DynamicEntityField()
            {
                ID        = Guid.NewGuid().ToString(),
                Name      = "物料数量",
                FieldType = FieldTypeEnum.Int,
                Length    = 4,
                SortNo    = 1
            });
            SaleOrderItem.Fields.Add(new DynamicEntityField()
            {
                ID        = Guid.NewGuid().ToString(),
                Name      = "单价",
                FieldType = FieldTypeEnum.Decimal,
                Length    = 18,
                SortNo    = 2
            });

            SaleOrderItem.Fields.Add(new DynamicEntityField()
            {
                ID        = Guid.NewGuid().ToString(),
                Name      = "销售订单字表1",
                FieldType = FieldTypeEnum.Collection,
                ReferenceEntityCodeName = saleOrderEntityItem1.CodeName,
                Length = 50,
                SortNo = 3
            });

            SaleOrderItem.Fields.Add(new DynamicEntityField()
            {
                ID        = Guid.NewGuid().ToString(),
                Name      = "销售订单字表2",
                FieldType = FieldTypeEnum.Collection,
                ReferenceEntityCodeName = saleOrderEntityItem2.CodeName,
                Length = 18,
                SortNo = 4
            });

            DEObjectOperations.InstanceWithoutPermissions.AddEntity(SaleOrderItem);

            return(SaleOrderItem);
        }
        //保存
        protected void btn_Save_Click(object sender, EventArgs e)
        {
            StringBuilder error = new StringBuilder();

            if (!Util.CheckOperationSafe())
            {
                return;
            }

            //取值
            this.bindingControl.CollectData();
            DynamicEntity entity = (DynamicEntity)this.bindingControl.Data;

            PropertyValueCollection pvc = JSONSerializerExecute.Deserialize <PropertyValueCollection>(Request.Form.GetValue("properties", string.Empty));

            entity.Properties.FromPropertyValues(pvc);

            //检查重复项
            entity.Fields.GroupBy(p => p.Name).ForEach(p => { if (p.Count() > 1)
                                                              {
                                                                  error.Append(p.Key + "有重复项!\r\n");
                                                              }
                                                       });

            bool needCheckExist = false;

            #region
            if (DESchemaObjectAdapter.Instance.Exist(entity.ID, DateTime.Now.SimulateTime()))
            {
                //更新实体
                DynamicEntity old = DESchemaObjectAdapter.Instance.Load(entity.ID, DateTime.Now.SimulateTime()) as DynamicEntity;
                if (!old.Name.Equals(entity.Name))
                {
                    needCheckExist = true;
                }
            }
            else
            {
                needCheckExist = true;
            }


            if (needCheckExist)
            {
                //生成CodeName
                entity.BuidCodeName();

                if (DEDynamicEntityAdapter.Instance.ExistByCodeName(entity.CodeName, DateTime.Now.SimulateTime()))
                {
                    error.AppendFormat("已存在名称为[{0}]的实体!\r\n", entity.Name);
                }
            }

            (error.Length > 0).TrueThrow(error.ToString());
            #endregion
            //入库
            DEObjectOperations.InstanceWithPermissions.DoOperation(this.OperationMode, entity, null);
            if (entity.SnapshotTable.IsNotEmpty())
            {
                if (this.OperationMode == SCObjectOperationMode.Add)
                {
                    INVDynamicEntitySnapshotAdapter.Instance.CreateSnapshot(entity);
                }
                else if (this.OperationMode == SCObjectOperationMode.Update)
                {
                    INVDynamicEntitySnapshotAdapter.Instance.UpdateSnapshot(entity);
                }
            }
            entity.ClearCacheData();
            this.HFEntityID.Value   = entity.ID;
            this.HFEntityName.Value = entity.Name;
            if (this.OperationType.Equals("1"))
            {
                HttpContext.Current.Response.Write("<script>window.returnValue=true;window.close()</script>");
                WebUtility.RefreshParentWindow("close", RefreshParentWindowName.Parent);
            }
            else
            {
                WebUtility.RefreshParentWindow("close", RefreshParentWindowName.Parent);
                Page.ClientScript.RegisterStartupScript(this.Page.GetType(), "", string.Format("top.setEntityInfo('{0}','{1}');", entity.ID, entity.Name), true);
            }
        }