LLBL Gen 基本代码操作
来源:互联网 发布:淘宝卖刀为什么能寄 编辑:程序博客网 时间:2024/06/06 08:28
ParameterBase.CurrentUser.UserIdStringEnum<Ciphis.Enums.AccClass>.GetStringValue(Ciphis.Enums.AccClass.Vendor)//创建Manager ICustomerDeskDetailManager customerDeskDetailManager = ClientProxyFactory.CreateProxyInstance<ICustomerDeskDetailManager>();//过滤条件 IRelationPredicateBucket bucket = new RelationPredicateBucket(); bucket.PredicateExpression.Add(CustomerDeskDetailFields.DeskName == list[0].SysDeskName);//在得到的EntityCollection中搜索相关数据 List<int> ids = customerDeskDetails.FindMatches(CustomerDeskDetailFields.TableName == item.TableName);//关联查找 IPrefetchPath2 prefetchPath = new PrefetchPath2((int)EntityType.PurchaseOrderEntity); IPrefetchPathElement2 element = prefetchPath.Add(PurchaseOrderEntity.PrefetchPathPurchaseOrderDetails); element.SubPath.Add(PurchaseOrderDetailEntity.PrefetchPathPurchaseOrderBomDetails);//添加排序条件 ISortExpression sortExpression = new SortExpression(); sortExpression.Add(CustomerDeskFields.SortNo | SortOperator.Ascending);//添加关联关系 bucket.Relations.Add(InventoryMovementEntity.Relations.InventoryMovementDetailEntityUsingRefNo);//系统有外键,直接调用 bucket.Relations.Add(new EntityRelation(ItemFields.ItemNo, InventoryMovementDetailFields.ItemNo, RelationType.OneToMany), JoinHint.Left);//系统无外键,通过这种方式创建;JoinHint与写的顺序相反//别名关联 bucket.Relations.Add(new EntityRelation(LocationFields.Loc,JobOrderMaterialPickFields.LocFrom, RelationType.OneToMany),"LocFrom", JoinHint.Left);//主实体必须放在后面//多建关联 IEntityRelation mulKeyRelation = new EntityRelation(JobOrderMaterialPickDetailFields.SourceRefNo, PurchaseOrderDetailFields.OrderNo, RelationType.ManyToOne); mulKeyRelation.AddEntityFieldPair(JobOrderMaterialPickDetailFields.SourceEntryNo, PurchaseOrderDetailFields.EntryNo); bucket.Relations.Add(mulKeyRelation, JoinHint.Right);//系统无外键,通过这种方式创建//复杂的公式 DbFunctionCall dbFunQtyReceipt = new DbFunctionCall("ISNULL", new object[] { (PurchaseReceiptsDetailFields.QtyReceipt), 0 }); DbFunctionCall dbFunQtyCosting = new DbFunctionCall("ISNULL", new object[] { (PurchaseReceiptsDetailFields.QtyCosting), 0 }); EntityField2 eQtyReceipt = new EntityField2("QtyReceipt", dbFunQtyReceipt); EntityField2 eQtyCosting = new EntityField2("QtyCosting", dbFunQtyCosting); bucketInspection.PredicateExpression.Add(new FieldCompareExpressionPredicate(eQtyReceipt, null, ComparisonOperator.GreaterThan, new Expression(eQtyCosting)));//保存时不验证 entity.Validator = null; adapter.SaveEntity(entity, true, false);//创建对象IRelationPredicateBucket bucket = e.Argument as IRelationPredicateBucket;//读取哪些列 ExcludeIncludeFieldsList fields = new ExcludeIncludeFieldsList(false); fields.Add(FiscalPeriodFields.EndDate);//添加需要读取的字段【!!必须按顺序,必须数量等于条数】ResultsetFields fields = new ResultsetFields(4);fields.DefineField(InventoryMovementFields.RefNo, 0);fields.DefineField(InventoryMovementFields.LocFrom, 1);fields.DefineField(ProductionInspectionFields.JobNo, 3, "InspectionJobNo");//关联表的数据,以及创建别名//添加Where条件bucket.PredicateExpression.Add(InventoryMovementFields.SourceType == StringEnum<Ciphis.Enums.TransactionType>.GetStringValue(Ciphis.Enums.TransactionType.ProductionInspection));//判断是否为空bucket.PredicateExpression.Add(JobOrderMaterialPickDetailFields.SourceEntryNo == DBNull.Value);//获取IUserDefinedQueryManager userDefinedQueryManager = ClientProxyFactory.CreateProxyInstance<IUserDefinedQueryManager>();_productionIssueTable = userDefinedQueryManager.GetQueryResult(fields, bucket, sortExpression, null, true, 0, false);//直接删除 Delete From A WhereIRelationPredicateBucket bucket = new RelationPredicateBucket((CustomerFields.CustomerID == "FISSA"));DataAccessAdapter adapter = new DataAccessAdapter();adapter.DeleteEntitiesDirectly("CustomerEntity", bucket);//事务 using (DataAccessAdapterBase adapter = GetCompanyDataAccessAdapter()) { try{ adapter.StartTransaction(IsolationLevel.ReadCommitted, "SalesShipmentImportOrder"); 使用LLBL基本的语句写 adapter.Commit(); } catch { adapter.Rollback(); throw; }//直接更新 Update A set Where var ShipmentImportTmpChangedEntity = new ShipmentImportTmpEntity(); ShipmentImportTmpChangedEntity.TransactionType = "FeedBack";//直接赋值 ShipmentImportTmpChangedEntity.Fields[(int)ShipmentImportTmpFieldIndex.TransactionType].ExpressionToApply = new Expression(ShipmentImportTmpFields.PaymentType);//等于另外一个字段 ShipmentImportTmpChangedEntity.Fields[(int)ShipmentImportTmpFieldIndex.TransactionType].ExpressionToApply = (ShipmentImportTmpFields.PaymentType + ShipmentImportTmpFields.TransactionType);//等于表达式 IRelationPredicateBucket bucket2 = new RelationPredicateBucket(); bucket2.PredicateExpression.Add(ShipmentImportTmpFields.PaymentType == "Amazon fees"); adapter.UpdateEntitiesDirectly(ShipmentImportTmpChangedEntity, bucket2);//实际应该把其他的值设置为false,防止同时更新,然后使用currentValue赋值,防止发生连带赋值 InventoryMovementDetailEntity updateMovDetails = new InventoryMovementDetailEntity(); foreach (IEntityField2 field in updateMovDetails.Fields) { field.IsChanged = false; } updateMovDetails.Fields[(int)InventoryMovementDetailFieldIndex.CreatedDate].CurrentValue = DateTime.Now; adapter.UpdateEntitiesDirectly(updateMovDetails, bucket);//复杂代码 IRelationPredicateBucket bucket = new RelationPredicateBucket(); Foundation.HelperClasses.ResultsetFields fields = new Foundation.HelperClasses.ResultsetFields(2); DbFunctionCall dbFunQtyOnHand = new DbFunctionCall("isnull({0},0) - isnull({1},0)", new object[] { (InventoryBalanceFields.QtyOnHand), (InventoryBalanceFields.QtyReserved) }); EntityField2 eQtyBalance = new EntityField2("QtyBalance", dbFunQtyOnHand); fields.DefineField(eQtyBalance, 0); fields[0].SetAggregateFunction(AggregateFunction.Sum); fields.DefineField(InventoryBalanceFields.ItemNo, 1); ISortExpression sortExpression = new SortExpression(); IUserDefinedQueryManager userDefinedQueryManager = ClientProxyFactory.CreateProxyInstance<IUserDefinedQueryManager>(); IGroupByCollection groupByCollection = new GroupByCollection(); groupByCollection.Add(fields[1]); DataTable table = userDefinedQueryManager.GetQueryResult(fields, bucket, sortExpression, groupByCollection, true, 0, false); table.PrimaryKey = new DataColumn[] { table.Columns[InventoryBalanceFields.ItemNo.Name] }; return table;
0 0
- LLBL Gen 基本代码操作
- LLBL Gen + Entity Framework 程序设计入门
- LLBL Gen Pro 生成设置详解
- LLBL Gen Pro 3.X 下使用 Template 模版绑定(一)
- GEN-代码自动生成
- 代码基本操作 -- 读写文件
- NSArray的基本操作代码
- 操作XML文件基本代码
- Html基本操作实例代码
- ATM机基本操作代码
- android wifi基本操作代码
- solr基本操作代码示例
- Html基本操作实例代码
- solr基本操作代码示例
- git基本操作提交代码
- winform中一些基本操作的代码
- Berkeley db 基本操作代码(基础)
- 一些 NSArray 的基本操作代码例子
- windows dos 命令操作环境变量
- 对比测试阿里云、linode、vultr运行速度
- 修改已经push的commit,但是不增加commit history
- 千万级的大表!MySQL这样优化更好
- 单例模式
- LLBL Gen 基本代码操作
- Error: ‘shared_ptr’ in namespace ‘std’ does not name a type
- javascript 函数和作用域(闭包、作用域)(七)
- hbase源码系列(十四)Compact和Split
- bind call apply差异总结
- Js函数深入理解-函数声明
- app测试体系
- Python操作MySQL的9个实用实例
- arise、rise、raise、arouse