动态设置单据体中辅助属性的位置以及辅助属性维度字段内部的位置


using Kingdee.BOS.Core.Metadata.ControlElement;
using Kingdee.BOS.BusinessEntity.BusinessFlow;
using Kingdee.BOS.Orm.Metadata.DataEntity.CLR;
using Kingdee.BOS.Orm.Metadata.DataEntity;
using Kingdee.BOS.Core.Bill;
using Kingdee.BOS.Core.DynamicForm;
using Kingdee.BOS.Web.Core;


public
override void OnSetLayoutInfo(SetLayoutInfoArgs e) { base.OnSetLayoutInfo(e); BillOpenParameter billOpenParameter = this.View.OpenParameter; long billID = Convert.ToInt64(billOpenParameter.PkValue);//单据内码 string FBILLTYPEID = "";//单据类型内码 if (billID == 0) { FBILLTYPEID = billOpenParameter.DefaultBillTypeId.GetStringVTR(); } else//已存在单据或复制新增单据 { string sql = string.Format("select FBILLTYPEID from JN_T_SampleOrder where fid = '{0}'", billID); DynamicObjectCollection rows = DBUtils.ExecuteDynamicObject(this.Context, sql); if (rows.Count > 0) { FBILLTYPEID = rows[0]["FBILLTYPEID"].GetStringVTR(); } } if (FBILLTYPEID == "5b826709b21e57")//非常规 { var layoutInfo = this.View.LayoutInfo; var relatedFlexGroupFieldAppearance = layoutInfo.GetFieldAppearance("F_VTR_AuxPropId") as RelatedFlexGroupFieldAppearance; relatedFlexGroupFieldAppearance.Tabindex = 0; //修改辅助属性的位置 var appces = relatedFlexGroupFieldAppearance.RelateFlexLayoutInfo.GetFieldAppearances(); int i = appces.Count; foreach (var item in appces) { item.Tabindex = i;//修改辅助属性维度字段的位置 i--; } var entryApp = layoutInfo.GetEntityAppearance("FEntity"); entryApp.Layoutinfo.Sort();//对表格中的字段,重新按照TabIndex进行排序 e.LayoutInfo = layoutInfo; e.BillLayoutInfo = layoutInfo; var grid = this.View.GetControl("FEntity") as EntryGrid; //grid.SetCustomPropertyValue("AllowLayoutSetting", false); grid.CreateDyanmicList(entryApp); this.View.SendDynamicFormAction(this.View); } else { var layoutInfo = this.View.LayoutInfo; var relatedFlexGroupFieldAppearance = layoutInfo.GetFieldAppearance("F_VTR_AuxPropId") as RelatedFlexGroupFieldAppearance; relatedFlexGroupFieldAppearance.Tabindex = 4;//恢复辅助属性的位置 var appces = relatedFlexGroupFieldAppearance.RelateFlexLayoutInfo.GetFieldAppearances(); int i = 0; foreach (var item in appces) { item.Tabindex = i;//恢复辅助属性维度字段的位置 i++; } var entryApp = layoutInfo.GetEntityAppearance("FEntity"); entryApp.Layoutinfo.Sort();//对表格中的字段,重新按照TabIndex进行排序 e.LayoutInfo = layoutInfo; e.BillLayoutInfo = layoutInfo; var grid = this.View.GetControl("FEntity") as EntryGrid; //grid.SetCustomPropertyValue("AllowLayoutSetting", false); grid.CreateDyanmicList(entryApp); this.View.SendDynamicFormAction(this.View); } }

 

posted @ 2025-07-24 16:04  木古白水  阅读(13)  评论(0)    收藏  举报