У меня есть сетка (показать устройства) и действие МАТЕРИАЛЫ (сетка на умной панели - показать материалы каждого устройства).
В действии Получить устройства (код ниже) я хочу загрузить устройства из другой таблицы в эту сетку, а также материалы каждого устройства в смарт-панель МАТЕРИАЛЫ.
После выполнения действия отображаются только устройства.На панели МАТЕРИАЛЫ нет записей, я пытаюсь нажать кнопку Обновить, но там по-прежнему нет данных.
Волшебство заключается в том, что после нажатия кнопки Сохранить в заголовке отображаются данные в МАТЕРИАЛАХ.правильно.
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);
}
}
}
}
Сетка
Панель