常用知识点
金蝶云社区-勤劳的小蜜蜂
勤劳的小蜜蜂
5人赞赏了该文章 1,934次浏览 未经作者许可,禁止转载编辑于2019年07月06日 14:47:11

1:插件继承体系[table]
[tr][td=26%] 领域类型 [td=39%]基类[td=34%]命名参考
[tr][td=26%] 动态表单 – 维护 [td=39%]AbstractDynamicFormPlugIn[td=34%]ExpressionEdit
[tr][td=26%] 业务单据 – 维护 [td=39%]AbstractBillPlugIn[td=34%]PurchaseOrderEdit
[tr][td=26%] 业务单据 – 列表 [td=39%]AbstractListPlugIn[td=34%]PurchaseOrderList
[tr][td=26%] 基础资料 – 维护 [td=39%]AbstractBasePlugIn[td=34%]MaterialEdit
[tr][td=26%] 基础资料 – 列表 [td=39%]AbstractListPlugIn[td=34%]MaterialList
2:获取单据相关信息
(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
3:当前界面的数据保存,直接调用保存操作
Kingdee.BOS.ServiceHelper.BusinessDataServiceHelper.Save(this.Context, this.View.BusinessInfo, this.View.Model.DataObject);

4:检验字符串函数
ObjectUtils.IsNullOrEmptyOrWhiteSpace
IsNullOrWhiteSpace

5:利用代码弹出提示框
this.View.ShowMessage("详细信息", MessageBoxOptions.YesNo, ret =>
{

if (ret == MessageBoxResult.No)
{
e.Cancel = true;
return;
}
}, string.Format("物料编码为:{0}的物料存在不同的报关项号,是否继续?", string.Join(",", list)), MessageBoxType.Notice);

6:通过主键获取对象
FormMetadata formMetadata = MetaDataServiceHelper.Load(this.Context, "BD_MATERIAL") as FormMetadata;
DynamicObject dynamicObject = BusinessDataServiceHelper.LoadSingle(
this.Context,
id,
formMetadata .BusinessInfo.GetDynamicObjectType());

7:获取表单字段的值
DynamicObject FMaterial = (DynamicObject)this.View.Model.GetValue("FMaterialId");FMaterialId为字段标识,本字段是一个基础资料字段DynamicObject FMaterial = (DynamicObject)this.View.Model.GetValue("FMaterialId",e.Row);e.ROW为单据体行号

8:设置表单字段的值
1:给分录赋值 this.View.Model.SetValue("FEntryNote", FNOTE,rowIndex); 2:给单据头赋值 this.View.Model.SetValue("FEntryNote",FNOTE);9:数据库执行语句 DBUtils.Execute(this.Context, updateSql); var mas = DBUtils.ExecuteDynamicObject(this.Context, sql);10:新增、删除单据体行 this.View.Model.DeleteEntryRow("FSONEntity", i);
this.View.Model.CreateNewEntryRow("FSONEntity");11:刷新操作this.View.UpdateView("FieldKey")刷新某个字段this.View.InvokeFormOperation(Kingdee.BOS.Core.DynamicForm.FormOperationEnum.Refresh)//刷新整单12:代码锁定单元格this.View.GetFieldEditor("FBaseUnitId", 0).SetEnabled("", false);this.View.GetFieldEditor("FBarCodeAmount", 0).Enabled = false;13:常用服务端操作https://vip.kingdee.com/article/28511820313774469514:设置焦点行、获取焦点行//设置父窗体的焦点行 this.View.ParentFormView.SetEntityFocusRow("FEntity", selectedIndexsR[0]);//获取当前分录焦点行FocusRowEntryGrid entryGrid = this.View.GetControl("FEntity");int rowIndex = entryGrid.GetFocusRowIndex();15:获取单据体每一行的数据包 //获取父窗体选中行 int[] selectedIndexsR = this.View.ParentFormView.GetControl("FEntity").GetSelectedRows(); Entity entity = this.View.ParentFormView.Model.BillBusinessInfo.GetEntity("FEntity"); foreach (int i in selectedIndexsR) { DynamicObject rowObj = this.View.ParentFormView.Model.GetEntityDataObject(entity, i) as DynamicObject; }16:抛出异常throw new KDException("", "已经产生条码不能反审核");17:仓位赋值(1)表单插件 //获取组织 string OrGID = Convert.ToString(this.Context.CurrentOrganizationInfo.ID); RelatedFlexGroupField stockLocFld = this.View.BillBusinessInfo.GetField("FStockLocID") as RelatedFlexGroupField; if ("100498".Equals(OrGID)) { FSTOCKID = "1317258"; stockLocld = 104431; } //仓库仓位赋值 this.View.Model.SetValue("FStockID", FSTOCKID, i); DynamicObject[] stockLoc = BusinessDataServiceHelper.LoadFromCache(this.Context, new object[] { stockLocld }, stockLocFld.RefFormDynamicObjectType); stockLocFld.DynamicProperty.SetValue(obj, stockLoc[0]); stockLocFld.RefIDDynamicProperty.SetValue(obj, stockLocld); this.View.UpdateView("FStockLocID", i); (2)操作插件、列表插件 直接后台更新仓位ID18:字符串、集合去重 BillNo = String.Join(";", BillNo.Split(';').Distinct());PrimaryKeyValues.Distinct()19:代码打开窗口状态BillShowParameter showParam = new BillShowParameter();
showParam.FormId = "SAL_SaleOrder";
showParam.PageId = Guid.NewGuid().ToString();
showParam.OpenStyle.ShowType = ShowType.MainNewTabPage;
20:列表插件获取单据体
ListSelectedRowCollection rows = this.ListView.SelectedRowsInfo;
List pkIds = new List();
foreach (var row in rows)
{
pkIds.Add(row.PrimaryKeyValue);
}
FormMetadata metadata = MetaDataServiceHelper.Load(this.Context, "SAL_DELIVERYNOTICE") as FormMetadata;
DynamicObject[] dynamicObjects = BusinessDataServiceHelper.Load(this.Context, pkIds.ToArray(), metadata.BusinessInfo.GetDynamicObjectType());21:获取当前时间,确定当前时间是周几// 获取当前时间 DateTime dateTime=Kingdee.BOS.ServiceHelper.TimeServiceHelper.GetSystemDateTime(this.Context); //获取单据日期时间 string times = (string)Convert.ToDateTime(this.View.Model.GetValue("FDate")).ToString("yyyy-MM-dd", DateTimeFormatInfo.InvariantInfo); //获取当前日期是星期几 string Text = System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.GetDayName(DateTime.Now.DayOfWeek); DateTime time=Convert.ToDateTime((times+" 17:30 ")); if (dateTime>= time)//超过五点半 { if ("星期六".Equals(Text)) { this.View.Model.SetValue("FDate", Convert.ToDateTime(this.View.Model.GetValue("FDate")).AddDays(2)); } else { this.View.ShowMessage("您做单的时间超过下午五点半了,保存后系统将把做单日期往后推一天"); this.View.Model.SetValue("FDate", Convert.ToDateTime(this.View.Model.GetValue("FDate")).AddDays(1)); }
}
22:获取当前用户信息[list=1]
[*]?this.Context.UserId
[*]16394
[*]?this.Context.UserName
[*]"Administrator"
[*]?this.Context.UserToken
[*]"a9cd8152-8923-487d-bf91-77297bfd8fde"
[*]?this.Context.LoginName
[*]"Administrator"
[*]?this.Context.CustomName
[*]"金蝶软件"
[*]?this.Context.ComputerName
[*]"SmartSoftCs"
[*]?this.Context.ClientInfo.IpAddress
[*]"192.168.0.105"
[*]?this.Context.ClientInfo.MacAddress
[*]"00:24:2B:59:EE:C5"
[*]?this.Context.ClientInfo.Version
[*]?this.Context.ClientInfo.ClientType
[/list]23:辅助属性相关表

select * from T_BD_FLEXSITEMDETAILV where fid in ('102122','100149')
select * from T_BD_FLEXAUXPROPERTYselect * from T_BD_FLEXAUXPROPERTY_LSELECT * FROM T_BD_MaterialAuxPty

您的鼓励与嘉奖将成为创作者们前进的动力,如果觉得本文还不错,可以给予作者创作打赏哦!

请选择打赏金币数 *

10金币20金币30金币40金币50金币60金币
可用金币: 0