04 Aras Innovator二次开发-客户端方法

客户端方法为JS方法。

系统提供了很多触发点,可以嵌入客户端方法,如下:

1 对象类的客户端事件页签:

2 窗体的Form Event和Filed Event

3.关系类的网格事件:

4 属性事件:

5.可自定义Action,触发客户端事件:

下面我们用一个示例,演示Form Event和Field Event的使用方法。

该示例依旧使用My Part对象类,我们使用客户端方法,计算零件的总成本。

总成本的计算方式:My BOM页签每条关系数据的成本*数量,然后相加即为总成本。

第一个客户端方法,在My Part的Form Event的On Load触发,方法如下:

top.window.moveTo(0,0);
top.window.resizeTo(screen.width,screen.height-50);   //自动根据屏幕大小调整窗体大小

document.CostRollupThisItem = function()
{
  var total = 0;
  var boms  = document.thisItem.getItemsByXPath(
    "//Item[@type='My BOM']");   //获取My BOM页签的数据
  var count = boms.getItemCount();
  for (var i=0; i<count; ++i)   ///遍历数据
  {
    var bom  = boms.getItemByIndex(i);
    var part = bom.getRelatedItem();
    var cost = part.getProperty("cost");
    var qty  = bom.getProperty("qty");
    total += cost * qty;
  }
  handleItemChange("cost",total);
};

document.CostRollupFromServer = function()
{
  var total = 0;
  var q = document.thisItem.newItem("My BOM","get");   ///从服务端查询My BOM关系页签数据
  q.setProperty("source_id",document.itemID);
  q.setAttribute("select","qty,related_id(cost)");
  var result = q.apply();
  var boms  = result.getItemsByXPath("//Item[@type='My BOM']");
  var count = boms.getItemCount();
  for (var i=0; i<count; ++i)
  {
    var bom  = boms.getItemByIndex(i);
    var part = bom.getRelatedItem();
    var cost = part.getProperty("cost");
    var qty  = bom.getProperty("qty");
    total += cost * qty;
  }
  handleItemChange("cost",total);
};

document.CostRollupFromGrid = function()
{
  var total = 0;
  //var grid = top.relationships.frames[0].grid;  //11SP9及老版本获取关系类页签网格
  var grid=top.frames.relationships.iframesCollection[1].contentWindow.grid;    ///11SP12及新版本获取关系类网格
  var ids  = grid.getAllItemIds('|').split('|');  ///获取网格的所有行ID
  for (var i=0; i<ids.length; ++i)
  {
    var id   = ids[i];
    var cost = grid.cells(id,6).GetValue();  //获取对应的列的数据,列索引从0开始
    var qty  = grid.cells(id,2).GetValue();
    total += cost * qty;
  }
  handleItemChange("cost",total);
};

方法命名为Lab34,嵌入至Form的On Load事件:

此方法书写完成后,再写三个客户端方法,用来触发三种计算方式,因第一个方法在预先加载,因此此处仅调用客户端方法即可,代码如下:

在窗体上添加三个按钮,然后在按钮的Field Event的On Click事件中嵌入对应的客户端方法,如下图:

窗体保存后,我们打开My Part窗体,点击按钮,即可计算总成本,如下:

Form Event和Field Event为较常用的客户端事件。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/693719.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据结构与算法:栈

朋友们大家好啊&#xff0c;在链表的讲解过后&#xff0c;我们本节内容来介绍一个特殊的线性表&#xff1a;栈&#xff0c;在讲解后也会以例题来加深对本节内容的理解 栈 栈的介绍栈进出栈的变化形式 栈的顺序存储结构的有关操作栈的结构定义与初始化压栈操作出栈操作获取栈顶元…

VR全景开启线上卖房新渠道,助力房企改变营销方式

当下房产行业&#xff0c;还在依靠传统线下发传单、跑客户、做地推吗&#xff1f;在短视频和直播火热的今天&#xff0c;房产行业也开启了线上卖房的新渠道&#xff0c;通过VR全景技术&#xff0c;可以为各个小区的线上宣传增加趣味性和互动性。 一、VR全景漫游可以彰显房源真实…

如何更换过期的SSL证书?

SSL证书是保护网站安全的重要组成部分&#xff0c;它能在客户端和服务器之间建立数据传输加密通道&#xff0c;防止数据在传输过程中被泄露、劫持和窃听。但SSL证书也有有效期限&#xff0c;当SSL证书到期时&#xff0c;您需要及时更换它&#xff0c;以确保网站的安全性和可信度…

Git基本操作(2)

Git基本操作&#xff08;2&#xff09; 上交文件之后&#xff0c;git文件的变化git cat-file HEAD指针里面有啥文件被修改git statusgit diff 文件名 版本回退&#xff08;git reset&#xff09;撤销回退git reflog 撤销的三种情况还没有addgit checkout -- [file] 已经add还没…

Pandas快问快答16-30题

16. 如何对一个Pandas数据框进行聚合操作? 聚合操作是数据处理中的一种重要方式&#xff0c;主要用于对一组数据进行汇总和计算&#xff0c;以得到单一的结果。在聚合操作中&#xff0c;可以执行诸如求和、平均值、最大值、最小值、计数等统计操作。这些操作通常用于从大量数…

Vue-Ajax核心知识整理

在Vue框架中可以有很多方式实现 ajax, 其中有xhr、jQuery、fetch、axios、vue-resource, 其中Vue的作者尤雨溪推荐使用axios&#xff0c;所以在使用Vue框架时&#xff0c;尽量还是使用axios 但是当我们使用ajax时&#xff0c;经常会遇到跨域的问题&#xff0c;比如你本地的端口…

