Tfrxcrossview - добавить новые поле для строки

отредактировано 01:29 Раздел: FastReport 4.0
Для TfrxCrossView мне нужно добавлять/убирать поле SenderFrom программно, т.е. для каких параметров отчета оно будет заполненным, а для каких нет, поэтому убираем.

Как это лучше сделать?

Комментарии

  • gpigpi
    отредактировано December 2008
    Заполняйте программно свойства кросса RowFields, RowLevels
    Например:
    var kros:TfrxDBCrossView;
    begin
    kros:=TfrxDBCrossView(frxreport1.FindObject('Dbcross1'));
    kros.ColumnFields.Clear;
    kros.ColumnFields.Add('Year');
    kros.ColumnFields.Add('Month');
    kros.CornerMemos[1].Text:='Test';
    kros.ColumnLevels := 2;
    kros.ColumnTotalMemos[1].Visible:=False;
    kros.RowFields.Clear;
    kros.RowFields.Add('Name');
    kros.RowLevels := 1;
    kros.CellFields.Add('Salary');
    kros.CellLevels := 1;
    kros.Dataset :=frxDBDataset1;
    frxReport1.ShowReport();
    end;
    
  • отредактировано 01:29
    gpi написал: »
    Заполняйте программно свойства кросса RowFields, RowLevels

    Сделала, но: у меня будет kros.RowLevels := 2; при этом получается, что нет заголовка у второго столбца, и он получается белый, а не цветом стиля. И почему то если второй раз запускать отчет, то нормально не отстраивается, а получается строки друг на друга залазят, как в рисунке.
  • gpigpi
    отредактировано 01:29
    написал:
    если второй раз запускать отчет, то нормально не отстраивается, а получается строки друг на друга залазят, как в рисунке
    Забыл добавить kros.CellFields.Clear;
    написал:
    Сделала, но: у меня будет kros.RowLevels := 2; при этом получается, что нет заголовка у второго столбца, и он получается белый, а не цветом стиля
    var kros:TfrxDBCrossView;
    begin
    kros:=TfrxDBCrossView(frxreport1.FindObject('Dbcross1'));
    kros.ColumnFields.Clear;
    kros.ColumnFields.Add('Name');
    kros.CornerMemos[1].Text:='Name';
    kros.ColumnLevels := 1;
    kros.RowFields.Clear;
    kros.RowFields.Add('Year');
    kros.RowFields.Add('Month');
    kros.RowLevels := 2;
    kros.CornerMemos[3].Text:='Year';
    kros.CornerMemos[4].Text:='Month';
    kros.RowTotalMemos[1].Visible:=False;
    kros.CellFields.Clear;
    kros.CellFields.Add('Salary');
    kros.CellLevels := 1;
    kros.Dataset :=frxDBDataset1;
    frxReport1.ShowReport();
    end;
    
  • отредактировано 01:29
    Спасибо, так отчет строится почти нормально.

    Осталась такая фича. У меня в отчете може быть или kros.RowLevels := 2 или kros.RowLevels := 1 в зависимости от параметра. Так вот если я строю сперва 2 то все ок, а потом 1 тоже ок, а потом 2, то получается, что нет заголовка у второго столбца, и он получается белый, а не цветом стиля, данные выводятся нормально. Я пробывала делать kros.CornerMemos[4].Clear; Не помогло.

Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.