//创建测试数据 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); }
//创建测试数据 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); }
//创建字表测试数据 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); }
/// <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())); }
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); }
/// <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); } }