首页 > 解决方案 > 如何在网格视图中显示默认值

问题描述

我想在 acumatica 基本屏幕“CR306000”ex:attributes 选项卡的网格视图中显示默认值

在此处输入图像描述

我需要编写什么代码来实现这一点?

标签: acumaticaacumatica-kb

解决方案


答案 1(属性)

您在问题中显示的屏幕是 Acumatica 的一个非常特殊的功能,称为属性。将属性分配给“类”,例如库存项目的项目类。要在屏幕中添加其他属性,首先在属性屏幕 (CS2050000) 上定义属性,然后将其添加到您希望使用它的对象的每个类中。对于您的屏幕截图,这将是案例类 (CS206000)。定义类后,您可以转到“属性”选项卡添加您定义的与该类相关的属性。(例如,泵的项目类别可能包括马力作为属性,但办公用品的项目类别不会。)

将使用属性的功能添加到自定义屏幕需要:

  1. 建立您的自定义主(标题)记录将使用的自定义类 DAC,
  2. 将 ClassID 字段添加到您的主 DAC 以存储该类,并且
  3. 定义视图、选项卡和网格,以编辑属性值。

这是我学会这样做的问题的链接。包括代码示例,并指出了我的问题的修复。 如何启用自定义属性?(可以在课堂上分配,但不显示交易)

答案 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);)该示例的其余部分是利用一个特殊视图来从保修主表(合同)中获取默认保修记录。


推荐阅读