版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、插件开发应用案例介绍 收货单提供以下功能:增加下拉列表,显示单据头的所有字段;在分录菜单上增加库存查询(FQuerylnventory)菜单项;3点击库存查询时,查询分录上当前焦点所在物料的库存(STK_InvSumQuery); STK_Inventory4.查询库存时按组织隔离,只查询当前组织的库存;5当前分录物料F8时,显示所有组织的物料;暂存时清空单据类型的值;物料基础资料增加字段有效期至(F_MCY_ExpiryDate); 时只显示有效期今天的物料;保存判断物料的库存,如果100则提示“库存100,是否入库”;保存后锁定“收料部门”、“收料员”;保存后自动记录收料日志(MCY_s
2、tk_Receip tLog);操作步骤:增加下拉列表,显示单据头的所有字段;新建(打开)收货单插件工程();重载Onlnitialize方法,定义ListEnumItem用于存储下拉列表枚举值;通过方法获取所有字段;通过方法获取界面上的下拉列表控件;SetComboItems 绑定值;f)代码如下:C#public override void OnInitialize(InitializeEventArgs e) (e);ListEnumItem list = new ListEnumItem();foreach (Field field inEnumItem item = new Enum
3、Item (); (item):FCombo).Se tCombo Ite ms(lis t);在分录菜单上增加库存查询(tbQuerylnventory)菜单项;运行IDE,选择单据体-菜单集合,新增菜单:b)保存;点击库存查询时,查询分录上当前焦点所在物料的库存;打开插件工程,重载方法En tryBarI temClick判断 Bar It emKey=库存查询(t bQueryInven to ry)取当前分录行设置ListShowParameter参数,打开表单这里介绍2种获取当前分录字段数据的方法:TryGe tEn tryCurren tRow :获取单据体当前行,返回是否取到值以
4、及行数据和行号;另外一种方法:先获取单据体当前行号,再取指定行数据;2种方法没什么区别。示例代码如下:C#override void EntryBarItemClick(BarItemClickEventArgs e)(e);if =ShowQueryInven tory();private void ShowQuerylnventory() DynamicObject row;int rowindex;调试状态下,可以屏蔽代码看看过滤条件的效果。注意:ListFilterParameter的Filter属性设置的字段是用IDE中的字段标识。查询库存时按组织隔离,只查询当前组织的库存:增加过滤
5、条件,组织=当前组织= ( FORGID =0 ,);5当前分录物料F8时,显示所有组织的物料;重载 AuthPermissionBeforeF7Select 方法,设置参数 IsIsolationOrg = false;同样,如果需要F8时控制只显示当前组织的物料,该参数设置为true。注意:在BOS系统中,默认是按组织隔离的,即非共享基础资料,在F8时都是只显示当前组织的 物料。时只显示审核日期2014-03-22的供应商;重载 BeforeF7Select 事件;设置列表过滤参数ListFilterParameter的属性Filter;C#public override void Bef
6、oreF7Select(BeforeF7SelectEventArgs e)(e);if = FSupplierldl)string filter = FCreateDate 2014-03-20if=filter;elseAND;保存判断物料的库存,如果100则提示“库存100,是否入库”;新建收货单服务插件工程;定义保存服务类 SaveServicePlugln,继承自 AbstractOperationServicePlugln;重载 OnAddValidators 方法;代码示例如下:C#public override void OnAddValidators(AddValidator
7、sEventArgs e)(e);SaveValidator saveValidator = new SaveValidator();=FBillHead;d)定义保存校验类 SaveValidator,继承自 AbstractValidator;e)重载方法:Validate:i.获取单据体分录数据,取到物料Id;ii查询物料库存;检查库存是否100;构造校验结果信息;代码示例:C#public override void Validate(ExtendedDataEntity dataEntities, ValidateContext validateContext, ctx)if (da
8、taEntities = null |= 0)return;Dictionarylong, decimal dictErrMaterialld = new Dictionarylong, decimal。; FMATERIALID) group by FMATERIALID ;SqlParam param = new SqlParam (FMATERIALID, , ().ToArray();using (IDataReader dr = , sql, param)while ()decimal qty = (drFQTY);if (qty 100)(drFMATERIALID), qty);
9、foreach (ExtendedDataEntity entityObj in dataEntities)DynamicObjectCollection collection =(DynamicObjectCollection)entityObjFEntity;foreach (DynamicObject rowObj in collection)if (long)rowObjFBase_Id)ValidationErrorlnfo errinfo = newValidationErrorInfo(FMATERIALID, Id), , (rowObjId), SaveValidator,库
10、存数 量大于100,校验失败,;(en tity Obj, errinfo);f)重载方法:Validate:保存后锁定“收料部门”、“收料员”;锁定字段的方法:;该锁定与事务无关,只要在客户端保存后事件(Aft erBarI temClick )处理即可;“收料部门”、“收料员”的key可以在IDE设计器中拷贝;代码如下:C#public override void AfterBarItemClick(AfterBarItemClickEventArgs e)(e);if = tbSave)FBase1, tr ue);FBase2, t rue);字段名称类型说明KDV ID日志ID字段名
11、称类型说明KDV ID日志IDint自增长KDV UserID操作用户KDV Da te操作时间KDV Con tent 日志内容IntKDV UserID操作用户KDV Da te操作时间KDV Con tent 日志内容Int关联用户表IDNvarchar(2000)保存有2种方法:方法1:在IDE中定义收料日志基础资料;打开收货单服务插件保存服务类SaveServicePlugIn;根据收料日志基础资料的元数据定义,创建动态实体对象;设置对象属性值;调用BusinessDataService服务的保存方法保存动态实体对象;代码如下:C#public override void After
12、ExecuteOperationTransaction(AfterExecuteOperationTransaction e)(e);MetaDataService metaService = new MetaDataService();FormMetadata formMetaData = (FormMetadata),1823871d-b9cf-4d8b-93af-39c0c37011a5);DynamicObjectType dt =DynamicObject obj = new DynamicObject(dt);KDV_UserID_Id.Se tValueFas t( obj,KD
13、V_Con ten t.Se tValueFas t(obj,保存);ISaveService saveService = ();,new DynamicObject obj );方法2:a)自定义收料日志表;b)获取日志的自增长(序列)值;c)执行 insert;代码如下:C#publicoverride void AfterExecuteOperationTransaction(C#publicoverride void AfterExecuteOperationTransaction(AfterExecuteOperationTransactione)(e);SequenceReader sequence = new SequenceReader;int ids = (in t )(KDV_s tk_Receip tLog, 1);int id = ids0;string sql = insert into KDV_stk_ReceiptLog(FID, KDV_UserID, KDV_Conten
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 昆明医科大学海源学院《应急管理信息系统》2023-2024学年第一学期期末试卷
- 江西财经职业学院《飞机结构基础》2023-2024学年第一学期期末试卷
- 湖南三一工业职业技术学院《新课程理念与地理课程改革》2023-2024学年第一学期期末试卷
- 湖南安全技术职业学院《有限元方法》2023-2024学年第一学期期末试卷
- 【物理】《流体压强与流速的关系》(教学设计)-2024-2025学年人教版(2024)初中物理八年级下册
- 高考物理总复习《恒定电流》专项测试卷含答案
- 重庆工信职业学院《广告策划与设计》2023-2024学年第一学期期末试卷
- 郑州电力职业技术学院《应用技术开发》2023-2024学年第一学期期末试卷
- 中国民用航空飞行学院《信息系统审计》2023-2024学年第一学期期末试卷
- 郑州美术学院《建筑设备自动化课程设计》2023-2024学年第一学期期末试卷
- XX小学体育特色建设三年发展规划
- 高考专题复习:《史记 孙子吴起列传》分析
- 风电工程需要编写的专项施工方案及危大工程目录
- 二级综合医院评审标准实施细则
- 新大《新疆地质概论》教案第6章 矿产资源
- EGD杀生剂剂化学品安全技术说明(MSDS)zj
- GB/T 12229-2005通用阀门碳素钢铸件技术条件
- 超分子化学-第三章 阴离子的络合主体
- 控制变量法教学课件
- 血压计保养记录表
- 食品的售后服务承诺书范本范文(通用3篇)
评论
0/150
提交评论