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中获取数据源及扩展方法中获取变量相关推荐

  1. java中string范围_java中long parseLong(String s)方法中string(十进制数字)的范围?

    java中long parseLong(String s)方法中string(十进制数字)的范围? 來源:互聯網  2009-06-19 05:05:28  評論 分類: 電腦/網絡 >> ...

  2. ArcEngine中IFeatureClass.Search(filter, Recycling)方法中Recycling参数的理解

    转自 ArcEngine中IFeatureClass.Search(filter, Recycling)方法中Recycling参数的理解 ArcGIS Engine中总调用IFeatureClass ...

  3. Spring中的AOP在Advice方法中获取目标方法的参

    参考:http://my.oschina.net/itblog/blog/211693 http://christang.iteye.com/blog/2037919 http://blog.csdn ...

  4. Spring中的AOP——在Advice方法中获取目标方法的参数(转)

    获取目标方法的信息 访问目标方法最简单的做法是定义增强处理方法时,将第一个参数定义为JoinPoint类型,当该增强处理方法被调用时,该JoinPoint参数就代表了织入增强处理的连接点.JoinPo ...

  5. C#参数列表中的this(扩展方法)

    参数列表中this的这种用法是在.NET 3.0之后新增的一种特性---扩展方法.通过这个属性可以让程序员在现有的类型上添加扩展方法(无需创建新的派生类型.重新编译或者以其他方式修改原始类型). 扩展 ...

  6. java中重载 参数顺序_Java方法中的参数太多,第4部分:重载

    java中重载 参数顺序 期望将过多的参数传递给Java方法的问题之一是,该方法的客户端很难确定它们是否以适当的顺序传递了适当的值. 在以前的文章中,我描述了如何使用自定义类型 , 参数对象和构建器来 ...

  7. chrome插件中调用ajax,Chrome扩展程序中的Ajax调用无效

    尝试在Chrome扩展程序中发送ajax请求.我已经确认请求返回200响应,它应该只是console.log来测试'.我不确定这里是否存在异常问题?我已经阅读了Chrome扩展程序' addListe ...

  8. java中的就近原则、方法中值传递和引用传递的区别、什么是构造方法、this关键字用法、什么是封装

    你知道java中的就近原则嘛? package com.Test.java; /*** * 在java里面有一个"就近原则"详情可以参照下面代码**/public class Ac ...

  9. 解决回归过程中内生性问题的方法之一-工具变量法

    OLS是常用的回归方法之一,那么OLS在使用过程中最重要的一个前提是解释变量与扰动项不相关,解释变量可以理解为我们研究时的自变量,扰动项可以理解为我们研究时与自变量独立的控制变量,如果出现解释变量与扰 ...

最新文章

  1. PCL点云配准(1)
  2. 二叉树的前序遍历,中序遍历,后序遍历学习 (原)
  3. C#实现字符串左旋转操作
  4. docker对数据卷进行还原操作
  5. oracle将一个表中字段的值赋值到另一个表中字段(批量)
  6. [羊城杯 2020]Bytecode [UTCTF2020]babymips
  7. 《JavaScript高级程序设计》Chapter 5 引用类型
  8. python __del__
  9. 指定版本_小米五一购机福利,购买Redmi7指定版本,送小米活塞耳机
  10. 蚁群算法原理及python实现
  11. 什么快捷键切换仅计算机,什么是电脑屏幕切换快捷键
  12. PoE供电概述:PoE交换机是如何进行供电的?
  13. (二)一步步来开始SSM:数据连通测试
  14. 【Grace卫星】Grace卫星精度知识点。
  15. php语言中的符号,php语言中的面向对象
  16. CSS设置元素的透明度(不透明度)
  17. Dubbo分布式事务处理--视频教程
  18. 使用网口转换器更换网线后无法上网
  19. 郑州大学计算机硕士分数线,郑州大学今年的录取分数线是多少?不同的专业呢...
  20. php框架 三维图展示,HTML5开发实例-3D全景(ThreeJs全景Demo) 详解(图)

热门文章

  1. 在Python中使用MongoDB
  2. Entity Framework Core 3.1 和 Entity Framework 6.4 发布
  3. 编程语言之父谈语言设计,龟叔大赞 TypeScript
  4. 数字几何处理作业1:编程实现三角网格上高斯曲率和平均曲率的计算编程部分
  5. JS中Promise函数then的奥秘探究
  6. 对学生成绩表按计算机应用成绩排序,计算机等级考试EXCEL练习题-12学生成绩表2...
  7. linux查看native进程,Android 分析应用程序占用native内存
  8. 服务器系统分区 是啥,服务器系统盘分区
  9. php artisan key,Laravel:php artisan key:generate三种报错解决方案,修改默认PHP版本(宝塔面板)...
  10. java post raw_Java raw 请求和获取