// @Override
        public Row getSubSelection(DataSetHeader header)
        {
            int size = header.size();

            Object[] values = new Object[size];
            Style[]  styles = new Style[size];
            for (int i = 0; i < size; i++)
            {
                SelectItem selectItem = header.getSelectItem(i);

                if (selectItem.getSubQuerySelectItem() != null)
                {
                    values[i] = getValue(selectItem.getSubQuerySelectItem());
                    styles[i] = getStyle(selectItem.getSubQuerySelectItem());
                    if (values[i] == null)
                    {
                        values[i] = getValue(selectItem);
                        styles[i] = getStyle(selectItem);
                    }
                }
                else
                {
                    values[i] = getValue(selectItem);
                    styles[i] = getStyle(selectItem);
                }
            }
            return(new DefaultRow(header, values, styles));
        }
 // @Override
 public Row convert(amm_data.Document document, DataSetHeader header)
 {
     Object[] values = new Object[header.size()];
     for (int i = 0; i < values.Length; i++)
     {
         String columnName = header.getSelectItem(i).getColumn().getName();
         values[i] = get(document, columnName);
     }
     return(new DefaultRow(header, values));
 }