【问题标题】:How to display default values in grid view [closed]如何在网格视图中显示默认值 [关闭]
【发布时间】:2020-08-03 11:38:58
【问题描述】:

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

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

【问题讨论】:

    标签: acumatica acumatica-kb


    【解决方案1】:

    答案 1(属性)

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

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

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

    这是我学会这样做的问题的链接。包括代码示例,并指出了我的问题的修复。 How do I enable custom attributes? (can assign on class, but not displaying for transaction)

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

    【讨论】:

    • 嗨史蒂文斯,感谢您宝贵的时间花在这个问题上,这对我来说是一个很好的解决方案,我根据我的要求学习并尝试了这个代码。它工作正常(当你在 Stack Overflow 上发布问题时,请注意,如果你解释得更详细,你会得到更好的回答)---我肯定会遵循这条线。一秒钟 tq 提供一些有价值的信息。
    • stackoverflow.com/questions/63225310/… 嗨史蒂文斯,你能帮我解决这个问题吗?我试图在查找选择器中显示图像,但它无法正常工作。你能帮我解决我做错的地方吗?提前致谢。
    • 我不熟悉这种技术,但听起来确实很有趣。我希望有人发布一个好的解决方案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-26
    • 1970-01-01
    • 1970-01-01
    • 2014-12-20
    • 2019-10-18
    • 1970-01-01
    • 2018-04-07
    相关资源
    最近更新 更多