在Acumatica中将数据插入网格

时间:2018-12-14 08:03:34

标签: acumatica

我有一个网格(显示设备)和动作材料(智能面板中的网格-显示每个设备的材料)。

在“获取设备”操作(下面的代码)中,我想将另一个表中的设备加载到此网格中,还将每个设备的材料加载到智能面板“材料”中。

执行动作后,仅显示设备。 “材料”面板上没有任何记录,我尝试按下“刷新”按钮,但仍然没有数据。

神奇的是,在我按下标题中的“保存”按钮之后,“材料”中的数据可以正确显示。

public PXAction<PSMTPhieuYeuCauSuaChuaMHTBHeader> GetDevices;
    [PXUIField(DisplayName = "Get Devices")]
    [PXButton(CommitChanges = true)]
    protected void getDevices()
    {
        PSMTRequestRepairMaint thisGraph = PXGraph.CreateInstance<PSMTRequestRepairMaint>();
        foreach (var record in PSMTPhieuYeuCauSuaChuaMMTBDeviceSelectedView.Cache.Updated)
        {
            PSMTPhieuYeuCauSuaChuaMMTBViewDevice device = (PSMTPhieuYeuCauSuaChuaMMTBViewDevice)record;
            if (device.Check.HasValue && device.Check.Value)
            {
                PSMTPhieuYeuCauSuaChuaMMTBLineGrid line = (PSMTPhieuYeuCauSuaChuaMMTBLineGrid)thisGraph.PSMTPhieuYeuCauSuaChuaMMTBLineGridView.Cache.CreateInstance();
                line = PSMTPhieuYeuCauSuaChuaMMTBLineGridView.Insert(line);
                line.DeviceID = device.HeaderID;
                line.FromDate = device.LastMaintenanceDate;
                line.ToDate = device.LastMaintenanceDate;
                device.Check = false;
                line = PSMTPhieuYeuCauSuaChuaMMTBLineGridView.Update(line);


                var materials = PXSelect<PSMTAllowedReplacementMaterial,
                            Where<PSMTAllowedReplacementMaterial.headerID,
                            Equal<Required<PSMTPhieuYeuCauSuaChuaMHTBHeader.soMay>>>>.Select(this, line.DeviceID);
                foreach (var item in materials)
                {
                    var allowedMaterial = (PSMTAllowedReplacementMaterial)item;
                    PSMTPhieuYeuCauSuaChuaMMTBMaterial material = (PSMTPhieuYeuCauSuaChuaMMTBMaterial)thisGraph.PSMTPhieuYeuCauSuaChuaMMTBMaterialView.Cache.CreateCopy(new PSMTPhieuYeuCauSuaChuaMMTBMaterial());
                    material = PSMTPhieuYeuCauSuaChuaMMTBMaterialView.Insert(material);
                    //material.LineGridID = line.GridID;
                    material.MaterialID = allowedMaterial.MaterialID;
                    material.Quantity = allowedMaterial.Quantity;
                    material = PSMTPhieuYeuCauSuaChuaMMTBMaterialView.Update(material);
                }
            }
        }
    }
  

网格

enter image description here

  

面板

enter image description here

0 个答案:

没有答案