根据提供的文件信息,我们可以从标题、描述以及部分代码中提炼出与BOS开发相关的几个关键知识点,主要包括BigDecimal类型的使用、单据操作(如新增、修改、删除)等。以下是对这些知识点的详细解读: ### 1. BigDecimal类型的使用 #### 1.1 基本介绍 `BigDecimal`是Java中的一个类,用于处理非常大的或者需要很高精确度的数字,如货币计算等场景。它提供了比基本数据类型`float`或`double`更高的精度,并且可以精确地表示任何数值。 #### 1.2 创建`BigDecimal`实例 在提供的代码片段中,有以下两种创建`BigDecimal`对象的方式: ```java BigDecimal amounts = new BigDecimal(String.valueOf(0.00)); ``` 这是将一个字符串转换为`BigDecimal`对象的方法。使用这种方式可以避免因为浮点数表示上的问题而导致的精度丢失。 ```java BigDecimal ex2 = new BigDecimal(12345678901234567.8); ``` 这里使用了构造函数直接传入一个`double`值来创建`BigDecimal`对象。虽然这种方式也可以创建`BigDecimal`对象,但是推荐使用字符串形式来创建,以确保精度不丢失。 #### 1.3 `BigDecimal`的应用 在财务系统或者对精度要求较高的业务场景中,`BigDecimal`被广泛使用。例如,在单据处理中,金额的计算和存储通常都会使用`BigDecimal`以确保精度。 ### 2. 单据操作 #### 2.1 单据新增 从提供的代码中可以看出,单据新增涉及多个步骤,包括初始化单据信息对象、设置单据属性等。例如: ```java PaymentBillInfo payInfo = new PaymentBillInfo(); payInfo.setNumber("1001"); ``` 这里创建了一个新的`PaymentBillInfo`对象,并设置了单据编号。此外,还需要设置其他属性,如创建者信息、审核日期等。 #### 2.2 设置创建者信息 设置创建者信息也是单据新增的一个重要步骤。代码示例中使用了`UserInfo`类来表示创建者的信息: ```java UserInfo userInfo = new UserInfo(); userInfo.setId(BOSUuid.read("867d5df6-00f8-1000-e000-0009c0a81089sysu")); userInfo.setName("John"); userInfo.setNumber("2000"); ``` 这里创建了一个`UserInfo`对象,并设置了创建者的ID、姓名和编号。 #### 2.3 设置金额信息 在财务单据中,金额信息是非常重要的。使用`BigDecimal`来设置金额可以确保精度: ```java BigDecimal ex = new BigDecimal("343434.445"); payInfo.setExchangeRate(ex); ``` 这里使用`BigDecimal`来设置汇率信息。 #### 2.4 单据项的添加 对于包含多项内容的单据,需要逐一添加每个项。示例代码展示了如何添加一个单据项: ```java PaymentBillItemInfo itemInfo = new PaymentBillItemInfo(); itemInfo.setLineNo(34); itemInfo.setAmounts(ex2); payInfo.getEntries().add(itemInfo); ``` 这里创建了一个`PaymentBillItemInfo`对象,并设置了行号和金额信息,然后将其添加到了单据的条目列表中。 #### 2.5 调用远程服务进行保存 在完成所有必要的设置之后,可以通过调用远程服务来保存单据: ```java IPaymentBill iPayBill = PaymentBillFactory.getRemoteInstance(); ObjectUuidPK pk = iPayBill.addnew(payInfo); ``` 这里首先获取了一个远程服务实例,然后调用`addnew`方法来保存单据信息,并返回了一个主键对象。 #### 2.6 单据修改 修改单据同样需要先获取单据信息,然后修改需要更改的字段,最后保存更改: ```java String id = "8b35b903-00f8-1000-e000-0008c0a81089errt"; ObjectUuidPK pk = new ObjectUuidPK(BOSUuid.read(id)); PaymentBillInfo payInfo = iPayBill.getValue(pk); payInfo.setExchangeRate(ex); iPayBill.update(pk, payInfo); ``` 这里首先通过主键获取单据信息,然后修改汇率信息,并调用`update`方法更新单据。 #### 2.7 单据删除 删除单据相对简单,只需要通过主键调用删除方法即可: ```java iPayBill.remove(pk); ``` 以上就是从给定的文件信息中提取出的主要知识点及其详细解读。通过这些内容,可以了解到如何在BOS开发中使用`BigDecimal`类型来处理金额,以及如何进行单据的新增、修改和删除等操作。这些知识对于从事相关领域开发工作的人员来说是非常实用的。
剩余7页未读,继续阅读
- 粉丝: 2
- 资源: 3
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 质量安全排查报告.docx
- 职业中专技工学校专业评估表.docx
- 质量控制资料核查表:建筑保温工程.docx
- 质量目标统计数据表.docx
- 质量内审方案.docx
- 中国古今地名对照表.docx
- 智力残疾评定标准一览表.docx
- 中央造林补助实施方案小班一览表.docx
- 肘关节功能丧失程度评定表.docx
- 重要神经及血管损伤评定.docx
- 自建房安全整治和农村住房建设考评内容和评分标准.docx
- 走访服务企业登记表.doc
- 智能车开发技术的多领域深度解析及应用
- 西红柿叶片图像目标检测数据【已标注,约700张数据,YOLO 标注格式】
- 蓝桥杯开发技术的全面解析与备赛建议
- 相当于去中心化的QQ版本了