DBCross

отредактировано 15:48 Раздел: FastReport 3.0
Как подписать Caption к RowHeader'ам... а о оне настройки над ними пустое место а заголовок написать нужно ... как это сделать...... или можно для RowHeder задать свою ширину для каждого Header'а ?

Комментарии

  • LexLex
    отредактировано 15:48
    посмотри сдесь
  • отредактировано 15:48
    Пробовал я с Cross1OnCalcWidth играться,,, он как-то фигово работает он сменяет ширину, но не сдвигает свепрследующие ячейки и выглядид забавно ;)
  • LexLex
    отредактировано May 2006
    Только что пробовал, все нормально
  • отредактировано 15:48
    код можеш сюда положить?
  • LexLex
    отредактировано 15:48
    procedure DBCross1OnCalcWidth(ColumnIndex: Integer; ColumnValues: Variant; var Width: Extended);
    begin
      case ColumnIndex of
        0: Width := 100;
        1: Width := 150;
        2: Width := 120;
      end;
    end;
    
  • отредактировано 15:48
    DBCross умеет скрывать пустые строки?
  • LexLex
    отредактировано 15:48
    а от куда они взялись?
  • LexLex
    отредактировано 15:48
    Впринципе можно попробывать следующим образом

    1. делаешь двухпроходный отчет

    2. добавляешь массив
    var
      RowHide: array of Boolean;
    

    3. обработчик OnCalcHieght
    procedure DBCross1OnCalcHeight(RowIndex: Integer; RowValues: Variant; var Height: Extended);
    begin
      if Engine.FinalPass then
      begin
        if RowHide[RowIndex] then
          Height := 0;
      end else
      begin
        if Length(RowHide) < RowIndex + 1 then
          SetLength(RowHide, RowIndex + 1);
      end;
    end;
    

    4. обработчик OnPrintCell
    procedure DBCross1OnPrintCell(Memo: TfrxMemoView; RowIndex, ColumnIndex, CellIndex: Integer; RowValues, ColumnValues, Value: Variant);
    var
      tmpBool: Boolean;
    begin
      if not Engine.FinalPass then
      begin
        tmpBool := (Memo.Text = '');
    
        if ColumnIndex = 0 then
          RowHide[RowIndex] := tmpBool
        else
          RowHide[RowIndex] := RowHide[RowIndex] and tmpBool;
      end;
    end;
    

  • отредактировано 15:48
    А кто подскажет можно ли в DBCroos сделать так чтобы после каждого итого начиналась новая страница?

    например
    <span style='font-family:Courier'> ]
      | Касса | Безнал | Итого |
    ___________________________________
    |склад | дата | сумма | сумма | сумма |
    |склад | дата | сумма | сумма | сумма |
    ____________________________________
    склад итого сумма


    а дальше уже новая страница пошла

    | Касса | Безнал | Итого |
    ___________________________________
    |склад2 | дата | сумма | сумма | сумма |
    |склад2 | дата | сумма | сумма | сумма |
    ____________________________________
    склад2 итого сумма

    </span>

    например проверять

    procedure Cross1OnPrintCell(Memo: TfrxMemoView; RowIndex, ColumnIndex, CellIndex: Integer; RowValues, ColumnValues, Value: Variant);
    begin
    if IsTotalRow(RowIndex) then StartNewPage;
    end;

    только вот так не получается, кто подскажет реально или нет?
  • отредактировано 15:48
    в Cross отчете если несколькр подряд идущих строк начинаются одинаково, то они в столбце не ставятся разделители между этими строками, можно как-нибуть их ставить всегда......?

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

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