笔记二星空开发常用方法原创
15人赞赏了该文章
66次浏览
未经作者许可,禁止转载编辑于2024年12月23日 20:22:07
近期整理个人'星空开发常用方法',特此留痕,如可借鉴记得点赞收藏(比心比心)
1:插件继承体系 领域类型 基类 命名参考 动态表单 – 维护 bstractDynamicFormPlugIn ExpressionEdit 业务单据 – 维护 AbstractBillPlugIn PurchaseOrderEdit 业务单据 – 列表 AbstractListPlugIn PurchaseOrderList 基础资料 – 维护 AbstractBasePlugIn MaterialEdit 基础资料 – 列表 AbstractListPlugIn MaterialList 2:按住Ctrl+Alt+Shift+M(4个键)开启性能监控工具栏。 3:获取单据相关信息 (1)获取当前行号 int rowIndex = this.Model.GetEntryCurrentRowIndex("FEntity"); FEntity为单据体标识 (2)获取单据体集合 Entity entity = this.View.BillBusinessInfo.GetEntity("FSaleOrderEntry"); FSaleOrderEntry为单据体标识 DynamicObjectCollection entrys = this.Model.GetEntityDataObject(entity); (3)操作插件获取选中行 // 扩展方法,需要 using Kingdee.BOS.Core.DynamicForm var selectedRows = this.Option.GetBillOperationSelectedRows(); (4)获取选中行 int[] selectedIndexsR = this.View.GetControl("FSaleOrderEntry").GetSelectedRows(); (5)获取选中行数据 //当前选中行行号 int[] selectedIndexsR = this.View.GetControl("FSaleOrderEntry").GetSelectedRows(); //单据体数据 DynamicObjectCollection selectedRowsDy = this.Model.DataObject["SaleOrderEntry"] as DynamicObjectCollection; //选中行数据 DynamicObject selectedRow = selectedRowsDy[selectedIndexsR[0]]; (6)获取单据内码 long billNo = Convert.ToInt64(this.View.Model.GetPKValue());//获取当前单据编号内码 (7)获取单据分录内码 int row = this.Model.GetEntryCurrentRowIndex("FSubEntity"); Entity entiry = this.View.Model.BillBusinessInfo.GetEntity("FSubEntity"); object pkValue = this.View.Model.GetEntryPKValue(entiry.Key, row); (8)在单据列表界面,使用如下语句获取当前选择行的单据内码 this.ListView.CurrentSelectedRowInfo.PrimaryKeyValue 4:当前界面的数据保存,直接调用保存操作 Kingdee.BOS.ServiceHelper.BusinessDataServiceHelper.Save(this.Context, this.View.BusinessInfo, this.View.Model.DataObject); 5:检验字符串函数 ObjectUtils.IsNullOrEmptyOrWhiteSpace IsNullOrWhiteSpace 6:利用代码弹出提示框 this.View.ShowMessage("详细信息", MessageBoxOptions.YesNo, ret => { if (ret == MessageBoxResult.No) { e.Cancel = true; return; } }, string.Format("物料编码为:{0}的物料存在不同的报关项号,是否继续?", string.Join(",", list)), MessageBoxType.Notice); 7:通过主键获取对象 FormMetadata formMetadata = MetaDataServiceHelper.Load(this.Context, "BD_MATERIAL") as FormMetadata; DynamicObject dynamicObject = BusinessDataServiceHelper.LoadSingle( this.Context, id, formMetadata .BusinessInfo.GetDynamicObjectType()); 8:获取表单字段的值 DynamicObject FMaterial = (DynamicObject)this.View.Model.GetValue("FMaterialId");FMaterialId为字段标识,本字段是一个基础资料字段DynamicObject FMaterial = (DynamicObject)this.View.Model.GetValue("FMaterialId",e.Row);e.ROW为单据体行号 9:设置表单字段的值 1:给分录赋值 this.View.Model.SetValue("FEntryNote", FNOTE,rowIndex); 2:给单据头赋值 this.View.Model.SetValue("FEntryNote",FNOTE); 10:数据库执行语句 DBUtils.Execute(this.Context, updateSql); var mas = DBUtils.ExecuteDynamicObject(this.Context, sql); 11:新增、删除单据体行 this.View.Model.DeleteEntryRow("FSONEntity", i); this.View.Model.CreateNewEntryRow("FSONEntity"); 12:刷新操作 this.View.UpdateView("FieldKey")刷新某个字段this.View.InvokeFormOperation(Kingdee.BOS.Core.DynamicForm.FormOperationEnum.Refresh)//刷新整单 13:代码锁定单元格 this.View.GetFieldEditor("FBaseUnitId", 0).SetEnabled("", false); this.View.GetFieldEditor("FBarCodeAmount", 0).Enabled = false;
赞 15
15人点赞
还没有人点赞,快来当第一个点赞的人吧!
打赏
1人打赏
还没有人打赏,快来当第一个打赏的人吧!
推荐阅读