金蝶云苍穹-插件开发(三)关于基础资料/单据实体的id

基础资料/单据实体的id

每个基础资料和单据的实体,都有一个id字段,这个id是其一个唯一性标识,就类似于这个实体的身份证号一样。通常,这个id用来找到指定的实体。这个id在代码中都是long类型接收的。

如果基础资料/单据里面有字段的类型是基础资料类型,在我们给它赋值的时候,这个字段要接收的值就是指定的实体的id值,这个id值的获取有时候显得很重要。

获取实体的id的方式

load加载

在load时,在加载的字段里加上一个名为id的字段。例:

DynamicObject dy = BusinessDataServiceHelper.loadSingle("abq2_stu_course",
                        "number,id",
                        (new QFilter("number", QCP.equals, abq2_number)).toArray());
                primaryKeyValue = dy.getLong("id");

getPkValue

也可以不用load加一个id字段,可以直接获取对应的DynamicObject类型实体对象的id

DynamicObject optionCourse = BusinessDataServiceHelper.loadSingle("abq2_stu_course",
                    "id," + //内码
                            "abq2_combofield1," + //星期
                            "abq2_classroom," + //教室
                            "abq2_textfield1," + //教师
                            "abq2_combofield," + //年级
                            "abq2_integerfield," + //课程人数
                            "abq2_integerfield1," + //已选人数
                            "abq2_mulcombofield",  //课节
                    new QFilter[]{new QFilter("id",QCP.equals,primaryKeyValue)});
            long pkid = (long)optionCourse.getPkValue();

这个pkid其实就是optionCourse这个实体对象对应的id值

获取当前行对应的实体的id值

在列表,报表,单据列表中,一行对应着一个实体。通常我们又会对指定的行对应的实体做指定的操作。在点击操作列、选中某行时,便要获取其当前行的实体的数据。此时便要用到获取当前行的id的操作。

列表

IListView list = (IListView) this.getView();
ListSelectedRow currentSelectedRowInfo = list.getCurrentSelectedRowInfo();
Object primaryKeyValue = currentSelectedRowInfo.getPrimaryKeyValue();

单据列表

BillList billlist = this.getControl("abq2_billlistap");
ListSelectedRow currentSelectedRowInfo = billlist.getCurrentSelectedRowInfo();
Object primaryKeyValue = currentSelectedRowInfo.getPrimaryKeyValue();

abq2_billlistap是单据列表的标识

报表

报表的获取当前行会更复杂,我没有找到对应的直接获取pkid的方法,我的方法是在报表的字段中加上一个映射对应实体的编码的字段,即这个字段的数据源字段是对应实体的编码字段。

再根据这个编码,去load对应的实体,再获取其id,例:

ReportList reportList = this.getControl("reportlistap");
Object primaryKeyValue = null;
int[] selectedRows = reportList.getEntryState().getSelectedRows();
            for (int selectedRow : selectedRows) {
                DynamicObject rowData = reportList.getReportModel().getRowData(selectedRow);
                String abq2_number = rowData.getString("abq2_number");
                DynamicObject dy = BusinessDataServiceHelper.loadSingle("abq2_stu_course",
                        "number,id",
                        (new QFilter("number", QCP.equals, abq2_number)).toArray());
                primaryKeyValue = dy.getLong("id");
                break;
            }

abq2_number指的是报表上的字段的字段名,其映射了对应实体的编码。

如果是像人员这种基础资料,如果要赋值为当前用户,可以直接使用现有的API获取当前用户的id,如下:

dynamicObject.set("creator",RequestContext.get().getCurrUserId());

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

使用ifconfig命令获取当前服务器的内网IP地址

如何使用ifconfig命令获取当前服务器的内网IP地址呢? ifconfig eth0 | grep inet | awk {print $2}

redis运维:sentinel模式如何查看所有从节点

1. 连接到sentinel redis-cli -h sentinel_host -p sentinel_port如: redis-cli -h {域名} -p 200182. 发现Redis主服务器 连接到哨兵后,我们可以使用SENTINEL get-master-addr-by-name命令来获取当前的Redis主服务器的地址。 SENTINEL get-master-a…

最小爬楼梯(dp)

