acumatica - 如何在网格视图中显示默认值
问题描述
我想在 acumatica 基本屏幕“CR306000”ex:attributes 选项卡的网格视图中显示默认值
我需要编写什么代码来实现这一点?
解决方案
答案 1(属性)
您在问题中显示的屏幕是 Acumatica 的一个非常特殊的功能,称为属性。将属性分配给“类”,例如库存项目的项目类。要在屏幕中添加其他属性,首先在属性屏幕 (CS2050000) 上定义属性,然后将其添加到您希望使用它的对象的每个类中。对于您的屏幕截图,这将是案例类 (CS206000)。定义类后,您可以转到“属性”选项卡添加您定义的与该类相关的属性。(例如,泵的项目类别可能包括马力作为属性,但办公用品的项目类别不会。)
将使用属性的功能添加到自定义屏幕需要:
- 建立您的自定义主(标题)记录将使用的自定义类 DAC,
- 将 ClassID 字段添加到您的主 DAC 以存储该类,并且
- 定义视图、选项卡和网格,以编辑属性值。
这是我学会这样做的问题的链接。包括代码示例,并指出了我的问题的修复。 如何启用自定义属性?(可以在课堂上分配,但不显示交易)
答案 2(具有默认详细信息的主从详细信息)
如果您是 Acumatica 开发的新手,您应该先完成他们提供的免费培训课程。这些可以在Acumatica 网站上的https://openuni.acumatica.com/courses/development/上找到。您要为此案例复习的特定课程是 T210 自定义表格和主从关系。在当前培训材料第 99 页的第 4.2 节中,您将找到一个显示在创建新的服务-设备记录对时预填充“默认保修”示例的部分。培训课程中创建的记录和所有自定义,仅作为示例。
实际上,您必须为培训指南中的示例做两件事。首先,您创建一个“默认记录”。在培训指南中,您定义了默认情况下将与您的服务设备记录关联的保修记录。接下来,您创建一个事件处理程序,以便在创建标题中的父项时实际填充详细信息选项卡中的网格。培训指南显示了如何执行所有这些操作,但重点... 使用 RowInserted 事件创建详细记录。培训指南中的示例如下:
//Insert the default detail record.
protected virtual void _(Events.RowInserted<RSSVRepairPrice> e)
{
if (Warranty.Select().Count == 0)
{
bool oldDirty = Warranty.Cache.IsDirty;
// Retrieve the default warranty.
Contract defaultWarranty = (Contract)DefaultWarranty.Select();
if (defaultWarranty != null)
{
RSSVWarranty line = new RSSVWarranty();
line.ContractID = defaultWarranty.ContractID;
// Insert the data record into
// the cache of the Warranty data view.
Warranty.Insert(line);
// Clear the flag that indicates in the UI whether the cache
// contains changes.
Warranty.Cache.IsDirty = oldDirty;
}
}
}
其中的关键部分是您定义记录(RSSVWarranty line = ...),然后将其插入到与网格关联的视图中(Warranty.Insert(line);)该示例的其余部分是利用一个特殊视图来从保修主表(合同)中获取默认保修记录。
推荐阅读
- firebase - 除非重新部署,否则用于 Firestore 触发器的 Firebase Cloud Functions 不起作用
- ide - 当我粘贴到 CDN 中时,WebStorm 没有导入
- css - 溢出属性如何与 ul 元素一起使用?
- grafana - 如何找到用于导出 JSON 的 Grafana 版本?
- scrapy - Scrapy 安装错误:[CondaEnvironmentNotFoundError]:找不到环境:base
- c# - JSON.net 反序列化对象嵌套数据
- javascript - 如何清除 .zip 队列?
- javascript - 返回包含条件的数组的长度
- python - Django 仅在同一日期有多个公司交易的情况下查询交易
- java - SnakeYaml“找不到属性错误”