public async Task <ApiResult> GetLogisticsList(PageQueryInputBase input) { var query = from order in dbContext.Order.Where(x => x.OrderState != Domain.Enums.OrderState.Cancel && x.OrderState != Domain.Enums.OrderState.Create) join logisticstmp in dbContext.Logistics.DefaultIfEmpty() on order.Id equals logisticstmp.OrderId into tmp from logistics in tmp.DefaultIfEmpty() orderby logistics.DeliveTime descending select new GetLogisticsListResponse() { OrderId = order.Id, Id = logistics == null ? null : logistics.Id, OrderNo = order.OrderNo, LogisticsType = logistics == null ? null : (int)logistics.LogisticsType, LogisticsNo = logistics.LogisticsNo, DeliverName = logistics.DeliverName, DeliverAddress = logistics.DeliverAddress, ReceiverName = logistics.ReceiverName, ReceiverAddress = logistics.ReceiverAddress, DeliveTime = logistics.DeliveTime, ReceiveTime = logistics.ReceiveTime, LogisticsState = logistics == null ? null : (int)logistics.LogisticsState, }; var(Data, Total) = await QueryServiceHelper.PageQuery(query, input.Page, input.Limit); return(ApiResult.Ok(new PageQueryResonseBase <GetLogisticsListResponse>(Data, Total))); }
public async Task <ApiResult> GetLimitedTimeActivitieList(PageQueryInputBase input) { var query = from activitie in dbContext.LimitedTimeActivitie join goods in dbContext.Goods on activitie.GoodsId equals goods.Id select new GetLimitedTimeActivitieListResponse() { Id = activitie.Id, GoodsId = activitie.GoodsId, ActivitieName = activitie.ActivitieName, GoodsName = goods.GoodsName, Price = goods.Price, ActivitiePrice = activitie.ActivitiePrice, StartTime = activitie.StartTime, EndTime = activitie.EndTime, ShelfState = activitie.ShelfState, }; var(Data, Total) = await QueryServiceHelper.PageQuery(query.OrderByDescending(x => x.EndTime), input.Page, input.Limit); Data.ForEach(x => { x.ActivitieState = DateTime.Now < x.StartTime ? 0 : x.StartTime <DateTime.Now && x.EndTime> DateTime.Now ? 1 : 2; x.ActivitieStateInfo = ""; }); return(ApiResult.Ok(new PageQueryResonseBase <GetLimitedTimeActivitieListResponse>(Data, Total))); }
protected List <EnumItem> GetOrganization(Context ctx) { List <EnumItem> list = new List <EnumItem>(); List <SelectorItemInfo> list2 = new List <SelectorItemInfo>(); list2.Add(new SelectorItemInfo("FORGID")); list2.Add(new SelectorItemInfo("FNUMBER")); list2.Add(new SelectorItemInfo("FNAME")); string text = this.GetInFilter("FORGID", this.lstSalOrg); text += string.Format(" AND FORGFUNCTIONS LIKE '%{0}%' ", 101L.ToString()); QueryBuilderParemeter para = new QueryBuilderParemeter { FormId = "ORG_Organizations", SelectItems = list2, FilterClauseWihtKey = text }; DynamicObjectCollection dynamicObjectCollection = QueryServiceHelper.GetDynamicObjectCollection(base.Context, para, null); foreach (DynamicObject current in dynamicObjectCollection) { list.Add(new EnumItem(new DynamicObject(EnumItem.EnumItemType)) { EnumId = current["FORGID"].ToString(), Value = current["FORGID"].ToString(), Caption = new LocaleValue(Convert.ToString(current["FName"]), base.Context.UserLocale.LCID) }); } return(list); }
private bool Check(CheckPara para, string formKey, string formCaption, string tableName, string entryFormKey, out string errInfor) { errInfor = ""; QueryBuilderParemeter qbPara = GetQBPara(para, formKey, tableName, entryFormKey); try { DynamicObjectCollection datas = QueryServiceHelper.GetDynamicObjectCollection(para.ctx, qbPara); if (datas != null && datas.Count > 0) { errInfor = string.Format("{4} 单号 {1} 物料编码 {2} 物料名称 {3} 单位酶活量{0} ", datas[0]["FJNUnitEnzymes"], datas[0]["FBillNo"], datas[0]["FMatNumber"], datas[0]["FMatName"], formCaption); return(true); } } catch (Exception ex) { return(false); } return(false); }
public async Task <ApiResult> GetAccountList(PageQueryInputBase input) { var query = (from account in efDbContext.Account join user in efDbContext.User on account.Id equals user.AccountId select new GetAccountListResponse { Id = account.Id, LoginName = account.LoginName, NickName = account.NickName, State = (int)account.State, Gender = (int)user.Gender, BirthDay = user.BirthDay, Address = user.Address, Tel = user.Tel, UserName = user.UserName }).OrderBy(x => x.LoginName); var(Data, Total) = await QueryServiceHelper.PageQuery(query, input.Page, input.Limit); var accoundIds = Data.Select(x => x.Id).ToList(); var roles = await(from role in efDbContext.Role join userrole in efDbContext.UserRole.Where(ur => accoundIds.Contains(ur.AccountId)) on role.Id equals userrole.RoleId select new { userrole.AccountId, role.Id, role.RoleName, role.SuperAdmin }).AsNoTracking().ToListAsync(); Data.ForEach(account => { account.Roles = roles.Where(role => role.AccountId == account.Id).Select(role => new GetAccountListResponse.RoleItem() { RoleId = role.Id, RoleName = role.RoleName, SuperAdmin = role.SuperAdmin }); }); return(ApiResult.Ok(new PageQueryResonseBase <GetAccountListResponse>(Data, Total))); }
public async Task <ApiResult> GetCategoryList(PageQueryInputBase input) { var query = from category in dbContext.GoodsCategory orderby category.Sort select category; var(Data, Total) = await QueryServiceHelper.PageQuery(query, input.Page, input.Limit); return(ApiResult.Ok(new PageQueryResonseBase <GoodsCategory>(Data, Total))); }
public async Task <ApiResult> GetEventHandleErrorInfoList(PageQueryInputBase input) { var query = from eventHandleErrorInfo in dbContext.EventHandleErrorInfo.OrderByDescending(x => x.LogDate) select eventHandleErrorInfo; var(Data, Total) = await QueryServiceHelper.PageQuery(query, input.Page, input.Limit); return(ApiResult.Ok(new PageQueryResonseBase <Infrastructure.PersistenceObject.EventHandleErrorInfo>(Data, Total))); }
public async Task <ApiResult> GetFoodsList(PageQueryInputBase input) { var query = from Foods in dbContext.Foods select new GetFoodsListResponse() { }; var(Data, Total) = await QueryServiceHelper.PageQuery(query, input.Page, input.Limit); return(ApiResult.Ok(new PageQueryResonseBase <GetFoodsListResponse>(Data, Total))); }
/// <summary> /// 输入货主分类(组织、供应商、客户),获取货主数据 /// </summary> /// <returns>返回服务结果。</returns> public ServiceResult ExecuteService(string formid) { var result = new ServiceResult <List <JSONObject> >(); var ctx = this.KDContext.Session.AppContext; // 检查上下文对象 if (this.IsContextExpired(result)) { return(result); } //获取相关信息 try { //TODO:通过平台动态引擎获取数据 var metadata = FormMetaDataCache.GetCachedFormMetaData(ctx, "BAH_BD_Owner"); var businessInfo = metadata.BusinessInfo; var queryParameter = new QueryBuilderParemeter(); queryParameter.FormId = businessInfo.GetForm().Id; queryParameter.SelectItems = SelectorItemInfo.CreateItems("FID,FNUMBER,FName"); queryParameter.FilterClauseWihtKey = "FDOCUMENTSTATUS = 'C' and FFORBIDSTATUS = 'A' and FFormId LIKE '%" + formid + "%' "; queryParameter.OrderByClauseWihtKey = "FNUMBER"; var dataObjectCollection = QueryServiceHelper.GetDynamicObjectCollection(ctx, queryParameter); //queryParameter.FilterClauseWihtKey = "FDOCUMENTSTATUS = @FDOCUMENTSTATUS"; //queryParameter.SqlParams.Add(new SqlParam("@FDOCUMENTSTATUS", KDDbType.String, "C")); //queryParameter.FilterClauseWihtKey = "FFORBIDSTATUS = @FFORBIDSTATUS"; //queryParameter.SqlParams.Add(new SqlParam("@FFORBIDSTATUS", KDDbType.String, "A")); //var dataObjectCollection = BusinessDataServiceHelper.Load(ctx, businessInfo.GetDynamicObjectType(), queryParameter); JSONObject Finaldata = new JSONObject(); List <JSONObject> return_data = new List <JSONObject>(); foreach (DynamicObject dataObject in dataObjectCollection) { JSONObject data = new JSONObject(); data.Add("FID", dataObject["FId"].ToString()); data.Add("FNUMBER", dataObject["FNumber"].ToString()); data.Add("FName", dataObject["FName"].ToString()); return_data.Add(data); } Finaldata.Add("Owner", return_data); //返回数据 result.Code = (int)ResultCode.Success; result.Data = return_data; result.Message = "成功返回数据!"; } catch (Exception ex) { result.Code = (int)ResultCode.Fail; result.Message = ex.Message; } return(result); }
/// <summary> /// queryservice取数方案,通过业务对象来获取数据,推荐使用 /// </summary> /// <returns></returns> public DynamicObjectCollection GetQueryDatas(string filter) { QueryBuilderParemeter paramCatalog = new QueryBuilderParemeter() { FormId = this.View.GetFormId(), //取数的业务对象 FilterClauseWihtKey = filter, //过滤条件,通过业务对象的字段Key拼装过滤条件 SelectItems = SelectorItemInfo.CreateItems("FID", "FBILLNO", "FDOCUMENTSTATUS"), //要筛选的字段【业务对象的字段Key】,可以多个,如果要取主键,使用主键名 }; DynamicObjectCollection dyDatas = QueryServiceHelper.GetDynamicObjectCollection(this.Context, paramCatalog); return(dyDatas); }
public async Task <ApiResult> GetGoodsList(PageQueryInputBase input) { var query = (from goods in efDbContext.Goods.OrderBy(x => x.GoodsName) join category in efDbContext.GoodsCategory on goods.CategoryId equals category.Id select new GetGoodsListResponse() { Id = goods.Id, CategoryId = category.Id, CategoryName = category.CategoryName, GoodsImage = goods.GoodsImage, GoodsName = goods.GoodsName, ShelfState = goods.ShelfState, Stock = goods.Stock, Price = goods.Price }).OrderBy(x => x.GoodsName); var(Data, Total) = await QueryServiceHelper.PageQuery(query, input.Page, input.Limit); return(ApiResult.Ok(new PageQueryResonseBase <GetGoodsListResponse>(Data, Total))); }
public async Task <ApiResult> GetPermissionList(PageQueryInputBase input) { var query = (from permission in dbContext.Permission where permission.FatherId != Guid.Empty join father in dbContext.Permission on permission.FatherId equals father.Id select new GetPermissionListResponse() { Id = permission.Id, ServerName = father.PermissionName, PermissionName = permission.PermissionName, Path = permission.Path }).OrderBy(x => x.ServerName); var(Data, Total) = await QueryServiceHelper.PageQuery(query, input.Page, input.Limit); return(ApiResult.Ok(new PageQueryResonseBase <GetPermissionListResponse>(Data, Total))); }
public async Task <ApiResult> GetOrderList(PageQueryInputBase input) { var query = from order in dbContext.Order select new { UserId = order.UserId, OrderId = order.Id, OrderNo = order.OrderNo, OrderState = order.OrderState, TotalPrice = order.TotalPrice, CreateTime = order.CreateTime }; var(Data, Total) = await QueryServiceHelper.PageQuery(query.OrderByDescending(x => x.CreateTime), input.Page, input.Limit); var orderIds = Data.Select(x => x.OrderId).ToList(); var orderItems = dbContext.OrderItem.Where(x => orderIds.Contains(x.OrderId)).Select(item => new { OrderId = item.OrderId, GoodsName = item.GoodsSnapshot.GoodsName, Price = item.TotalPrice, Count = item.Count }).ToList(); var usernames = (await accountQuery.GetAccountUserNameByIds(new GetAccountUserNameByIdsDto() { Ids = Data.Select(x => x.UserId).ToList() })).GetData <List <GetAccountUserNameByIdsResponse> >(); var result = Data.Select(x => new GetOrderListResponse() { OrderId = x.OrderId, OrderNo = x.OrderNo, UserName = usernames.FirstOrDefault(y => x.UserId == y.AccountId).Name, OrderState = Convert.ToInt32(x.OrderState), TotalPrice = x.TotalPrice, OrderItems = orderItems.Where(y => y.OrderId == x.OrderId).Select(item => new GetOrderListItemResponse { GoodsName = item.GoodsName, Price = item.Price, Count = item.Count }), CreateTime = x.CreateTime }).ToList(); return(ApiResult.Ok(new PageQueryResonseBase <GetOrderListResponse>(result, Total))); }
/// <summary> /// 获取所有勾选行单据编号 /// </summary> /// <returns></returns> private DynamicObjectCollection CZ_GetSelectedRowsBillNo() { string filter = "FID in ("; string[] fids = CZ_GetSelectedRowsFID(); foreach (var fid in fids) { filter += fid + ","; } filter = filter.TrimEnd(',') + ")"; QueryBuilderParemeter param = new QueryBuilderParemeter() { FormId = this.View.GetFormId(), FilterClauseWihtKey = filter, SelectItems = SelectorItemInfo.CreateItems("FBILLNO"), }; return(QueryServiceHelper.GetDynamicObjectCollection(this.Context, param)); }
public async Task <ApiResult> GetRoleList(PageQueryInputBase input) { var query = (from role in dbContext.Role select new GetRoleListResponse() { RoleId = role.Id, RoleName = role.RoleName, SuperAdmin = role.SuperAdmin }).OrderBy(x => x.RoleName); var(Data, Total) = await QueryServiceHelper.PageQuery(query, input.Page, input.Limit); var roleIds = Data.Select(x => x.RoleId); var permissions = await(from rolepermission in dbContext.RolePermission where roleIds.Contains(rolepermission.RoleId) join permission in dbContext.Permission on rolepermission.PermissionId equals permission.Id select new { permission.Id, rolepermission.RoleId }).ToListAsync(); Data.ForEach(x => x.Permissions = permissions.Where(y => y.RoleId == x.RoleId).Select(y => y.Id).ToList()); return(ApiResult.Ok(new PageQueryResonseBase <GetRoleListResponse>(Data, Total))); }
public static string GetSchemeId(Context ctx, string filterSchemeFormId) { QueryBuilderParemeter paremeter2 = new QueryBuilderParemeter { FormId = "BOS_FilterScheme", SelectItems = SelectorItemInfo.CreateItems("FSCHEMEID") }; QueryBuilderParemeter para = paremeter2; para.FilterClauseWihtKey = string.Format("FFormID=@FFormID and FIsDefault='1' and FUserId = -1", new object[0]); List <SqlParam> paramList = new List <SqlParam> { new SqlParam("@FFormID", 0x10, filterSchemeFormId) }; DynamicObjectCollection objects = QueryServiceHelper.GetDynamicObjectCollection(ctx, para, paramList); string str = string.Empty; if ((objects != null) && (objects.Count != 0)) { return(objects[0]["FSCHEMEID"].ToString()); } return(str); }
public override void BarItemClick(BarItemClickEventArgs e) { base.BarItemClick(e); if (e.BarItemKey.Equals("tbSubmitBank")) { QueryBuilderParemeter queryParam = new QueryBuilderParemeter(); queryParam.FormId = this.View.BillBusinessInfo.GetForm().Id; queryParam.BusinessInfo = this.View.BillBusinessInfo; queryParam.SelectItems.Add(new SelectorItemInfo("F_PAEZ_SFYQZF")); List <long> billIds = (from p in this.ListView.SelectedRowsInfo select Convert.ToInt64(p.PrimaryKeyValue)).ToList(); queryParam.FilterClauseWihtKey = string.Format(" {0} IN ( {1} ) ", this.ListView.BillBusinessInfo.GetForm().PkFieldName, string.Join(",", billIds)); var rows = QueryServiceHelper.GetDynamicObjectCollection(this.Context, queryParam); List <Boolean> result = (from z in rows.Where(z => !Convert.ToBoolean(z["F_PAEZ_SFYQZF"])) select Convert.ToBoolean(z["F_PAEZ_SFYQZF"])).ToList(); if (result.Count() > 0) { throw new Exception("所选单据存在没有勾选支持银企付款参数,不允许通过银企进行付款!"); } } }
public override void CreateNewData(BizDataEventArgs e) { DynamicObjectType dynamicObjectType = this.Model.BillBusinessInfo.GetDynamicObjectType(); Entity entity = this.View.BusinessInfo.Entrys[1]; DynamicObjectType dt = entity.DynamicObjectType; DynamicObject dataEntity = new DynamicObject(dynamicObjectType) { ["CloseDate"] = DateTime.Now.Date }; DynamicObjectCollection objects = entity.DynamicProperty.GetValue <DynamicObjectCollection>(dataEntity); BusinessObject bizObject = new BusinessObject { Id = "STK_Account", PermissionControl = 1, SubSystemId = "STK" }; List <long> valList = PermissionServiceHelper.GetPermissionOrg(base.Context, bizObject, this.isOpenAccount ? "4cc4dea42de6441ebeb21c509358d73d" : "1046d14017fd45dbaff9b1fe4affe0c6"); if ((valList == null) || (valList.Count < 1)) { e.BizDataObject = dataEntity; } else { Dictionary <string, object> batchStockDate = StockServiceHelper.GetBatchStockDate(base.Context, valList); if ((batchStockDate == null) || (batchStockDate.Keys.Count < 1)) { e.BizDataObject = dataEntity; } else { valList.Clear(); foreach (string str in batchStockDate.Keys) { valList.Add(Convert.ToInt64(str)); } List <SelectorItemInfo> list2 = new List <SelectorItemInfo> { new SelectorItemInfo("FORGID"), new SelectorItemInfo("FName"), new SelectorItemInfo("FNumber"), new SelectorItemInfo("FDescription") }; string str2 = this.GetInFilter(" FORGID", valList) + $" AND FDOCUMENTSTATUS = 'C' AND FFORBIDSTATUS = 'A' AND (FORGFUNCTIONS like'%103%') AND EXISTS(SELECT 1 FROM T_BAS_SYSTEMPROFILE BSP WHERE BSP.FCATEGORY = 'STK' AND BSP.FORGID = FORGID AND BSP.FACCOUNTBOOKID = 0 AND BSP.FKEY = 'IsInvEndInitial' AND BSP.FVALUE = '1') {(this.isOpenAccount ? "AND EXISTS(SELECT 1 FROM T_STK_CLOSEPROFILE SCP WHERE SCP.FCATEGORY = 'STK' AND SCP.FORGID = FORGID )" : "")} "; QueryBuilderParemeter para = new QueryBuilderParemeter { FormId = "ORG_Organizations", SelectItems = list2, FilterClauseWihtKey = str2, OrderByClauseWihtKey = "", IsolationOrgList = null, RequiresDataPermission = true }; DynamicObjectCollection source = QueryServiceHelper.GetDynamicObjectCollection(base.Context, para, null); DataTable stockOrgAcctLastCloseDate = CommonServiceHelper.GetStockOrgAcctLastCloseDate(base.Context, ""); Dictionary <long, DateTime> dictionary2 = new Dictionary <long, DateTime>(); foreach (DataRow row in stockOrgAcctLastCloseDate.Rows) { if (!(row["FCLOSEDATE"] is DBNull) && !string.IsNullOrWhiteSpace(row["FCLOSEDATE"].ToString())) { dictionary2[Convert.ToInt64(row["FORGID"])] = Convert.ToDateTime(row["FCLOSEDATE"]); } } int num = 0; if ((source != null) && (source.Count <DynamicObject>() > 0)) { foreach (DynamicObject obj4 in source) { long key = Convert.ToInt64(obj4["FORGID"]); DynamicObject item = new DynamicObject(dt) { ["Check"] = true, ["StockOrgNo"] = obj4["FNumber"].ToString(), ["StockOrgName"] = ((obj4["FName"] == null) || string.IsNullOrEmpty(obj4["FName"].ToString())) ? "" : obj4["FName"].ToString(), ["StockOrgDesc"] = ((obj4["FDescription"] == null) || string.IsNullOrEmpty(obj4["FDescription"].ToString())) ? "" : obj4["FDescription"].ToString(), ["StockOrgID"] = obj4["FORGID"].ToString(), ["Result"] = "", ["RetFlag"] = false, ["Seq"] = num++ }; if (dictionary2.ContainsKey(key)) { item["LastCloseDate"] = dictionary2[key]; } objects.Add(item); } } e.BizDataObject = dataEntity; } } }
/// <summary> /// 目标单单据构建完毕,且已经创建好与源单的关联关系之后,触发此事件 /// </summary> /// <param name="e"></param> /// <remarks> /// 本事件的时机,刚好能够符合需求, /// 而AfterConvert事件,则在执行表单服务策略之后 /// </remarks> public override void OnAfterCreateLink(CreateLinkEventArgs e) { // 目标单单据体元数据 Entity entity = e.TargetBusinessInfo.GetEntity("FRefundBillSrcEntity"); Entity es = e.SourceBusinessInfo.GetEntity("FEntity"); // 读取已经生成的付款退款单 ExtendedDataEntity[] bills = e.TargetExtendedDataEntities.FindByEntityKey("FBillHead"); // 定义一个集合,存储新拆分出来的单据体行 List <ExtendedDataEntity> newRows = new List <ExtendedDataEntity>(); // 对目标单据进行循环 foreach (var bill in bills) { // 取单据体集合 DynamicObjectCollection rowObjs = entity.DynamicProperty.GetValue(bill.DataEntity) as DynamicObjectCollection; // 对单据体进行循环:从后往前循环,新拆分的行,避开循环 int rowCount = rowObjs.Count; int newRowCount = 1; for (int i = rowCount - 1; i >= 0; i--) { DynamicObject rowObj = rowObjs[i]; double F_JNRoadAmount = Convert.ToDouble(rowObj["F_JNRoadAmount"]); double PLANPAYAMOUNT = Convert.ToDouble(rowObj["PLANREFUNDAMOUNT"]); double AFTTAXTOTALAMOUNT = Convert.ToDouble(rowObj["AFTTAXTOTALAMOUNT"]); double F_JNTAXAmount = Convert.ToDouble(rowObj["F_JNTAXAmount"]); DynamicObject newRowObj = null; rowObj["PLANREFUNDAMOUNT"] = PLANPAYAMOUNT - F_JNRoadAmount - F_JNTAXAmount; rowObj["AFTTAXTOTALAMOUNT"] = AFTTAXTOTALAMOUNT - F_JNRoadAmount - F_JNTAXAmount; rowObj["REALREFUNDAMOUNT"] = rowObj["PLANREFUNDAMOUNT"]; rowObj["F_JNRoadAmount"] = 0; // 根据规则进行拆分: // 示例代码略过拆分规则,强制对每行进行拆分 // 通过复制的方式,产生新行:确保字段值、关联关系与原行一致 if (F_JNRoadAmount > 0) { var SRCCOSTID = rowObj["FSRCCOSTID"] as DynamicObject; DynamicObject SRCCOST = (DynamicObject)SRCCOSTID.Clone(true, false); newRowObj = (DynamicObject)rowObj.Clone(false, true); //DynamicObject newRowObj = rowObj.Clone(; //DynamicObject newRowObj = (DynamicObject)rowObj.Clone(true, true); newRowObj["PLANREFUNDAMOUNT"] = F_JNRoadAmount; newRowObj["AFTTAXTOTALAMOUNT"] = F_JNRoadAmount; newRowObj["F_JNRoadAmount"] = 0; newRowObj["REALREFUNDAMOUNT"] = F_JNRoadAmount; //newRowObj["Seq"] = i + 1; QueryBuilderParemeter queryParam = new QueryBuilderParemeter(); queryParam.FormId = "BD_Expense"; queryParam.SelectItems.Add(new SelectorItemInfo("FMasterId")); queryParam.SelectItems.Add(new SelectorItemInfo("FNumber")); queryParam.SelectItems.Add(new SelectorItemInfo("FName")); queryParam.FilterClauseWihtKey = string.Format(" FNumber = '{0}' ", "FYXM23"); var expense = QueryServiceHelper.GetDynamicObjectCollection(this.Context, queryParam); newRowObj["FSRCCOSTID_Id"] = expense[0]["FMasterId"]; SRCCOST["Id"] = expense[0]["FMasterId"]; SRCCOST["msterId"] = expense[0]["FMasterId"]; SRCCOST["Name"] = expense[0]["FName"]; SRCCOST["Number"] = expense[0]["FNumber"]; newRowObj["FSRCCOSTID"] = SRCCOST; // 把新行,插入到单据中,排在当前行之后 rowObjs.Insert(i + 1, newRowObj); //newRowObj["SRCCOSTID_Id"] = 131120; } if (F_JNTAXAmount > 0) { var SRCCOSTID = rowObj["FSRCCOSTID"] as DynamicObject; DynamicObject SRCCOST = (DynamicObject)SRCCOSTID.Clone(true, false); newRowObj = (DynamicObject)rowObj.Clone(false, true); //DynamicObject newRowObj = rowObj.Clone(; //DynamicObject newRowObj = (DynamicObject)rowObj.Clone(true, true); newRowObj["PLANREFUNDAMOUNT"] = F_JNTAXAmount; newRowObj["AFTTAXTOTALAMOUNT"] = F_JNTAXAmount; newRowObj["F_JNRoadAmount"] = 0; newRowObj["REALREFUNDAMOUNT"] = F_JNTAXAmount; //newRowObj["Seq"] = i + 1; QueryBuilderParemeter queryParam = new QueryBuilderParemeter(); queryParam.FormId = "BD_Expense"; queryParam.SelectItems.Add(new SelectorItemInfo("FMasterId")); queryParam.SelectItems.Add(new SelectorItemInfo("FNumber")); queryParam.SelectItems.Add(new SelectorItemInfo("FName")); queryParam.FilterClauseWihtKey = string.Format(" FNumber = '{0}' ", "FYXM98"); var expense = QueryServiceHelper.GetDynamicObjectCollection(this.Context, queryParam); newRowObj["FSRCCOSTID_Id"] = expense[0]["FMasterId"]; SRCCOST["Id"] = expense[0]["FMasterId"]; SRCCOST["msterId"] = expense[0]["FMasterId"]; SRCCOST["Name"] = expense[0]["FName"]; SRCCOST["Number"] = expense[0]["FNumber"]; newRowObj["FSRCCOSTID"] = SRCCOST; // 把新行,插入到单据中,排在当前行之后 rowObjs.Insert(i + 1, newRowObj); //newRowObj["SRCCOSTID_Id"] = 131120; } if (newRowObj != null) { // 为新行创建一个ExtendedDataEntity对象,表单服务策略需要此对象 ExtendedDataEntity newRow = new ExtendedDataEntity( newRowObj, bill.DataEntityIndex, rowCount + newRowCount); newRows.Add(newRow); newRowCount++; } } } // 把新拆分出来的单据体行,加入到下推结果中 // 特别说明:如果去掉此语句,新拆分的行,不会执行表单服务策略 e.TargetExtendedDataEntities.AddExtendedDataEntities("FEntity", newRows.ToArray()); }