Проблема с отрисовкой заголовка кросс-отчета

отредактировано April 2009 Раздел: FastReport 4.0
Возникла проблема с отрисовкой заголовка в кросс-табе, а именно: я хочу внести кое-какие изменения в заголовок одного из столбцов, ну, например, чтобы шрифт был жирным:
procedure DBCross2OnPrintColumnHeader(Memo: TfrxMemoView; HeaderIndexes, HeaderValues, Value: Variant);
begin
  if (HeaderIndexes[0] = 1) and (HeaderIndexes[1] = 0) then
    begin                                                                                                    
      Memo.Font.Style := Memo.Font.Style + [fsBold];                           
    end;
end;
Но! При запуске отчета, он мне выдает ошибку: "Invalid variant operation". В чем дело? Как решить проблему?

Комментарии

  • отредактировано 18:23
    Для заголовка таблицы все значения у HeaderIndexes будут равны null, а при печати ячеек вышестоящего уровня все индексы которые идут после текущего (вложенные) тоже будут равны null.
    Проще говоря при печати ячейки заголовка с индексом 0 (HeaderIndexes[0]) все индексы вложенных колонок равны null.

    Т.е. ваше выражение должно выглядеть так :
      if (HeaderIndexes[0] <> null) and (HeaderIndexes[1] <> null) and (HeaderIndexes[0] = 1) and (HeaderIndexes[1] = 0) then
        begin                                                                                                    
          Memo.Font.Style := Memo.Font.Style + [fsBold];                           
        end;
    
  • отредактировано 18:23
    Проблему решил ниже описанным способом, но теперь возникла новая закавыка: когда я вручную, то бишь также внутри скрипта удаляю одну из сторон ячеек, например, верхнюю, то при РЕАЛЬНОЙ печати она все равно печатается:
    procedure Tr_DBCrossOnPrintColumnHeader(Memo: TfrxMemoView; HeaderIndexes, HeaderValues, Value: Variant);
    begin
     if HeaderIndexes[0] = 1 then
       begin 
         Memo.Font.Style := Memo.Font.Style + fsBold; 
         if HeaderIndexes[1] = 0 then 
           Memo.Frame.Typ := Memo.Frame.Typ - ftTop;
         Memo.Width := 27; 
      end;
    end;
    

    Как быть?

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

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