-
Удалено модератором
-
Да, да, именно после применения IndexField начинаются непонятки.
-
Вот явное нарушение полосатости посли Индексации http://yurec66.narod.ru/Hlam/grid1.jpg. По началу я думал что это происходит из-за нарушения порядка следования ID. Здесь видно, что номера 33 и 39(специально в грид добавлен для отображения столбец ID) (оба нечетные) стоят рядом, поэтому и идет нарушение. http://yurec66.narod.ru/Hlam/grid2.jpg . Однако, тут-же видно, что номера 29 и 30 тоже стоят рядом, хоть и разные по четности. Тем более задействован стандартный механизм Sequenced и использован компонент TAdsTable. Т.ч. уже и не ясно на что грешить и как это побороть.
-
Пардон, очепятка номера 33 и 69
-
Когда применяется IndexField, то RecNo действительно будет фиг знает какой.. И никуда от этого не убежишь.. разве что в select from order by
-
> Т.ч. уже и не ясно на что грешить и как это побороть.
OnGetColumncellData или что-то в таком духе. И сам рисуешь. Делов-то.
-
> Здесь видно, что номера 33 и 39(специально в грид добавлен > для отображения столбец ID) (оба нечетные) стоят рядом, > поэтому и идет нарушение. http://yurec66.narod.ru/Hlam/grid2. > jpg . Однако, тут-же видно, что номера 29 и 30 тоже стоят > рядом, хоть и разные по четности. Тем более задействован > стандартный механизм Sequenced и использован компонент TAdsTable. > Т.ч. уже и не ясно на что грешить и как это побороть.
29 и 30 просто повезло: у них ключевая информация идет подряд и нету записи с данными, ключ которой больше ключа 29, но меньше 30. неужели так тяжело понять? у вас записи идут типа так № записи Значение 1 0 2 1 3 -1 4 2 если упорядочить по значению, что получим? № записи Значение 3 -1 1 0 2 1 4 2 вот и все
-
при использовании кверика с упорядочением проблема исчезнет сама по себе. если, конечно, не использовать сортировку кеша кверика
-
К кверику нельзя в данном случае применить сортровку, физическое поле отсутствует, точнее поле Name, по которому хотелось-бы сделать сортировку выводится как лукаповское поле. ПОэтому пришлось идти на ухищрения с собственной обработкой
procedure TTovarFrm.DBGridEh1GetCellParams(Sender: TObject;
Column: TColumnEh; AFont: TFont; var Background: TColor;
State: TGridDrawState);
begin
Background := BackColors[(Sender as TDBGridEh).DataSource.DataSet.RecNo mod 2 <> 0];
end;
или попытаться довериться обработке Delphi через Sequenced
|