import java.util.Scanner;public class ClimbingStairsCost {public static int minCostClimbingStairs(int[] cost) {int n cost.length; // 获取输入的 cost 数组的长度int[] dp new int[n 1]; // 创建一个用于存储每个台阶最小花费的 dp 数组dp[0] 0; dp[1] 0; // 初始…

解析java128陷阱

一、提要 在java开发时,由于基本类型不能调用方法,在某些方面很不方便,因此产生了包装类。我们把基本类型和对应的包装类的转换叫装箱、拆箱。 1.装箱 基本类型转成包装类对象 关键字valueOf->装箱,可以指定进制: Integer…

C# modbus验证

窗体 还有添加的serialPort控件串口通信 设置程序配置 namespace CRC {public static class CRC16{/// <summary>/// CRC校验&#xff0c;参数data为byte数组/// </summary>/// <param name"data">校验数据&#xff0c;字节数组</param>///…

NLP 面试八股:“Transformers / LLM 的词表应该选多大?“ 学姐这么告诉我答案

NLP 面试八股&#xff1a;“Transformers / LLM 的词表应该选多大?" 学姐这么告诉我答案 原创 看图学 看图学 2024年07月03日 07:55 北京 题目&#xff1a; Transformers/大模型的 token vocabulary 应该选多大&#xff1f; 答案 先说一下结论&#xff1a; 数据量够大…

docker 重要且常用命令大全

本文将总结一些常见的重要的docker命令&#xff0c;以作备忘。后续如果有新的比较常用重要的也会更新进来。欢迎补充。 docker服务管理 首先我们要解释一下&#xff1a;systemctl和docker命令的不同 systemctl&#xff1a;是许多 Linux 发行版中默认的初始化系统和服务管理器。…

提高LabVIEW软件通用性的方法

提高LabVIEW软件通用性的方法 在使用LabVIEW开发软件时&#xff0c;提高软件的通用性非常重要。通用性意味着软件可以在不同的应用场景中使用&#xff0c;具备高度的适应性和灵活性&#xff0c;从而提高软件的价值和用户满意度。以下从多个角度详细探讨如何提高LabVIEW软件的通…

媒体查询:根据设备特征动态调整样式和布局

不知道你会不会有一个疑问&#xff0c;同一个网站&#xff0c;用手机看和用电脑看在首选项和排版会发生一些变化&#xff0c;但我们使用起来仍然非常顺手&#xff0c;这就是响应式设计。响应式设计原理是指网页可以根据不同使用设备的屏幕尺寸&#xff0c;做出相应的调整和变化…

Linux走进网络

走进网络之网络解析 目录 走进网络之网络解析 一、认识计算机 1.计算机的发展 2.传输介质 3.客户端与服务器端的概念 交换机 路由器 二、计算机通信与协议 1. 协议的标准化 2. 数据包的传输过程 OSI 协议 ARP协议 3. TCP/IP:四层模型 4. TCP三次握手和四次挥手…

OceanBase 配置项系统变量实现及应用详解(1):配置项的定义及使用方法

《OceanBase 配置项&系统变量实现及应用详解》专题导读 在使用OceanBase的过程中&#xff0c;看到大家经常会遇到“参数”、“配置项”、“系统变量”等概念&#xff0c;却不太清楚它们是不是同一个东西&#xff0c;以及应该如何使用。一些对数据库开发感兴趣的朋友&#…

LabVIEW开发商业软件的多角度分析与注意事项

在使用LabVIEW开发商业软件时&#xff0c;有许多方面需要考虑和注意&#xff0c;包括项目管理、架构设计、性能优化、用户体验、安全性、维护与支持等。以下是从多个角度详细分析在LabVIEW中开发商业软件需要注意的事项。 项目管理 需求分析&#xff1a;确保深入了解客户需求&a…

虚值期权和实值期权的区别?便宜的虚值期权是最好的选择吗?

今天带你了解虚值期权和实值期权的区别&#xff1f;便宜的虚值期权是最好的选择吗&#xff1f;买实值期权和买虚值期权都有各自的优势和风险。实值期权是指行权价格低于标的资产的市场价格&#xff0c;而虚值期权则是指行权价格高于标的资产的市场价格。 实值期权和虚值期权的…

SAPUI5基础知识11 - 组件配置(Component)

1. 背景 组件&#xff08;Component&#xff09;是SAPUI5应用程序中独立且可重用的部件。 SAPUI5提供以下两类组件: faceless组件 (class: sap.ui.core.Component): 无界面组件即没有用户界面相关的元素&#xff0c;用于不需要UI元素编码的场景&#xff1b; UI组件 (class: …

Greenplum(二)【SQL】

前言 Greenplum 的剩余部分主要其实主要就是 DDL 和之前学的 MySQL 不大一样&#xff0c;毕竟 Greenplum 是基于 PostgreSQL 数据库的&#xff0c;不过那些 DML 和 MySQL、Hive 基本上大差不差&#xff0c;所以就没有必要浪费时间了。 1、DDL 1.1、库操作 1.1.1、创建数据库…

p11函数和递归

递归与迭代 求n的阶乘。&#xff08;不考虑溢出&#xff09; int Fac1(int n) {int i0;int ret1;for(i1;i<n;i){ret*i;}return ret; } int main(){//求n的阶乘int n0;int ret0;scanf("%d",&n);retFac1(n);printf("%d\n",ret);return 0; } int Fac…

Qt 进程间通信(一)——QSharedMemory共享内存

QSharedMemory共享内存 序言环境理论—逻辑理解实战—代码读取示例写入示例 序言 讲讲Qt的共享内存吧&#xff0c;巩固下 环境 msvc2022 Qt5.15 参考文档&#xff1a;https://doc.qt.io/qt-5/qsharedmemory.html 理论—逻辑理解 看下面前&#xff0c;你需要将共享内存看成…

【设计模式】观察者模式(定义 | 特点 | Demo入门讲解)

文章目录 定义结构Demo | 代码Subject目标类Observer抽象观察者观察者1 | CPU监听器观察者2 | 内存监听器客户端 | Client 优点适合场景 定义 所谓观察者模式就是你是被观察的那个对象&#xff0c;你爸爸妈妈就是观察者&#xff0c;一天24h盯着你&#xff0c;一旦你不听话&…

NFT 技术在艺术领域的应用

NFT (Non-Fungible Token) 技术在艺术领域有着广泛的应用&#xff0c;为艺术家和艺术品收藏家带来了新的机遇和挑战。以下是 NFT 技术在艺术领域的一些主要应用。北京木奇移动技术有限公司&#xff0c;专业的软件外包开发公司&#xff0c;欢迎交流合作。 1. 数字艺术品确权和交…

spring mvc学习

第四章 Spring MVC 第一节 Spring MVC 简介 1. Spring MVC SpringMVC是一个Java 开源框架&#xff0c; 是Spring Framework生态中的一个独立模块&#xff0c;它基于 Spring 实现了Web MVC&#xff08;数据、业务与展现&#xff09;设计模式的请求驱动类型的轻量级Web框架&am…