Form中获取数据源及扩展方法中获取变量
1.通过FormControl控件获取Form中的数据源
获取数据源的主要方法:Form formRun= sender.FormRun(); fromRun.datasourse('表名');
可参考以下例子中的代码
[FormControlEventHandler(formControlStr(BOMTable, BOMVersion_ItemId), FormControlEventType::Modified)]public static void BOMVersion_ItemId_OnModified(FormControl sender, FormControlEventArgs e){BOMTable bomTable;Name itemName;FormRun formRun = sender.formRun(); FormObjectSet dateSource = formRun.dataSource(); BOMVersion bomVersion = dateSource.cursor();FormDataSource bomTable_ds = formRun.dataSource('BOMTable');//FormDataSource bomTable_ds = formRun.dataSource(tableNum(BOMTable));//界面报错:未将对象引用设置到对象的实例 bomTable = bomVersion.bomTable();itemName = InventTable::find(bomVersion.ItemId).itemName();//更新物料清单的名称 ttsbegin;bomTable.selectForUpdate(true);bomTable.Name = itemName;bomTable.doUpdate();ttscommit;bomTable_ds.reread(); //数据库取,这里从数据库取到刷新就可以bomTable_ds.research(true); //数据源取}
2.根据控件FormControl,找到其他的控件
[FormControlEventHandler(formControlStr(EcoResProductCreate, ItemCategroyType), FormControlEventType::Modified)]public static void ItemCategroyType_OnModified(FormControl sender, FormControlEventArgs e){ItemCategroyType itemCategroyType;FormComboBoxControl comboxCategroyType;FormRun element = sender.formRun();//获取到FormRun FormStringControl strcontrol;comboxCategroyType = element.design().controlName(formControlStr(EcoResProductCreate, ItemCategroyType)) as FormComboBoxControl;itemCategroyType = comboxCategroyType.selection();//获取选到的值 strcontrol = element.design().controlName(formControlStr(EcoResProductCreate, ItemCategoryName)) as FormStringControl;//其他控件strcontrol.mandatory(true);strcontrol.text("");strcontrol = element.design().controlName(formControlStr(EcoResProductCreate, ItemBrandID)) as FormStringControl;strcontrol.mandatory(true);strcontrol.allowEdit(true);strcontrol.text("");strcontrol = element.design().controlName(formControlStr(EcoResProductCreate, ProductLineID)) as FormStringControl;strcontrol.mandatory(true); }
3.根据Form中某个数据源的触发事件获取FormRun
fromRun.datasourse('表名');
[PostHandlerFor(formStr(EcoResProductCreate), formMethodStr(EcoResProductCreate, write))]public static void EcoResProductCreate_Post_write(XppPrePostArgs args){FormRun element = args.getThis();}
4.扩展表方法中获取当前表中记录 args.getThis()
[PostHandlerFor(tableStr(CustTable), tableMethodStr(CustTable, insert))]public static void CustTable_Post_insert(XppPrePostArgs args){ CustTable custTable;custTable = args.getThis();}
5.扩展的类方法中,获取源方法中的变量:this.变量名
protected void updateInventory(InventMovement _inventMovement){InventSerial inventSerial;InventDim inventDim;next updateInventory(_inventMovement);if(this.custPackingSlipTrans)//获取到源方法的表变量名 {inventDim = this.custPackingSlipTrans.inventDim();}}
6.Form数据源中的触发事件中获取当前记录:sender.cursor();
[ExtensionOf(formstr(OMOperatingUnit))] final class OMOperatingUnit_Extension { [FormDataSourceEventHandler(formDataSourceStr(OMOperatingUnit, OMOperatingUnit), FormDataSourceEventType::Activated)]public static void OMOperatingUnit_OnActivated(FormDataSource sender, FormDataSourceEventArgs e){ OMOperatingUnit operatingUnit = sender.cursor();//获取当前记录FormControl deptCategoryControl = sender.formRun().design().controlName(formControlStr(OMOperatingUnit, OMOperatingUnit_DeptCategoryId));deptCategoryControl.visible(operatingUnit.OMOperatingUnitType == OMOperatingUnitType::OMDepartment);}}
7.事件
[PostHandlerFor(classStr(EcoResProductReleaseManager), methodStr(EcoResProductReleaseManager, release))]public static void EcoResProductReleaseManager_Post_release(XppPrePostArgs args){EcoResProductReleaseManager releaseMgr;//获取类 releaseMgr = args.getThis();//类中方法调用 ItemId itemId = releaseMgr.parmItemId();//获取当前方法的参数 boolean itemCreation = args.getArg("_isCreation");}
8.Form下的方法
[PostHandlerFor(formStr(VendEditInvoice), formMethodStr(VendEditInvoice, run))]public static void VendEditInvoice_Post_run(XppPrePostArgs args){PurchAgreementHeader agreementHeader;PurchTable purchTable;FormRun formRun = args.getThis();VendInvoiceInfoTable vendInvoiceInfoTable;vendInvoiceInfoTable = formRun.dataSource(formDataSourceStr(VendEditInvoice ,VendInvoiceInfoTable )).cursor();purchTable = vendInvoiceInfoTable.purchTable();}
9.Form中控制按钮的可编辑性:
[ ExtensionOf(classstr(LedgerJournalFormTrans_Payment)) ] //付款日记账名称需要验证XX,则生成付款按钮不可用--sunny add final class LedgerJournalFormTrans_Payment_Extension {public void enableButtonsActive(){FormFunctionButtonControl ctrlCreatePaymentButton;LedgerJournalName ledgerJournalName;LedgerJournalTable ledgerJournalTable = ledgerJournalEngine.parmLedgerJournalTable();next enableButtonsActive();switch (ledgerJournalTable.JournalType){case LedgerJournalType::Payment:ledgerJournalName = LedgerJournalName::find(LedgerJournalTable.JournalName);if(ledgerJournalName.ApproveStatus == NoYes::Yes && LedgerJournalTable.ApproveStatus != ApproveType::Approve){ ctrlCreatePaymentButton = this.ctrlCreatePaymentButton;ctrlCreatePaymentButton.enabled(false);} }}}
也可参考这位大师的分享: https://blog.csdn.net/mahailiang/article/details/80080209
转载于:https://www.cnblogs.com/sunny-technology/p/9318438.html
Form中获取数据源及扩展方法中获取变量相关推荐
- java中string范围_java中long parseLong(String s)方法中string(十进制数字)的范围?
java中long parseLong(String s)方法中string(十进制数字)的范围? 來源:互聯網 2009-06-19 05:05:28 評論 分類: 電腦/網絡 >> ...
- ArcEngine中IFeatureClass.Search(filter, Recycling)方法中Recycling参数的理解
转自 ArcEngine中IFeatureClass.Search(filter, Recycling)方法中Recycling参数的理解 ArcGIS Engine中总调用IFeatureClass ...
- Spring中的AOP在Advice方法中获取目标方法的参
参考:http://my.oschina.net/itblog/blog/211693 http://christang.iteye.com/blog/2037919 http://blog.csdn ...
- Spring中的AOP——在Advice方法中获取目标方法的参数(转)
获取目标方法的信息 访问目标方法最简单的做法是定义增强处理方法时,将第一个参数定义为JoinPoint类型,当该增强处理方法被调用时,该JoinPoint参数就代表了织入增强处理的连接点.JoinPo ...
- C#参数列表中的this(扩展方法)
参数列表中this的这种用法是在.NET 3.0之后新增的一种特性---扩展方法.通过这个属性可以让程序员在现有的类型上添加扩展方法(无需创建新的派生类型.重新编译或者以其他方式修改原始类型). 扩展 ...
- java中重载 参数顺序_Java方法中的参数太多,第4部分:重载
java中重载 参数顺序 期望将过多的参数传递给Java方法的问题之一是,该方法的客户端很难确定它们是否以适当的顺序传递了适当的值. 在以前的文章中,我描述了如何使用自定义类型 , 参数对象和构建器来 ...
- chrome插件中调用ajax,Chrome扩展程序中的Ajax调用无效
尝试在Chrome扩展程序中发送ajax请求.我已经确认请求返回200响应,它应该只是console.log来测试'.我不确定这里是否存在异常问题?我已经阅读了Chrome扩展程序' addListe ...
- java中的就近原则、方法中值传递和引用传递的区别、什么是构造方法、this关键字用法、什么是封装
你知道java中的就近原则嘛? package com.Test.java; /*** * 在java里面有一个"就近原则"详情可以参照下面代码**/public class Ac ...
- 解决回归过程中内生性问题的方法之一-工具变量法
OLS是常用的回归方法之一,那么OLS在使用过程中最重要的一个前提是解释变量与扰动项不相关,解释变量可以理解为我们研究时的自变量,扰动项可以理解为我们研究时与自变量独立的控制变量,如果出现解释变量与扰 ...
最新文章
- PCL点云配准(1)
- 二叉树的前序遍历,中序遍历,后序遍历学习 (原)
- C#实现字符串左旋转操作
- docker对数据卷进行还原操作
- oracle将一个表中字段的值赋值到另一个表中字段(批量)
- [羊城杯 2020]Bytecode [UTCTF2020]babymips
- 《JavaScript高级程序设计》Chapter 5 引用类型
- python __del__
- 指定版本_小米五一购机福利,购买Redmi7指定版本,送小米活塞耳机
- 蚁群算法原理及python实现
- 什么快捷键切换仅计算机,什么是电脑屏幕切换快捷键
- PoE供电概述:PoE交换机是如何进行供电的?
- (二)一步步来开始SSM:数据连通测试
- 【Grace卫星】Grace卫星精度知识点。
- php语言中的符号,php语言中的面向对象
- CSS设置元素的透明度(不透明度)
- Dubbo分布式事务处理--视频教程
- 使用网口转换器更换网线后无法上网
- 郑州大学计算机硕士分数线,郑州大学今年的录取分数线是多少?不同的专业呢...
- php框架 三维图展示,HTML5开发实例-3D全景(ThreeJs全景Demo) 详解(图)
热门文章
- 在Python中使用MongoDB
- Entity Framework Core 3.1 和 Entity Framework 6.4 发布
- 编程语言之父谈语言设计,龟叔大赞 TypeScript
- 数字几何处理作业1:编程实现三角网格上高斯曲率和平均曲率的计算编程部分
- JS中Promise函数then的奥秘探究
- 对学生成绩表按计算机应用成绩排序,计算机等级考试EXCEL练习题-12学生成绩表2...
- linux查看native进程,Android 分析应用程序占用native内存
- 服务器系统分区 是啥,服务器系统盘分区
- php artisan key,Laravel:php artisan key:generate三种报错解决方案,修改默认PHP版本(宝塔面板)...
- java post raw_Java raw 请求和获取