Узнать индекс интересующей колонки

отредактировано July 2013 Раздел: FastReport 4.0
Есть некоторое количество записей с ОДИНАКОВЫМ названием (Row3). При печати таблицы (cross-tab) fastreport непременно соединяет все эти записи (строки) в одну. С одной стороны, мне понятно его такое поведение - типа раз имя у строк одинаковое - значит это одна строка. Но с другой стороны, мне, допустим, надо выводить все группы, в которых содержатся подгруппы (н-р, группа1(подгруппа1, подгруппа2, подгруппа3), группа2(подгруппа1, подгруппаз) и т. д.), т е. подгруппа1 в группе1 и подгруппа1 в группе2 это две СОВЕРШЕННО РАЗНЫЕ строки, а он их сливает в одну. Названия этих групп/подгрупп и есть Row3, и для отчета мне нужно только это поле. (example.fr3)


Попыталась решить проблему, вставив уникальные номера групп/подгрупп в rowfields. Но появилась новая проблема - пользователь не желает видеть никаких номеров, - нам, дескать, и так понятно. Теперь не могу удалить два первых столбца. Ясное дело, что это делается в коде на событии DBCrossOnCalcWidth, только вот как узнать индекс первых двух??? (example1.fr3)

По моей логике индекс первого столбца =0, индекс второго столбца =1, т е , чтоб убрать первый
procedure DBCross1OnCalcWidth(ColumnIndex: Integer; ColumnValues: Variant; var Width: Extended);
begin
       if ColumnIndex = 0 then Width := 0;    
end;
но моя логика явно не совпадает с логикой FR... :)
Буду очень благодарна хотя бы за соответствующую ссылочку в руководстве, где написано про индексацию.

Комментарии

  • отредактировано 20:53
    Неужели никто не знает???
    У меня уже не в первый раз возникают сложности именно из-за незнания того,какой индекс присваивается какому столбцу/ячейке :)
  • gpigpi
    отредактировано 20:53
    Вы должны различать заголовки строк, заголовки столбцов и ячейки.
    Средств для сокрытия заголовков строк в FR нет. Столбцы можно скрывать в DBCrossOnCalcWidth
    В Вашем случае можно в Row3 использовать номер+название группы, номер удаляйте в DBCrossOnPrintRowHeader
  • отредактировано July 2013
    gpi написал: »
    В Вашем случае можно в Row3 использовать номер+название группы,
    Читаете мои мысли :) Так и сделала, только вот номера не догадалась убирать. Формат заголовка строки сейчас таков : цифра.цифра название (т е, например, 01.00 Группа или 01.03 Подгруппа)
    Предлагаете считывать позицию первого пробела и удалять все, что до него?
    И еще:
    gpi написал: »
    Столбцы можно скрывать в DBCrossOnCalcWidth
    Допустим, нужно скрыть первый подстолбец grandtotal столбца, Я так понимаю, это все-таки событие DBCrossOnCalcWidth на заголовке СТОЛБЦА, но, он никак не хочет удаляться...
    (Понимаю, немного не по теме, но я уже открывала этот вопрос, и безрезультатно...)
    gpi написал: »
    Средств для сокрытия заголовков строк в FR нет.
    Понятно. А Вы не знаете, почему он строки с одинаковыми назчаниями обязательно сливает в одну, ведь свойство Group не стоит. Какая-то особенность FR?

  • отредактировано 20:53
    gpi написал: »
    номер удаляйте в DBCrossOnPrintRowHeader
    Вот так сделала
    Memo.Text:=Copy(VarToStr(Value),Pos(' ',VarToStr(Value)),Length(VarToStr(Value)));
    
    Вроде бы работает. Спасибо :)
    Хотя эта подвязка к пробелу меня, конечно, немного пугает.

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

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