Глюки rxDBGrid
Модераторы: alexs, Модераторы
решения описанной ранее проблемы ждать? 
скачал вчерашнюю ночную сборку всё равно в RxDBGrid.pas приходится добавлять проверку на F.IsNull в функции function TRxColumnFooter.ErrorTestValue: boolean;
вот в этом месте:
иначе ловлю исключение Index out of bound при добавлении строки в таблицу и включённом футере
и остаётся баг с пересчётом итогов в detail таблице, не знаю как собрать тестовый пример
вот в этом месте:
Код: Выделить всё
begin
case FValueType of
fvtSum:
if F.DataSet.RecordCount = 0 then
begin
{ if not F.IsNull then
FTestValue := FTestValue - F.AsFloat;}
{ TODO -oalexs : need rewrite this code - where difficult! }
end
else
begin
if not F.IsNull then begin //добавленная проверка
if F.OldValue <> null then
FTestValue := FTestValue + Float(F.OldValue);
if not F.IsNull then
FTestValue := FTestValue - F.AsFloat;
end;
end;
fvtMax:
if (F.DataSet.RecordCount <> 0) and (F.OldValue <> null) then
FTestValue := Max(FTestValue, Float(F.OldValue));
fvtMin:
if (F.DataSet.RecordCount <> 0) and (F.OldValue <> null) then
FTestValue := Min(FTestValue, Float(F.OldValue));
end;
end; иначе ловлю исключение Index out of bound при добавлении строки в таблицу и включённом футере
и остаётся баг с пересчётом итогов в detail таблице, не знаю как собрать тестовый пример
zeos из trunk
после того как добавил проверку глюк пропал, так что я думаю это всё таки грид
после того как добавил проверку глюк пропал, так что я думаю это всё таки грид
порыл тут на форуме, вроде таких тем не видел, обнаружил странное поведение грида при отрисовке двухуровненвых шапок, при наведении на них мышкой
глюк не наблюдается при классической теме, проверял на стандартной ХР теме, на 7ке не смотрел

на скрине показано как отображается шапка при наведении мышкой, под курсором пропадает текст и меняется цвет шапки
p.s. проверял на двух разных компах на ХР, titlestyle пробовал все варианты, не помогло
Добавлено спустя 6 минут 52 секунды:
да, насчёт пересчёта итогов забыл сказать что это не баг, это фича такая наверное
я же выше писал почему так происходит, буду думать как исправить
Добавлено спустя 2 минуты 59 секунд:
вот из-за чего так происходит
в коде ты закомментировал строку с пересчётом, получается теперь в главном гриде пересчёт идёт а в дочернем нет, строку раскомментирую, всё считает и там и там, но появляются непонятные глюки со скроллингом гридов, о которых ты скорее всего здесь и упоминаешь
глюк не наблюдается при классической теме, проверял на стандартной ХР теме, на 7ке не смотрел

на скрине показано как отображается шапка при наведении мышкой, под курсором пропадает текст и меняется цвет шапки
p.s. проверял на двух разных компах на ХР, titlestyle пробовал все варианты, не помогло
Добавлено спустя 6 минут 52 секунды:
да, насчёт пересчёта итогов забыл сказать что это не баг, это фича такая наверное
Добавлено спустя 2 минуты 59 секунд:
вот из-за чего так происходит
Но в последних комитах я убрал из TRxDBGrid.UpdateActive пересчёт итогов. Сейчас этот метод грида изменяется на каждое изменение положения курсора в наборе данных. Получается лишние вызовы и глюки при движению по гриду, содержимое которого превышает размер самого грида.
Ещё не придумал как обойти...
в коде ты закомментировал строку с пересчётом, получается теперь в главном гриде пересчёт идёт а в дочернем нет, строку раскомментирую, всё считает и там и там, но появляются непонятные глюки со скроллингом гридов, о которых ты скорее всего здесь и упоминаешь
Вопрос не по глюку
но создавать тему отдельную нехочеца
в футер вывожу кол-во строк(fvtCount) и сумму (fvtSum)
как мне их вернуть в мою переменную, для своих дальнейших действий?
в футер вывожу кол-во строк(fvtCount) и сумму (fvtSum)
как мне их вернуть в мою переменную, для своих дальнейших действий?
1. как можно посодействовать?
2. постараюсь смастерить
2. постараюсь смастерить
- alexs
- долгожитель
- Сообщения: 4066
- Зарегистрирован: 15.05.2005 23:17:07
- Откуда: г.Ставрополь
- Контактная информация:
ronin писал(а):1. как можно посодействовать?
СТандартно грид вызывает отрисовку только для тех ячеек, которые надо перерисовать.
Когда имеем объединение ячеек заголовка - рисуется только первая ячейка из серии объединённых. И она же расширяется на всю серию. Поэтому и происходит порча заголовка при перекрытии последющих (не первых) ячеек.
Мысли крутятся насчёт принудительной отрисовки в это случаее первой ячейки. Но это надо оформить.
В GTK2 такое не наблюдается - поэтому не занимаюсь вплотную.
2. Жду.
alexs писал(а):
Sum2:=RxDBGrid8.ColumnByFieldName('sum_delta').Footer.NumericValue;
спасибо большое
alexs
скачал из svn RxLib, поставил на Lazarus 1.1 FPC 2.7.1 (38476) Win7 32bit, footer не работает (не суммирует) в части fvtSum, а вот fvtCount - работает! Шрифт в footer то белый, то чёрный, понять не могу от чего зависит?! У кого-нибудь footer в части fvtSum работает?
скачал из svn RxLib, поставил на Lazarus 1.1 FPC 2.7.1 (38476) Win7 32bit, footer не работает (не суммирует) в части fvtSum, а вот fvtCount - работает! Шрифт в footer то белый, то чёрный, понять не могу от чего зависит?! У кого-нибудь footer в части fvtSum работает?
alexs посмотрите >>> на досуге! Count работает, Sum нет. Раньше работало. Если одна таблица, то суммирует нормально, если связь мастер-детали нет.
