Как я могу усреднить сумму значений поля детализации и поместить результат в заголовок - PullRequest
0 голосов
/ 06 января 2020

У меня есть поле в разделе сведений / сетки пользовательского экрана, которое я хочу по существу усреднить (сумма делится на количество строк), а затем отображать это значение в разделе заголовка. Я не могу найти примеры того, как сделать это с полем PXFormula. Если мне нужно использовать событие RowSelected (или событие FieldUpdating), пусть будет так, но я надеялся сделать это с полем PXFormula.

1 Ответ

0 голосов
/ 16 января 2020

Я сделал это так:

    protected virtual void xTACProjectMaster_RowPersisting(PXCache sender, PXRowPersistingEventArgs e)
    {
        Decimal? totPctComplete = 0;
        int rowCount = 0;

        var pj = e.Row as xTACProjectMaster;
        if (pj != null)
        {
            PXResultset<xTACProjectTask> res = PXSelect<xTACProjectTask,
                                               Where<xTACProjectTask.projectID, Equal<Required<xTACProjectTask.projectID>>>>.Select(this, pj.ProjectID);

            foreach (PXResult<xTACProjectTask> rec in res)
            {
                xTACProjectTask pt = rec;
                totPctComplete += pt.PctComplete;
                rowCount++;
            }

            if(rowCount > 0)
                pj.PctComplete = totPctComplete / rowCount;
        }
    }
...