ebs Form 表单个性化
一共包括4种类型
1.特性
用于改变FORM中各组件的属性,相当于set_block_property ,例如可以改变 画布隐藏与否,按钮是否可以点击,item是否可以更改等
2.消息
用于弹出提示消息,相当于 fnd_message.debug
3.内置
用于调用各类功能,并发程序等,包括表单
调用功能有一个需要注意的地方是 传递参数
参数有两种形式
1.给定的字符串。例如app_find.find('bolck'); 个性化之后,点击个性化的功能,一定会调用这个过程/方法
2.动态的参数。传参的方式为 =‘parameter1=’||:block.item1||'parameter2='||:block.item2 实际上就是 = string
4.菜单
用于在工具栏中添加功能,选择special/menu等,这样就可以在工具栏中调用相应的功能。添加完菜单功能后,需要另外定义一个个性化的功能来响应这个功能。
添加快捷键:
给个性化功能添加快捷键:只需要在 功能名后面 添加(&a) ,例如function(&a),快捷键为a
关于个性化开发需要特别注意的一个地方:
为什么有些时候添加的个性化代码不执行?
个性化代码作用的原理是在APP_STANDARD.EVENT 触发器里添加相应的代码。而这个触发器的位置是跟我们之前选择的触发器位置相关。(一般为when-new-form-instance)这时就会在 when-new-form-instance里添加APP_STANDARD.EVENT,进而调用这个触发器里面的代码,实现个性化的效果。我们添加的触发器全都属于FORM级。
因此,选择的触发器位置会影响个性化代码是否执行。相同的事件,例如WHEN-NEW-RECORD-INSTANCE,在form,block,item里都有,而优先级一般为item>block>form。如果我们选择的触发器位置为WHEN-NEW-RECORD-INSTANCE,item级的就会覆盖掉form级的,因此有可能导致我们的个性化代码不被执行。
同理,触发器条件 before/override/after也是影响个性化代码是否执行的因素。
对应的触发器的属性设定不一样的时候,测试的结果:
Item:Before/Block: Before /Form: Before
执行效果: Item-->Block-->Form
设为Before,执行顺序正常,从小到大。
Item:After/Block:Override/Form:Override
执行效果:Block-->Item-->Form级不执行
设为Override,则就是对应层次的触发器的断点。上一级的不会被执行。
Item:After/Block:Override/Form:After
执行效果:Block-->Item-->Form级不执行
Item:After/Block:Override/Form: Before
执行效果:Block-->Item-->Form级不执行
Item:After/Block: After/Form:After
执行效果:Form-->Block-->Item
设为After的话,执行的顺序会颠倒。
Item:After/Block: After/Form:Override
执行效果:Form-->Block-->Item
设为After的话,执行的顺序会颠倒。
Item:After/Block: Before/Form:Override
执行效果:Block -->Form-->Item
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库