15.一种坍缩式的简单——组合模式详解

当曾经的孩子们慢慢步入社会才知道&#xff0c;那年味渐淡的春节就像是疾驰在人生路上的暂停键。 它允许你在隆隆的鞭炮声中静下心来&#xff0c;瞻前顾后&#xff0c;怅然若失。 也允许你在寂静的街道上屏气凝神&#xff0c;倾听自己胸腔里的那团人声鼎沸。 孩子们会明白的&am…

【Flink精讲】Flink内核源码分析:命令执行入口

官方推荐per-job模式&#xff0c;一个job一个集群&#xff0c;提交时yarn才分配集群资源&#xff1b; 主要的进程&#xff1a;JobManager、TaskManager、Client 提交命令&#xff1a;bin/flink run -t yarn-per-job /opt/module/flink-1.12.0/examples/streaming/SocketWind…

Unity—JSON

每日一句&#xff1a;手简素中&#xff0c;感生活恬淡&#xff0c;心有所期&#xff0c;忙而不茫 目录 服务器 常见的服务器语言 Unity的开发语言 JSON 功能&#xff1a; JSON最简单的格式 JSON工具 支持的数据结构&#xff08;C#对于JSON&#xff09; 字符含义 JSON…

单片机stm32智能鱼缸

随着我国经济的快速发展而给人们带来了富足的生活&#xff0c;也有越来越多的人们开始养鱼&#xff0c;通过养各种鱼类来美化居住环境和缓解压力。但是在鱼类饲养过程中&#xff0c;常常由于鱼类对水质、水位及光照强度有着很高的要求&#xff0c;而人们也由于工作的方面而无法…

2023年12月CCF-GESP编程能力等级认证C++编程四级真题解析

一、单选题(共15题,共30分) 第1题 下面有关函数参数的说法,正确的是( )。 A:函数参数传递时,主函数当中采用值传递方式将参数传递给子函数时,若子函数将参数值改变,主函数当中的参数值不变。 B:函数参数传递时,主函数当中采用值传递方式将参数传递给子函数时,若子…

jvm垃圾收集器-三色标记算法

1.对象已死吗? 在堆里面存放着Java世界中几乎所有的对象实例&#xff0c;垃圾收集器在对堆进行回收前&#xff0c;第一件事情就是要确定这些对象之中哪些还“存活”着&#xff0c;哪些已经“死去”&#xff08;即不可能再被任何途径使用的对象). 引计数法 引用计数算法是一…

【快速搞定Webpack5】基本配置及开发模式介绍(二)

在开始使用webpack之前么&#xff0c;我们需要对Webpack的配置有一定的认识。 一、5大核心概念 1. enty&#xff08;入口&#xff09; 指示webpack从哪个文件开始打包 2. output&#xff08;输出&#xff09; 指示webpack打包完的文件输出到哪里去&#xff0c;如何命名等 …

适配器模式:转换接口,无缝对接不同系统

文章目录 **一、技术背景与应用场景****为什么使用适配器模式&#xff1f;****典型应用场景包括但不限于&#xff1a;** **二、适配器模式定义与结构****三、使用步骤举例****四、优缺点分析****总结** 一、技术背景与应用场景 适配器模式在软件设计中扮演着桥梁角色&#xff…

Linux(五)__系统管理

介绍 通常&#xff0c; Windows 中使用"任务管理器"主要有 3 个目的&#xff1a; 利用"应用程序"和"进程"标签来査看系统中到底运行了哪些程序和进程&#xff1b;利用"性能"和"用户"标签来判断服务器的健康状态&#xff1…

vue项目调用摄像头实现拍照功能

目录 1.功能需求 2.API 3.完整代码 4.效果 5.遇到问题 1.功能需求 需求:下面需求图 本来应该使用小程序做&#xff0c;但是为了以后复用考虑&#xff0c;决定使用vue嵌入小程序中。 所以需求就是 调用手机摄像头 实现拍照打卡功能&#xff08;电脑通用&#xff09; 2.API …

【Redis】Redis的数据分布算法

一共有五种算法&#xff0c;分别为&#xff1a;哈希算法、一致性哈希算法、带有限负载的一致性哈希算法、虚拟节点一致性哈希算法、虚拟槽分区 哈希算法 思想&#xff1a;根据某个key的值或者key 的哈希值与当前可用的 master 节点数取模&#xff0c;根据取模的值获取具体的服…

halcon 标定多元点标定板、棋盘格映射矫正图像、矫正失真图像

一、标定多圆孔标定 其理论与棋盘格 和圆孔都是一样的&#xff0c;不一样的地方就是定方向的方式不一样。如图 2、结果 read_image (CalibImage, ./circle/1.png) get_image_size (CalibImage, Width, Height) dev_close_window () dev_open_window_fit_image (CalibImage, 0…

“成像光谱遥感技术中的AI革命:ChatGPT应用指南“

遥感技术主要通过卫星和飞机从远处观察和测量我们的环境&#xff0c;是理解和监测地球物理、化学和生物系统的基石。ChatGPT是由OpenAI开发的最先进的语言模型&#xff0c;在理解和生成人类语言方面表现出了非凡的能力。本课程重点介绍ChatGPT在遥感中的应用&#xff0c;人工智…

2024牛客寒假算法基础集训营4(视频讲解题目)

2024牛客寒假算法基础集训营4&#xff08;视频讲解题目&#xff09; 视频链接ABCDEFG、H&#xff08;下面是hard版本的代码两个都可以过&#xff09; 视频链接 2024牛客寒假算法基础集训营4&#xff08;视频讲解题目&#xff09; A #include<bits/stdc.h> #define en…