CrossTab-JoinEquilCells
Ошибки
1. Ошибка Преобразование типов
Предложение:
-Если мне не нужны обозначение полей под словом Data, я их могу удалить, но столбик узкий остается. Хорошо бы его убрать
-Предположим, я убрал название полей. Но потом опять вошел в редактор CrossTab, что-то добавил/удалил и название опять появляется. Необходимо опять чистить
Вопрос:
1.По моему неверно работает JoinEquilCells? Каждый этаж ячейки объединяется независимо от значение в др. этажах этой ячнйки. Это неверно. Объединяется вся ячейка, если нет отличий во ВСЕХ этажах. Если есть отличие хотя бы в одном этаже, то ячейки объединятся быть не должны.(рис. 2)
2. Чем отличаются св-ва AllowDuplicates (Crosstab) и SuppressRepeated (TfrxMemoview)? И как они взаимодействуют, у кого приоритет?
3. Раньше обработка ячейки шла "по этажам" сверху вниз, что позволяло, например, окрашивать ВСЮ ячеку в зависимости от значения в самом верхнем "этаже". Теперь обработка идет слева-направо "по этажам". Как изменить что-то(цвет, шрифт..) 2-го "этажа" в зависимости от значения в 1-ом?
1. Ошибка Преобразование типов
{ check if previous memo has the same value and JoinEqualCells is True }
if JoinEqualCells then
if RowItem.IsTotal or ColumnItem.IsTotal then
SameMemos[CellIndex] := nil
else if (SameMemos[CellIndex] = nil) or RowItem.IsTotal or ColumnItem.IsTotal or
// ----- испарвления
( TVarData(THackMemoView(SameMemos[CellIndex]).Value).VType<>TVarData(THackMemoView(Memo).Value).VType ) or
((TVarData(THackMemoView(SameMemos[CellIndex]).Value).VType=TVarData(THackMemoView(Memo).Value).VType)and
//----------
(THackMemoView(SameMemos[CellIndex]).Value <> THackMemoView(Memo).Value)
)
then
SameMemos[CellIndex] := Memo
else
begin
2. Если вешаю событие на OnPrintCell (даже пустое, без кода), то ошибка 'List index out of bounds(24)'
procedure TfrxCustomCrossView.DoOnCell(Memo: TfrxCustomMemoView;
Row, Column, Cell: Integer; const Value: Variant);
var
v: Variant;
begin
if FOnPrintCell <> '' then
begin
-> v := VarArrayOf([Integer(Memo), Row, Column, Cell, GetRowIndexes(Row),
GetColumnIndexes(Column), Value]);
if Report <> nil then
Report.DoParamEvent(FOnPrintCell, v);
end;
if Assigned(FOnBeforePrintCell) then
FOnBeforePrintCell(Memo, Row, Column, Cell, GetRowIndexes(Row),
GetColumnIndexes(Column), Value);
end;
Точнее ошибка возникает в GetRowIndexes(Row), а FRows.count=24 . Могу выслать отчет.Предложение:
-Если мне не нужны обозначение полей под словом Data, я их могу удалить, но столбик узкий остается. Хорошо бы его убрать
-Предположим, я убрал название полей. Но потом опять вошел в редактор CrossTab, что-то добавил/удалил и название опять появляется. Необходимо опять чистить
Вопрос:
1.По моему неверно работает JoinEquilCells? Каждый этаж ячейки объединяется независимо от значение в др. этажах этой ячнйки. Это неверно. Объединяется вся ячейка, если нет отличий во ВСЕХ этажах. Если есть отличие хотя бы в одном этаже, то ячейки объединятся быть не должны.(рис. 2)
2. Чем отличаются св-ва AllowDuplicates (Crosstab) и SuppressRepeated (TfrxMemoview)? И как они взаимодействуют, у кого приоритет?
3. Раньше обработка ячейки шла "по этажам" сверху вниз, что позволяло, например, окрашивать ВСЮ ячеку в зависимости от значения в самом верхнем "этаже". Теперь обработка идет слева-направо "по этажам". Как изменить что-то(цвет, шрифт..) 2-го "этажа" в зависимости от значения в 1-ом?
Комментарии
2) у меня без ошибок. FR4 последний?
- у столбика можно отключить линии рамки. Он не убирается.
- лучше, чем есть, сделать не получится...
1) попробую поправить.
2) SuppressRepeated в кроссе не работает. Это для обычных отчетов.
3) Боюсь, что никак.
2. Fr4 последний (вчерашний). Попробуйте увеличить у себя в примере этажность ячеки (у меня 6 этажей ). У меня 6 строк (дни недели)по 4 пары в день и 6 этажей в ячейке. Так вот, возникает ошибка, когда заполнен один день (6 этажей по 4 пары=24) и Row=24. (см рис)
3. Неужели никак нельзя просмотреть значение "этажа" над текущем?
4. А уменьшить min ширину(<10 px) узкого столбца можно?
5. Моя Реализация JoinEquilCells