Example #1
0
    public static void InsertAttributeColumnsByTemplateColumn(PXGridColumnCollection columns, PXFieldCollection fields)
    {
        var attributeFields = fields.Where(f => f.StartsWith(Template) && char.IsDigit(f.Last())).ToList();

        int          templateFieldIndex = -1;
        PXGridColumn templateColumn     = null;

        foreach (PXGridColumn column in columns)
        {
            if (column.DataField == TemplateField)
            {
                templateFieldIndex = columns.IndexOf(column);
                templateColumn     = column;
            }

            attributeFields.Remove(column.DataField);
        }

        if (templateColumn != null)
        {
            foreach (string attributeField in attributeFields)
            {
                var newColumn = new PXGridColumn();
                newColumn.CopyFrom(templateColumn);
                newColumn.DataField = attributeField;
                columns.Insert(++templateFieldIndex, newColumn);
            }
        }
    }