Как выделить последнюю строку матрицы

отредактировано 21:23 Раздел: FastReport .NET
Здравствуйте!

Если кто сталкивался, подскажите, пожалуйста, как выделить последнюю строку матрицы. Критерий выделения - определенное значение какого-то поля данных (скажем, ID). Если я прописываю условное выделение, то почему-то выделяются все данные в матрице. Пробовал через события в скрипте - тот же результат.

Заранее спасибо.

Комментарии

  • отредактировано 21:23

    Private Sub Matrix1_AfterData(ByVal sender As object, ByVal e As EventArgs)
    AddHandler Me.Matrix1.ResultTable.AfterData, New EventHandler(AddressOf Me.Matrix1ResultTable_AfterData)
    End Sub

    Private Sub Matrix1ResultTable_AfterData(ByVal sender As Object, ByVal e As EventArgs)
    Dim table As TableResult = TryCast(sender,TableResult)

    ' Перебираю строки матрицы и если в нужной мне ячейке стоит 5, то делаю её жирной (как ячейка заголовка -
    ' table.Item(1, 0))
    ' ЭТО кусок из кода.

    For i=2 To table.RowCount-1
    If Val(table.Item(3,i).Value)=5
    table.Item(3,i).SetStyle(table.Item(1, 0))
    end if
    Next i


    End Sub


    Кстати, как определить свой SetStyle? Кто подскажет?
  • отредактировано 21:23
    Проблема в том, что отбор не по значениям в ячейках, а по значениям поля данных (которых в ячейках нет).
  • отредактировано 21:23
    написал: »
    Здравствуйте!

    Если кто сталкивался, подскажите, пожалуйста, как выделить последнюю строку матрицы. Критерий выделения - определенное значение какого-то поля данных (скажем, ID).
    Заранее спасибо.

    ... не понял :) Не важно какие данные: - они попали в матрицу. А если попали, то проверить их можно уже в таблице и соответственно выделить/не выделить. А если они не попали в матрицу (т.е. по условию фильтра матрицы) - то опять же: их нет и в таблице. Или вы о чем то другом?
  • отредактировано 21:23
    Извиняюсь, если не корректно описал проблему. Вот, что требуется:
    у меня есть данные CategoryId, CategoryName, ProfileId, ProfileName, Value
    из них я делаю матрицу, СategoryName - заголовки колонок, ProfileName - заголовки строк,
    Value - значения в ячейках. Как мне выделить строку матрицы с определенным ProfileId?
    Я делаю через обработчик события AfterData у заголовка стоки и ячеек. В результате
    нужный мне заголовок выделяется, а ячейки выделяются все поголовно (будто
    у всех полей одинаковый ProfileId).
  • отредактировано 21:23
    написал: »
    Извиняюсь, если не корректно описал проблему. Вот, что требуется:
    у меня есть данные CategoryId, CategoryName, ProfileId, ProfileName, Value
    из них я делаю матрицу, СategoryName - заголовки колонок, ProfileName - заголовки строк,
    Value - значения в ячейках. Как мне выделить строку матрицы с определенным ProfileId?
    Я делаю через обработчик события AfterData у заголовка стоки и ячеек. В результате
    нужный мне заголовок выделяется, а ячейки выделяются все поголовно (будто
    у всех полей одинаковый ProfileId).


    Ну, как вариант: добавь ProfileId вторым значением ячейки в матрицу, а ширину этой ячейки в дизайнере установи минимальную. Т.о. у тебя будет таблица, содержащая ячейки со значением ProfileId, а уж это-то обработай моим первым предложением.
  • отредактировано 21:23
    Спасибо, так и сделаю, раз других вариантов нет
  • отредактировано 21:23
    Simba написал: »
    Private Sub Matrix1_AfterData(ByVal sender As object, ByVal e As EventArgs)
    AddHandler Me.Matrix1.ResultTable.AfterData, New EventHandler(AddressOf Me.Matrix1ResultTable_AfterData)
    End Sub

    Private Sub Matrix1ResultTable_AfterData(ByVal sender As Object, ByVal e As EventArgs)
    Dim table As TableResult = TryCast(sender,TableResult)

    ' Перебираю строки матрицы и если в нужной мне ячейке стоит 5, то делаю её жирной (как ячейка заголовка -
    ' table.Item(1, 0))
    ' ЭТО кусок из кода.

    For i=2 To table.RowCount-1
    If Val(table.Item(3,i).Value)=5
    table.Item(3,i).SetStyle(table.Item(1, 0))
    end if
    Next i
    End Sub
    Кстати, как определить свой SetStyle? Кто подскажет?


    Добрый день.

    не пожскажете как в таблице подсвечивать строку, по результату который выводится в одной из ячеек таблице.
    Например если ячейка таблицы Cell1=5 тогда выделить цветом Row1?

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

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